UsersController.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: qiuzijian
  5. * Date: 2021-04-15
  6. * Time: 17:28
  7. */
  8. namespace Modules\Admin\Http\Controllers;
  9. use App\User;
  10. use Illuminate\Http\Request;
  11. use Modules\Admin\Auxiliary\View\FromAuxiliary;
  12. use Modules\Admin\Auxiliary\View\TableAuxiliary;
  13. use Modules\Admin\Enum\UserEnum;
  14. use Modules\Admin\Services\UsersService;
  15. use Spatie\Permission\Models\Permission;
  16. class UsersController extends BaseController
  17. {
  18. public function __construct()
  19. {
  20. parent::__construct();
  21. $this->menusActive[0] = 'adminUsers';
  22. $this->menusActive[1] = 'adminUsersList';
  23. }
  24. //用户列表
  25. public function userList(Request $request)
  26. {
  27. $this->menusActive[0] = 'adminUsers';
  28. $this->menusActive[1] = 'adminUsersList';
  29. $query = User::where('id', '>', 0);
  30. if ($request->has('name_staffNum_mobile')) {
  31. $query = $query->where('staff_num', 'like', '%' . $request->input('name_staffNum_mobile') . '%')
  32. ->orWhere('mobile', 'like', '%' . $request->input('name_staffNum_mobile') . '%')
  33. ->orWhere('name', 'like', '%' . $request->input('name_staffNum_mobile') . '%');
  34. }
  35. $users = $query->get();
  36. $tableObj = new TableAuxiliary('users/list', $users);
  37. $tableObj->primaryKey = 'staff_num';
  38. // $tableObj->topActions = ['add', 'export', 'import', 'importTemplate'];
  39. $tableObj->topActions = ['add'];
  40. $tableObj->displayActionOthers = [
  41. [
  42. 'name' => '更改权限',
  43. 'path' => 'staff/roles/change',
  44. 'class' => 'layui-btn-warm',
  45. 'isShow' => function ($item) {
  46. return true;
  47. },
  48. 'isJump' => 1,
  49. ],
  50. [
  51. 'name' => '重置密码',
  52. 'path' => 'users/list/resetpassword',
  53. 'class' => 'layui-btn-warm',
  54. 'isShow' => function ($item) {
  55. return true;
  56. },
  57. 'isJump' => 'confirm',
  58. ]
  59. ];
  60. $tableObj->search('input', 'name_staffNum_mobile', '姓名、编号或手机号');
  61. $tableObj->column('name', '姓名')
  62. ->column('staff_num', '用户编码')
  63. ->column('mobile', '手机号');
  64. return $this->tableList($tableObj);
  65. }
  66. //查看用户详情
  67. public function userDetail(Request $request)
  68. {
  69. $staff_num = $request->input('staff_num');
  70. if (empty($staff_num)) {
  71. return redirect('/users/list/view');
  72. }
  73. $user = User::where('staff_num', $staff_num)->first();
  74. $tableObj = new TableAuxiliary('', $user);
  75. $tableObj->column("name", "姓名")
  76. ->column("mobile", "手机号")
  77. ->column("staff_num", "员工编码");
  78. $tableObj->title = '用户详情';
  79. return $this->tableView($tableObj);
  80. }
  81. //添加用户
  82. public function add(Request $request)
  83. {
  84. $fromObj = new FromAuxiliary('users/list/add');
  85. $fromObj->input("name", "姓名")
  86. ->input("mobile", "手机号")
  87. ->input("staff_num", "用户编码");
  88. $fromObj->title = '添加职员';
  89. return $this->from($fromObj);
  90. }
  91. //添加用户操作
  92. public function addPost(Request $request)
  93. {
  94. if (!$request->has('staff_num') || $request->input('staff_num') == 'admin' || empty($request->input('staff_num'))) {
  95. return $this->error(1, '用户编码错误');
  96. }
  97. if (!$request->has('name') || empty($request->input('name'))) {
  98. return $this->error(1, '姓名不能为空');
  99. }
  100. $result = UsersService::addAdminUser($request->all());
  101. if (!$result['status']) {
  102. return $this->error(1, $result['msg']);
  103. }
  104. return redirect('/admin/users/list');
  105. }
  106. //编辑用户
  107. public function edit(Request $request)
  108. {
  109. $staff_num = $request->input('staff_num');
  110. if (empty($staff_num)) {
  111. return redirect('/admin/users/list');
  112. }
  113. $user = User::where('staff_num', $staff_num)->first();
  114. $fromObj = new FromAuxiliary('users/list/edit', $user);
  115. $fromObj->input("name", "姓名")
  116. ->input("mobile", "手机号")
  117. ->input("staff_num", "用户编码");
  118. $fromObj->title = '修改用户信息';
  119. $fromObj->primaryKey = 'staff_num';
  120. return $this->from($fromObj);
  121. }
  122. //编辑用户操作
  123. public function editPost(Request $request)
  124. {
  125. if (!$request->has('staff_num') || $request->input('staff_num') == 'admin' || empty($request->input('staff_num'))) {
  126. return $this->error(1, '用户编码错误');
  127. }
  128. if (!$request->has('name') || empty($request->input('name'))) {
  129. return $this->error(1, '姓名不能为空');
  130. }
  131. $result = UsersService::editAdminUser($request->all());
  132. if (!$result['status']) {
  133. return $this->error(1, $result['msg']);
  134. }
  135. return redirect('/admin/users/list');
  136. }
  137. //删除用户
  138. public function delPost(Request $request)
  139. {
  140. if (!$request->has('staff_num')) {
  141. return $this->error(1, '缺少必要参数');
  142. }
  143. if ($request->input('staff_num') == 'admin') {
  144. return $this->error(1, '员工编码错误');
  145. }
  146. if ($request->input('staff_num') == $request->user()['staff_num']) {
  147. return $this->error(1, '不能删除自己');
  148. }
  149. $result = UsersService::delAdminUser($request->all());
  150. if (!$result['status']) {
  151. return $this->error(1, $result['msg']);
  152. }
  153. return $this->success();
  154. }
  155. //重置用户密码
  156. public function resetPassword(Request $request)
  157. {
  158. if (!$request->has('staff_num')) {
  159. return $this->error(1, '缺少必要参数');
  160. }
  161. $result = UsersService::resetPassword($request->all());
  162. if (!$result['status']) {
  163. return $this->error(1, $result['msg']);
  164. }
  165. return $this->success();
  166. }
  167. }