UsersController.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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. use DB;
  17. class UsersController extends BaseController
  18. {
  19. public function __construct()
  20. {
  21. parent::__construct();
  22. $this->menusActive[0] = 'adminUsers';
  23. $this->menusActive[1] = 'adminUsersList';
  24. }
  25. //用户列表
  26. public function userList(Request $request)
  27. {
  28. $this->menusActive[0] = 'adminUsers';
  29. $this->menusActive[1] = 'adminUsersList';
  30. $query = User::where('id', '>', 0);
  31. if ($request->has('name_staffNum_mobile')) {
  32. $query = $query->where('staff_num', 'like', '%' . $request->input('name_staffNum_mobile') . '%')
  33. ->orWhere('mobile', 'like', '%' . $request->input('name_staffNum_mobile') . '%')
  34. ->orWhere('name', 'like', '%' . $request->input('name_staffNum_mobile') . '%');
  35. }
  36. $users = $query->paginate(50);
  37. $tableObj = new TableAuxiliary('users/list', $users);
  38. $tableObj->primaryKey = 'staff_num';
  39. // $tableObj->topActions = ['add', 'export', 'import', 'importTemplate'];
  40. $tableObj->topActions = ['add'];
  41. $tableObj->displayActionOthers = [
  42. [
  43. 'name' => '更改权限',
  44. 'path' => 'users/roles/edit',
  45. 'class' => 'layui-btn-warm',
  46. 'isShow' => function ($item) {
  47. return true;
  48. },
  49. 'isJump' => 1,
  50. ],
  51. [
  52. 'name' => '重置密码',
  53. 'path' => 'users/list/resetpassword',
  54. 'class' => 'layui-btn-warm',
  55. 'isShow' => function ($item) {
  56. return true;
  57. },
  58. 'isJump' => 'confirm',
  59. ]
  60. ];
  61. $tableObj->search('input', 'name_staffNum_mobile', '姓名、编号或手机号');
  62. $tableObj->column('name', '姓名')
  63. ->column('staff_num', '用户编码')
  64. ->column('mobile', '手机号');
  65. return $this->tableList($tableObj);
  66. }
  67. //查看用户详情
  68. public function userDetail(Request $request)
  69. {
  70. $staff_num = $request->input('staff_num');
  71. if (empty($staff_num)) {
  72. return redirect('/users/list/view');
  73. }
  74. $user = User::where('staff_num', $staff_num)->first();
  75. $tableObj = new TableAuxiliary('', $user);
  76. $tableObj->column("name", "姓名")
  77. ->column("mobile", "手机号")
  78. ->column("staff_num", "员工编码");
  79. $tableObj->title = '用户详情';
  80. return $this->tableView($tableObj);
  81. }
  82. //添加用户
  83. public function add(Request $request)
  84. {
  85. $fromObj = new FromAuxiliary('users/list/add');
  86. $fromObj->input("name", "姓名")
  87. ->input("mobile", "手机号")
  88. ->input("staff_num", "用户编码");
  89. $fromObj->title = '添加职员';
  90. return $this->from($fromObj);
  91. }
  92. //添加用户操作
  93. public function addPost(Request $request)
  94. {
  95. if (!$request->has('staff_num') || $request->input('staff_num') == 'admin' || empty($request->input('staff_num'))) {
  96. return $this->error(1, '用户编码错误');
  97. }
  98. if (!$request->has('name') || empty($request->input('name'))) {
  99. return $this->error(1, '姓名不能为空');
  100. }
  101. $result = UsersService::addAdminUser($request->all());
  102. if (!$result['status']) {
  103. return $this->error(1, $result['msg']);
  104. }
  105. return redirect('/admin/users/list');
  106. }
  107. //编辑用户
  108. public function edit(Request $request)
  109. {
  110. $staff_num = $request->input('staff_num');
  111. if (empty($staff_num)) {
  112. return redirect('/admin/users/list');
  113. }
  114. $user = User::where('staff_num', $staff_num)->first();
  115. $fromObj = new FromAuxiliary('users/list/edit', $user);
  116. $fromObj->input("name", "姓名")
  117. ->input("mobile", "手机号")
  118. ->input("staff_num", "用户编码");
  119. $fromObj->title = '修改用户信息';
  120. $fromObj->primaryKey = 'staff_num';
  121. return $this->from($fromObj);
  122. }
  123. //编辑用户操作
  124. public function editPost(Request $request)
  125. {
  126. if (!$request->has('staff_num') || $request->input('staff_num') == 'admin' || empty($request->input('staff_num'))) {
  127. return $this->error(1, '用户编码错误');
  128. }
  129. if (!$request->has('name') || empty($request->input('name'))) {
  130. return $this->error(1, '姓名不能为空');
  131. }
  132. $result = UsersService::editAdminUser($request->all());
  133. if (!$result['status']) {
  134. return $this->error(1, $result['msg']);
  135. }
  136. return redirect('/admin/users/list');
  137. }
  138. //删除用户
  139. public function delPost(Request $request)
  140. {
  141. if (!$request->has('staff_num')) {
  142. return $this->error(1, '缺少必要参数');
  143. }
  144. if ($request->input('staff_num') == 'admin') {
  145. return $this->error(1, '员工编码错误');
  146. }
  147. if ($request->input('staff_num') == $request->user()['staff_num']) {
  148. return $this->error(1, '不能删除自己');
  149. }
  150. $result = UsersService::delAdminUser($request->all());
  151. if (!$result['status']) {
  152. return $this->error(1, $result['msg']);
  153. }
  154. return $this->success();
  155. }
  156. //重置用户密码
  157. public function resetPassword(Request $request)
  158. {
  159. if (!$request->has('staff_num')) {
  160. return $this->error(1, '缺少必要参数');
  161. }
  162. $result = UsersService::resetPassword($request->all());
  163. if (!$result['status']) {
  164. return $this->error(1, $result['msg']);
  165. }
  166. return $this->success();
  167. }
  168. //权限修改
  169. public function roles(Request $request)
  170. {
  171. if ($request->isMethod('post')) {
  172. // $roleData['title'] = $request->input('name');
  173. // $roleData['guard_name'] = 'admin';
  174. // $roleData['name'] = implode(array_map(function ($v) {
  175. // return ucfirst($v);
  176. // }, pinyin($request->input('name'))));
  177. //
  178. // // 添加角色
  179. // $roler = Role::updateOrCreate(['id' => $request->input('id') ?? ''], $roleData);
  180. // if ($request->has('id')) { // 同步权限
  181. // $roler->syncPermissions($request->input('authids'));
  182. // } else { // 添加权限
  183. // $roler->givePermissionTo($request->input('authids'));
  184. // }
  185. // return $this->redirect('/admin/roles/list');
  186. dd(123);
  187. }
  188. $mine_parent = DB::table('mine_list')->where('parent_id',0)->where('deleted_at',null)->get();
  189. $data['menusAll'] = $mine_parent;
  190. $data['title'] = '更改权限';
  191. if (!$request->has('id')) {
  192. return $this->redirect('/admin/users/list');
  193. }
  194. // $roler = Role::find($request->input('id'));
  195. // $data['checkedId'] = $roler->getAllPermissions()->pluck('name')->all();
  196. // $data['roler'] = $roler;
  197. return $this->view('admin::roles', $data);
  198. }
  199. }