common.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. // 应用公共文件
  12. /**
  13. * 获取用户名称
  14. * @param $uid
  15. * @return mixed
  16. */
  17. function getUserNickname($uid)
  18. {
  19. return \app\admin\model\user\User::where('uid', $uid)->value('nickname');
  20. }
  21. /**删除缓存hash数据
  22. * @param $name
  23. * @param $key
  24. * @return bool
  25. */
  26. function del_redis_hash($name, $key)
  27. {
  28. if (!$name || !$key) return false;
  29. try {
  30. $redisModel = new \think\cache\driver\Redis();
  31. $exists_recommend_redis = $redisModel->HEXISTS($name, $key);
  32. if ($exists_recommend_redis) $redisModel->hdel($name, $key);
  33. return true;
  34. } catch (\Exception $e) {
  35. $basic = new \basic\WapBasic;
  36. return $basic->serRedisPwd($e->getMessage());
  37. }
  38. }
  39. /**
  40. * 获取产品名称
  41. * @param $id
  42. * @return mixed
  43. */
  44. function getProductName($id)
  45. {
  46. return \app\admin\model\store\StoreProduct::where('id', $id)->value('store_name');
  47. }
  48. /**
  49. * 获取订单编号
  50. * @param $id
  51. */
  52. function getOrderId($id)
  53. {
  54. return \app\admin\model\order\StoreOrder::where('id', $id)->value('order_id');
  55. }
  56. /**
  57. * 根据用户uid获取订单数
  58. * @param $uid
  59. * @return int|string
  60. */
  61. function getOrderCount($uid)
  62. {
  63. return \app\admin\model\order\StoreOrder::where('uid', $uid)->where('paid', 1)->where('refund_status', 0)->where('status', 2)->count();
  64. }
  65. /**
  66. * 格式化属性
  67. * @param $arr
  68. * @return array
  69. */
  70. function attrFormat($arr)
  71. {
  72. $data = [];
  73. $res = [];
  74. if (count($arr) > 1) {
  75. for ($i = 0; $i < count($arr) - 1; $i++) {
  76. if ($i == 0) $data = $arr[$i]['detail'];
  77. //替代变量1
  78. $rep1 = [];
  79. foreach ($data as $v) {
  80. foreach ($arr[$i + 1]['detail'] as $g) {
  81. //替代变量2
  82. $rep2 = ($i != 0 ? '' : $arr[$i]['value'] . "_") . $v . "-" . $arr[$i + 1]['value'] . "_" . $g;
  83. $tmp[] = $rep2;
  84. if ($i == count($arr) - 2) {
  85. foreach (explode('-', $rep2) as $k => $h) {
  86. //替代变量3
  87. $rep3 = explode('_', $h);
  88. //替代变量4
  89. $rep4['detail'][$rep3[0]] = $rep3[1];
  90. }
  91. $res[] = $rep4;
  92. }
  93. }
  94. }
  95. $data = $tmp;
  96. }
  97. } else {
  98. $dataArr = [];
  99. foreach ($arr as $k => $v) {
  100. foreach ($v['detail'] as $kk => $vv) {
  101. $dataArr[$kk] = $v['value'] . '_' . $vv;
  102. $res[$kk]['detail'][$v['value']] = $vv;
  103. }
  104. }
  105. $data[] = implode('-', $dataArr);
  106. }
  107. return [$data, $res];
  108. }
  109. /**
  110. * 格式化月份
  111. * @param string $time
  112. * @param int $ceil
  113. * @return array
  114. */
  115. function getMonth($time = '', $ceil = 0)
  116. {
  117. if (empty($time)) {
  118. $firstday = date("Y-m-01", time());
  119. $lastday = date("Y-m-d", strtotime("$firstday +1 month -1 day"));
  120. } else if ($time == 'n') {
  121. if ($ceil != 0)
  122. $season = ceil(date('n') / 3) - $ceil;
  123. else
  124. $season = ceil(date('n') / 3);
  125. $firstday = date('Y-m-01', mktime(0, 0, 0, ($season - 1) * 3 + 1, 1, date('Y')));
  126. $lastday = date('Y-m-t', mktime(0, 0, 0, $season * 3, 1, date('Y')));
  127. } else if ($time == 'y') {
  128. $firstday = date('Y-01-01');
  129. $lastday = date('Y-12-31');
  130. } else if ($time == 'h') {
  131. $firstday = date('Y-m-d', strtotime('this week +' . $ceil . ' day')) . ' 00:00:00';
  132. $lastday = date('Y-m-d', strtotime('this week +' . ($ceil + 1) . ' day')) . ' 23:59:59';
  133. }
  134. return array($firstday, $lastday);
  135. }
  136. /**删除目录下所有文件
  137. * @param $path 目录或者文件路径
  138. * @param string $ext
  139. * @return bool
  140. */
  141. function clearfile($path, $ext = '*.log')
  142. {
  143. $files = (array)glob($path . DS . '*');
  144. foreach ($files as $path) {
  145. if (is_dir($path)) {
  146. $matches = glob($path . '/' . $ext);
  147. if (is_array($matches)) {
  148. array_map('unlink', $matches);
  149. }
  150. rmdir($path);
  151. } else {
  152. unlink($path);
  153. }
  154. }
  155. return true;
  156. }
  157. function get_server_ip()
  158. {
  159. if (isset($_SERVER)) {
  160. if (array_key_exists("SERVER_ADDR", $_SERVER)) {
  161. $server_ip = $_SERVER['SERVER_ADDR'];
  162. } else {
  163. $server_ip = $_SERVER['LOCAL_ADDR'];
  164. }
  165. } else {
  166. $server_ip = getenv('SERVER_ADDR');
  167. }
  168. return $server_ip;
  169. }
  170. /**
  171. * 获取CRMEB系统版本号
  172. * @param string $default
  173. * @return string
  174. */
  175. function get_crmeb_version($default = 'v1.0.0')
  176. {
  177. try {
  178. $version = parse_ini_file(app()->getRootPath() . '.version');
  179. return $version['version'] ?? $default;
  180. } catch (\Throwable $e) {
  181. return $default;
  182. }
  183. }
  184. if (!function_exists('check_phone')) {
  185. /**
  186. * 手机号验证
  187. * @param $phone
  188. * @return false|int
  189. */
  190. function check_phone($phone)
  191. {
  192. return preg_match("/^1[3456789]\d{9}$/", $phone);
  193. }
  194. }
  195. /**检查是否有看手机号权限
  196. * @return bool
  197. */
  198. function is_phone_menu()
  199. {
  200. return \app\admin\model\system\SystemMenus::isMenu('查看手机号', 'is_phone');
  201. }