Group.php 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\model\system;
  11. use think\facade\Cache;
  12. use app\model\BaseModel;
  13. /**
  14. * 用户组
  15. * @author Administrator
  16. *
  17. */
  18. class Group extends BaseModel
  19. {
  20. /*****************************************用户组管理开始******************************************************************************/
  21. /**
  22. * 添加用户组
  23. * @param $data
  24. * @return array
  25. */
  26. public function addGroup($data)
  27. {
  28. $site_id = isset($data[ 'site_id' ]) ? $data[ 'site_id' ] : '';
  29. if ($site_id === '') {
  30. return $this->error('', 'REQUEST_SITE_ID');
  31. }
  32. $app_module = isset($data[ 'app_module' ]) ? $data[ 'app_module' ] : '';
  33. if ($app_module === '') {
  34. return $this->error('', 'REQUEST_APP_MODULE');
  35. }
  36. Cache::tag("group_" . $site_id . '_' . $app_module)->clear();
  37. //预留验证
  38. $res = model('group')->add($data);
  39. if ($res === false) {
  40. return $this->error('', 'UNKNOW_ERROR');
  41. }
  42. return $this->success($res);
  43. }
  44. /**
  45. * 修改用户组
  46. * @param $data
  47. * @param $condition
  48. * @return array
  49. */
  50. public function editGroup($data, $condition)
  51. {
  52. $check_condition = array_column($condition, 2, 0);
  53. $site_id = isset($check_condition[ 'site_id' ]) ? $check_condition[ 'site_id' ] : '';
  54. if ($site_id === '') {
  55. return $this->error('', 'REQUEST_SITE_ID');
  56. }
  57. $app_module = isset($check_condition[ 'app_module' ]) ? $check_condition[ 'app_module' ] : '';
  58. if ($app_module === '') {
  59. return $this->error('', 'REQUEST_APP_MODULE');
  60. }
  61. $condition[] = [ "is_system", "=", 0 ];//只能删除非系统用户组
  62. Cache::tag("group_" . $site_id . '_' . $app_module)->clear();
  63. $res = model('group')->update($data, $condition);
  64. if ($res === false) {
  65. return $this->error('', 'UNKNOW_ERROR');
  66. }
  67. return $this->success($res);
  68. }
  69. /**
  70. * 删除用户组(不能批量)
  71. * @param $condition
  72. * @return array
  73. */
  74. public function deleteGroup($condition)
  75. {
  76. $check_condition = array_column($condition, 2, 0);
  77. $site_id = isset($check_condition[ 'site_id' ]) ? $check_condition[ 'site_id' ] : '';
  78. if ($site_id === '') {
  79. return $this->error('', 'REQUEST_SITE_ID');
  80. }
  81. $app_module = isset($check_condition[ 'app_module' ]) ? $check_condition[ 'app_module' ] : '';
  82. if ($app_module === '') {
  83. return $this->error('', 'REQUEST_APP_MODULE');
  84. }
  85. $group_id = isset($check_condition[ 'group_id' ]) ? $check_condition[ 'group_id' ] : 0;
  86. if (!is_int($group_id) && $group_id <= 0) {
  87. return $this->error('', 'USER_GROUP_NOT_ALL_DELETE');
  88. }
  89. $temp_count = model('user')->getCount([ [ "group_id", "=", $group_id ], [ "app_module", "=", $app_module ], [ "site_id", "=", $site_id ] ], "uid");
  90. if ($temp_count > 0)
  91. return $this->error('', 'USER_GROUP_USED');
  92. $condition[] = [ "is_system", "=", 0 ];//只能删除非系统用户组
  93. Cache::tag("group_" . $site_id . '_' . $app_module)->clear();
  94. $res = model('group')->delete($condition);
  95. if ($res === false) {
  96. return $this->error('', 'UNKNOW_ERROR');
  97. }
  98. return $this->success($res);
  99. }
  100. /**
  101. * 获取门店分组列信息
  102. * @param array $condition
  103. * @param string $field
  104. * @return array
  105. */
  106. public function getStoreGroupColumn($condition = [], $field = '')
  107. {
  108. $res = model('group')->getColumn($condition, $field);
  109. return $this->success($res);
  110. }
  111. /**
  112. * 修改用户组状态
  113. * @param $group_status
  114. * @param $condition
  115. * @return array
  116. */
  117. public function modifyGroupStatus($group_status, $condition)
  118. {
  119. $check_condition = array_column($condition, 2, 0);
  120. $site_id = isset($check_condition[ 'site_id' ]) ? $check_condition[ 'site_id' ] : '';
  121. if ($site_id === '') {
  122. return $this->error('', 'REQUEST_SITE_ID');
  123. }
  124. $app_module = isset($check_condition[ 'app_module' ]) ? $check_condition[ 'app_module' ] : '';
  125. if ($app_module === '') {
  126. return $this->error('', 'REQUEST_APP_MODULE');
  127. }
  128. $condition[ "is_system" ] = 0;//只能删除非系统用户组
  129. Cache::tag("group_" . $site_id . '_' . $app_module)->clear();
  130. $res = model('group')->update([ 'group_status' => $group_status ], $condition);
  131. if ($res === false) {
  132. return $this->error('', 'UNKNOW_ERROR');
  133. }
  134. return $this->success($res);
  135. }
  136. /**
  137. * 获取用户组详情
  138. * @param $condition
  139. * @param string $field
  140. * @return array
  141. */
  142. public function getGroupInfo($condition, $field = '*')
  143. {
  144. $check_condition = array_column($condition, 2, 0);
  145. $app_module = isset($check_condition[ 'app_module' ]) ? $check_condition[ 'app_module' ] : '';
  146. if ($app_module === '') {
  147. return $this->error('', 'REQUEST_APP_MODULE');
  148. }
  149. $info = model('group')->getInfo($condition, $field);
  150. return $this->success($info);
  151. }
  152. /**
  153. * 通过groupid获取相应用户组数据,应用在门店,供应商等不创建站点
  154. * @param $group_id
  155. * @param $site_id
  156. * @param $app_module
  157. * @param string $field
  158. * @return array
  159. */
  160. public function getGroupInfoById($group_id, $site_id, $app_module, $field = '*')
  161. {
  162. if ($app_module === '') {
  163. return $this->error('', 'REQUEST_APP_MODULE');
  164. }
  165. $info = model('group')->getInfo([ [ 'group_id', '=', $group_id ], [ 'app_module', '=', $app_module ] ], $field);
  166. return $this->success($info);
  167. }
  168. /**
  169. * 获取用户组列表
  170. * @param array $condition
  171. * @param bool $field
  172. * @param string $order
  173. * @param null $limit
  174. * @return array
  175. */
  176. public function getGroupList($condition = [], $field = true, $order = 'create_time desc, group_id desc', $limit = null)
  177. {
  178. $check_condition = array_column($condition, 2, 0);
  179. $site_id = isset($check_condition[ 'site_id' ]) ? $check_condition[ 'site_id' ] : '';
  180. $app_module = isset($check_condition[ 'app_module' ]) ? $check_condition[ 'app_module' ] : '';
  181. if ($site_id === '') {
  182. return $this->error('', 'REQUEST_SITE_ID');
  183. }
  184. if ($app_module === '') {
  185. return $this->error('', 'REQUEST_APP_MODULE');
  186. }
  187. $data = json_encode([ $condition, $field, $order, $limit ]);
  188. $cache = Cache::get("group_getGroupList_" . $site_id . '_' . $app_module . '_' . $data);
  189. if (!empty($cache)) {
  190. return $this->success($cache);
  191. }
  192. $list = model('group')->getList($condition, $field, $order, '', '', '', $limit);
  193. Cache::tag("group_" . $site_id . '_' . $app_module)->set("group_getGroupList_" . $site_id . '_' . $app_module . '_' . $data, $list);
  194. return $this->success($list);
  195. }
  196. /**
  197. * 获取管理组分页列表
  198. * @param array $condition
  199. * @param int $page
  200. * @param int $page_size
  201. * @param string $order
  202. * @param string $field
  203. * @return array
  204. */
  205. public function getGroupPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'create_time desc, group_id desc', $field = '*')
  206. {
  207. $check_condition = array_column($condition, 2, 0);
  208. $site_id = isset($check_condition[ 'site_id' ]) ? $check_condition[ 'site_id' ] : '';
  209. $app_module = isset($check_condition[ 'app_module' ]) ? $check_condition[ 'app_module' ] : '';
  210. if ($site_id === '') {
  211. return $this->error('', 'REQUEST_SITE_ID');
  212. }
  213. if ($app_module === '') {
  214. return $this->error('', 'REQUEST_APP_MODULE');
  215. }
  216. $data = json_encode([ $condition, $page, $page_size, $order, $field ]);
  217. $cache = Cache::get("group_getGroupPageList_" . $site_id . '_' . $app_module . '_' . $data);
  218. if (!empty($cache)) {
  219. return $this->success($cache);
  220. }
  221. $list = model('group')->pageList($condition, $field, $order, $page, $page_size);
  222. Cache::tag("group_" . $site_id . '_' . $app_module)->set("group_getGroupPageList_" . $site_id . '_' . $app_module . '_' . $data, $list);
  223. return $this->success($list);
  224. }
  225. /*****************************************用户组管理结束****************************************************************************/
  226. }