Group.php 8.5 KB

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