User.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace addon\cashier\storeapi\controller;
  13. use addon\cashier\model\Group;
  14. use app\model\system\User as UserModel;
  15. use app\model\system\UserGroup;
  16. use app\storeapi\controller\BaseStoreApi;
  17. /**
  18. * 用户控制器
  19. * Class User
  20. * @package addon\shop\siteapi\controller
  21. */
  22. class User extends BaseStoreApi
  23. {
  24. /**
  25. * 用户列表
  26. * @return mixed
  27. */
  28. public function lists()
  29. {
  30. $page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
  31. $page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
  32. $status = isset($this->params[ 'status' ]) ? $this->params[ 'status' ] : '';
  33. $username = isset($this->params[ 'username' ]) ? $this->params[ 'username' ] : '';
  34. $condition = [
  35. [ "ug.site_id", "=", $this->site_id ],
  36. [ "ug.store_id", "=", $this->store_id ],
  37. [ "ug.app_module", "=", 'store' ]
  38. ];
  39. if (!empty($username)) {
  40. $condition[] = [ 'u.username', 'like', '%' . $username . '%' ];
  41. }
  42. if ($status != "") {
  43. $condition[ "u.status" ] = [ "status", "=", $status ];
  44. }
  45. $join = [
  46. ['user u', 'u.uid = ug.uid', 'inner'],
  47. ['cashier_auth_group cag', 'cag.group_id = ug.group_id', 'inner']
  48. ];
  49. $field = 'u.uid,u.username,u.is_admin,u.status,u.create_time,cag.group_id,cag.group_name,u.login_time';
  50. $user_model = new UserGroup();
  51. $list = $user_model->getUserPageList($condition, $page, $page_size, "u.is_admin desc,u.create_time desc", $field, 'ug', $join);
  52. return $this->response($list);
  53. }
  54. /**
  55. * 添加用户
  56. * @return mixed
  57. */
  58. public function addUser()
  59. {
  60. $username = isset($this->params[ 'username' ]) ? $this->params[ 'username' ] : '';
  61. $password = isset($this->params[ 'password' ]) ? $this->params[ 'password' ] : '';
  62. $group_id = isset($this->params[ 'group_id' ]) ? $this->params[ 'group_id' ] : '';
  63. $user_model = new UserModel();
  64. $data = array (
  65. "username" => $username,
  66. "password" => $password,
  67. "group_id" => 0,
  68. "app_module" => 'shop',
  69. "site_id" => $this->site_id,
  70. "store" => [
  71. [ 'store_id' => $this->store_id, 'group_id' => $group_id ]
  72. ]
  73. );
  74. $result = $user_model->addUser($data);
  75. return $this->response($result);
  76. }
  77. /**
  78. * 用户详情
  79. */
  80. public function userInfo()
  81. {
  82. $uid = $this->params[ 'uid' ] ?? 0;
  83. if (!$uid) {
  84. return $this->response($this->success($this->user_info));
  85. }
  86. $condition = [
  87. [ "ug.site_id", "=", $this->site_id ],
  88. [ "ug.store_id", "=", $this->store_id ],
  89. [ "ug.uid", "=", $uid ],
  90. [ "ug.app_module", "=", 'store' ]
  91. ];
  92. $join = [
  93. ['user u', 'u.uid = ug.uid', 'inner'],
  94. ['cashier_auth_group cag', 'cag.group_id = ug.group_id', 'inner']
  95. ];
  96. $field = 'u.uid,u.username,u.is_admin,u.status,u.create_time,u.login_time,u.login_ip,cag.group_id,cag.group_name';
  97. $user_model = new UserGroup();
  98. $user_info = $user_model->getUserInfo($condition, $field, 'ug', $join);
  99. return $this->response($user_info);
  100. }
  101. /**
  102. * 删除用户
  103. */
  104. public function deleteUser()
  105. {
  106. $uid = isset($this->params[ 'uid' ]) ? $this->params[ 'uid' ] : 0;
  107. if ($uid == $this->user_info['uid']) return $this->error('', '自己不能删除自己');
  108. $user_model = new UserGroup();
  109. $condition = array (
  110. [ "uid", "=", $uid ],
  111. [ "site_id", "=", $this->site_id ],
  112. [ "store_id", "=", $this->store_id ],
  113. );
  114. $result = $user_model->deleteUser($condition);
  115. return $this->response($result);
  116. }
  117. /**
  118. * 管理组列表
  119. * @return mixed
  120. */
  121. public function group()
  122. {
  123. $condition = array (
  124. [ 'site_id', "=", $this->site_id ],
  125. );
  126. $group_model = new Group();
  127. $list = $group_model->getGroupList($condition, 'group_id,group_name');
  128. return $this->response($list);
  129. }
  130. /**
  131. * 用户日志
  132. */
  133. public function userLog()
  134. {
  135. $user_model = new UserModel();
  136. $page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
  137. $page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
  138. $uid = isset($this->params[ 'uid' ]) ? $this->params[ 'uid' ] : 0;
  139. $search_keys = isset($this->params[ 'search_keys' ]) ? $this->params[ 'search_keys' ] : '';
  140. $condition = [];
  141. $condition[] = [ "site_id", "=", $this->site_id ];
  142. if (!empty($search_keys)) {
  143. $condition[] = [ 'action_name', 'like', '%' . $search_keys . '%' ];
  144. }
  145. if ($uid > 0) {
  146. $condition[] = [ 'uid', '=', $uid ];
  147. }
  148. $list = $user_model->getUserlogPageList($condition, $page, $page_size, "create_time desc");
  149. return $this->response($list);
  150. }
  151. /**
  152. * 编辑用户
  153. * @return mixed
  154. */
  155. public function editUser()
  156. {
  157. $user_model = new UserModel();
  158. $group_id = isset($this->params[ 'group_id' ]) ? $this->params[ 'group_id' ] : '';
  159. $status = isset($this->params[ 'status' ]) ? $this->params[ 'status' ] : '';
  160. $uid = isset($this->params[ 'uid' ]) ? $this->params[ 'uid' ] : 0;
  161. $condition = array (
  162. [ "uid", "=", $uid ],
  163. [ "site_id", "=", $this->site_id ],
  164. [ "app_module", "=", $this->app_module ],
  165. );
  166. $data = array (
  167. "group_id" => $group_id,
  168. "status" => $status,
  169. "store" => [
  170. [ 'store_id' => $this->store_id, 'group_id' => $group_id ]
  171. ]
  172. );
  173. $this->addLog("编辑用户:" . $uid);
  174. $result = $user_model->editUser($data, $condition);
  175. return $this->response($result);
  176. }
  177. /**
  178. * 修改密码
  179. * */
  180. public function modifyPassword()
  181. {
  182. $site_id = $this->site_id;
  183. $user_model = new UserModel();
  184. $uid = $this->uid;
  185. $old_pass = isset($this->params[ 'old_pass' ]) ? $this->params[ 'old_pass' ] : '';
  186. $new_pass = isset($this->params[ 'new_pass' ]) ? $this->params[ 'new_pass' ] : '123456';
  187. $condition = [
  188. [ 'uid', '=', $uid ],
  189. [ 'password', '=', data_md5($old_pass) ],
  190. [ 'site_id', '=', $site_id ]
  191. ];
  192. $res = $user_model->modifyAdminUserPassword($condition, $new_pass);
  193. return $this->response($res);
  194. }
  195. /**
  196. * 获取门店用户权限
  197. */
  198. public function userGroupAuth(){
  199. $data = [
  200. 'is_admin' => $this->user_info['is_admin'],
  201. 'menu_array' => $this->store_list[ $this->store_id ]['menu_array'] ?? ''
  202. ];
  203. return $this->response($this->success($data));
  204. }
  205. }