User.php 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  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\admin\controller;
  13. use app\model\system\Group;
  14. use app\model\system\Menu;
  15. use app\model\system\User as UserModel;
  16. /**
  17. * 管理员 控制器
  18. */
  19. class User extends BaseAdmin
  20. {
  21. /**
  22. * 用户列表
  23. */
  24. public function user()
  25. {
  26. if (request()->isAjax()) {
  27. $page = input('page', 1);
  28. $page_size = input('page_size', PAGE_LIST_ROWS);
  29. $condition = [];
  30. $condition[] = [ "site_id", "=", $this->site_id ];
  31. $condition[] = [ "app_module", "=", $this->app_module ];
  32. $status = input('status', 'all');
  33. $search_keys = input('search_keys', "");
  34. if (!empty($search_keys)) {
  35. $condition[] = [ 'username', 'like', '%' . $search_keys . '%' ];
  36. }
  37. if ($status != "all" && $status != "") {
  38. $condition["status"] = [ "status", "=", $status ];
  39. }
  40. $user_model = new UserModel();
  41. $list = $user_model->getUserPageList($condition, $page, $page_size, "create_time desc");
  42. return $list;
  43. } else {
  44. $this->forthMenu();
  45. return $this->fetch('user/user');
  46. }
  47. }
  48. /**
  49. * 添加用户
  50. * @return mixed
  51. */
  52. public function addUser()
  53. {
  54. if (request()->isAjax()) {
  55. $username = trim(input("username", ""));
  56. $password = trim(input("password", ""));
  57. $group_id = trim(input("group_id", ""));
  58. $user_model = new UserModel();
  59. $data = array(
  60. "username" => $username,
  61. "password" => $password,
  62. "group_id" => $group_id,
  63. "app_module" => $this->app_module,
  64. "site_id" => $this->site_id
  65. );
  66. $result = $user_model->addUser($data);
  67. return $result;
  68. } else {
  69. $group_model = new Group();
  70. $group_list_result = $group_model->getGroupList([ [ "site_id", "=", $this->site_id ], [ "app_module", "=", $this->app_module ] ]);
  71. $group_list = $group_list_result["data"];
  72. $this->assign("group_list", $group_list);
  73. return $this->fetch('user/add_user');
  74. }
  75. }
  76. /**
  77. * 编辑用户
  78. * @return mixed
  79. */
  80. public function editUser()
  81. {
  82. $uid = input("uid", 0);
  83. $user_model = new UserModel();
  84. if (request()->isAjax()) {
  85. $group_id = input("group_id", "");
  86. $status = input("status", "");
  87. $condition = array(
  88. [ "uid", "=", $uid ],
  89. [ "site_id", "=", $this->site_id ],
  90. [ "app_module", "=", $this->app_module ],
  91. );
  92. $data = array(
  93. "group_id" => $group_id,
  94. "status" => $status
  95. );
  96. $result = $user_model->editUser($data, $condition);
  97. return $result;
  98. } else {
  99. $condition = array(
  100. [ "uid", "=", $uid ],
  101. [ "site_id", "=", $this->site_id ],
  102. [ "app_module", "=", $this->app_module ],
  103. );
  104. $user_info_result = $user_model->getUserInfo($condition);
  105. $user_info = $user_info_result["data"];
  106. $this->assign("user_info", $user_info);
  107. $this->assign("uid", $uid);
  108. $group_model = new Group();
  109. $group_list_result = $group_model->getGroupList([ [ "site_id", "=", $this->site_id ], [ "app_module", "=", $this->app_module ] ]);
  110. $group_list = $group_list_result["data"];
  111. $this->assign("group_list", $group_list);
  112. return $this->fetch('user/edit_user');
  113. }
  114. }
  115. /**
  116. * 修改用户状态
  117. * @return mixed
  118. */
  119. public function modifyUserStatus()
  120. {
  121. if (request()->isAjax()) {
  122. $uid = input('uid', 0);
  123. $status = input('status', 0);
  124. $user_model = new UserModel();
  125. $condition = array(
  126. [ "uid", "=", $uid ],
  127. [ "site_id", "=", $this->site_id ],
  128. [ "app_module", "=", $this->app_module ],
  129. );
  130. $result = $user_model->modifyUserStatus($status, $condition);
  131. return $result;
  132. }
  133. }
  134. /**
  135. * 重置密码
  136. */
  137. public function modifyPassword()
  138. {
  139. if (request()->isAjax()) {
  140. $password = trim(input('password', '123456'));
  141. $uid = input('uid', 0);
  142. $site_id = $this->site_id;
  143. $user_model = new UserModel();
  144. return $user_model->modifyUserPassword($password, [ [ 'uid', '=', $uid ], [ 'site_id', '=', $site_id ] ]);
  145. }
  146. }
  147. /**
  148. * 删除用户
  149. */
  150. public function deleteUser()
  151. {
  152. if (request()->isAjax()) {
  153. $uid = input("uid", 0);
  154. $user_model = new UserModel();
  155. $condition = array(
  156. [ "uid", "=", $uid ],
  157. [ "app_module", "=", $this->app_module ],
  158. [ "site_id", "=", $this->site_id ],
  159. );
  160. $result = $user_model->deleteUser($condition);
  161. return $result;
  162. }
  163. }
  164. /**
  165. * 用户组
  166. * @return mixed
  167. */
  168. public function group()
  169. {
  170. if (request()->isAjax()) {
  171. $page = input('page', 1);
  172. $limit = input('page_size', PAGE_LIST_ROWS);
  173. $condition = array(
  174. [ 'site_id', "=", $this->site_id ],
  175. [ "app_module", "=", $this->app_module ]
  176. );
  177. $search_keys = input('search_keys', "");
  178. if (!empty($search_keys)) {
  179. $condition[] = [ 'desc', 'like', '%' . $search_keys . '%' ];
  180. }
  181. $group_model = new Group();
  182. $list = $group_model->getGroupPageList($condition, $page, $limit);
  183. return $list;
  184. } else {
  185. $this->forthMenu();
  186. return $this->fetch('user/group');
  187. }
  188. }
  189. /**
  190. * 添加用户组
  191. */
  192. public function addGroup()
  193. {
  194. if (request()->isAjax()) {
  195. $group_name = input('group_name', '');
  196. $menu_array = input('menu_array', '');
  197. $desc = input('desc', '');
  198. $group_model = new Group();
  199. $data = array(
  200. "group_name" => $group_name,
  201. "site_id" => $this->site_id,
  202. "app_module" => $this->app_module,
  203. "group_status" => 1,
  204. "menu_array" => $menu_array,
  205. "desc" => $desc,
  206. "is_system" => 0
  207. );
  208. $this->addLog("添加用户组:" . $data['group_name']);
  209. $result = $group_model->addGroup($data);
  210. return $result;
  211. } else {
  212. $menu_model = new Menu();
  213. $menu_list = $menu_model->getMenuList([ [ 'app_module', "=", $this->app_module ] ], "title, name, parent, level");
  214. $menu_tree = list_to_tree($menu_list['data'], 'name', 'parent', 'child_list', '');
  215. $this->assign('tree_data', $menu_tree);
  216. return $this->fetch('user/add_group');
  217. }
  218. }
  219. /**
  220. * 编辑用户组
  221. */
  222. public function editGroup()
  223. {
  224. $group_model = new Group();
  225. $group_id = input('group_id', 0);
  226. if (request()->isAjax()) {
  227. $group_name = input('group_name', '');
  228. $menu_array = input('menu_array', '');
  229. $desc = input('desc', '');
  230. $data = array(
  231. "group_name" => $group_name,
  232. "menu_array" => $menu_array,
  233. "desc" => $desc,
  234. );
  235. $condition = array(
  236. [ "group_id", "=", $group_id ],
  237. [ "site_id", "=", $this->site_id ],
  238. [ "app_module", "=", $this->app_module ]
  239. );
  240. $this->addLog("编辑用户组:" . $data['group_name']);
  241. $result = $group_model->editGroup($data, $condition);
  242. return $result;
  243. } else {
  244. $condition = array(
  245. [ "group_id", "=", $group_id ],
  246. [ "site_id", "=", $this->site_id ],
  247. [ "app_module", "=", $this->app_module ]
  248. );
  249. $group_info_result = $group_model->getGroupInfo($condition);
  250. $group_info = $group_info_result["data"];
  251. $this->assign("group_info", $group_info);
  252. $this->assign("group_id", $group_id);
  253. $menu_model = new Menu();
  254. $menu_list = $menu_model->getMenuList([ [ 'app_module', "=", $this->app_module ] ], "title, name, parent, level");
  255. $group_array = $group_info['menu_array'];
  256. $checked_array = explode(',', $group_array);
  257. foreach ($menu_list['data'] as $key => $val) {
  258. if (in_array($val['name'], $checked_array)) {
  259. $menu_list['data'][ $key ]['checked'] = true;
  260. } else {
  261. $menu_list['data'][ $key ]['checked'] = false;
  262. }
  263. }
  264. $menu_tree = list_to_tree($menu_list['data'], 'name', 'parent', 'child_list', '');
  265. $this->assign('tree_data', $menu_tree);
  266. return $this->fetch('user/edit_group');
  267. }
  268. }
  269. /**
  270. * 修改用户组状态
  271. */
  272. public function modifyGroupStatus()
  273. {
  274. if (request()->isAjax()) {
  275. $group_id = input('group_id', 0);
  276. $status = input('status', 0);
  277. $group_model = new Group();
  278. $condition = array(
  279. [ "group_id", "=", $group_id ],
  280. [ "site_id", "=", $this->site_id ],
  281. [ "app_module", "=", $this->app_module ],
  282. );
  283. $result = $group_model->modifyGroupStatus($status, $condition);
  284. return $result;
  285. }
  286. }
  287. /**
  288. * 删除用户组
  289. */
  290. public function delGroup()
  291. {
  292. if (request()->isAjax()) {
  293. $group_id = input('group_id', '');
  294. $condition = array(
  295. [ "group_id", "=", $group_id ],
  296. [ "site_id", "=", $this->site_id ],
  297. [ "app_module", "=", $this->app_module ],
  298. );
  299. $this->addLog("删除用户组id:" . $group_id);
  300. $group_model = new Group();
  301. $result = $group_model->deleteGroup($condition);
  302. return $result;
  303. }
  304. }
  305. /**
  306. * 用户操作日志
  307. */
  308. public function userLog()
  309. {
  310. $user_model = new UserModel();
  311. if (request()->isAjax()) {
  312. $page = input('page', 1);
  313. $page_size = input('page_size', PAGE_LIST_ROWS);
  314. $uid = input('uid', '0');
  315. $condition = [];
  316. $condition[] = [ "site_id", "=", $this->site_id ];
  317. $search_keys = input('search_keys', "");
  318. if (!empty($search_keys)) {
  319. $condition[] = [ 'action_name', 'like', '%' . $search_keys . '%' ];
  320. }
  321. if ($uid > 0) {
  322. $condition[] = [ 'uid', '=', $uid ];
  323. }
  324. $list = $user_model->getUserlogPageList($condition, $page, $page_size, "create_time desc");
  325. return $list;
  326. } else {
  327. $this->forthMenu();
  328. $condition = [];
  329. $condition[] = [ "site_id", "=", $this->site_id ];
  330. $condition[] = [ "app_module", "=", $this->app_module ];
  331. $user_list_result = $user_model->getUserList($condition);
  332. $user_list = $user_list_result["data"];
  333. $this->assign("user_list", $user_list);
  334. return $this->fetch('user/user_log');
  335. }
  336. }
  337. /**
  338. * 批量删除日志
  339. */
  340. public function deleteUserLog()
  341. {
  342. $user_model = new UserModel();
  343. $id = input("id", "");
  344. $condition = array(
  345. [ "id", "in", $id ],
  346. [ "site_id", '=', $this->site_id ]
  347. );
  348. $res = $user_model->deleteUserLog($condition);
  349. return $res;
  350. }
  351. }