WorkerController.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace App\Http\Controllers\App;
  3. use App\Models\AdminUser;
  4. use App\Models\AdminUserArea;
  5. use App\Models\Area;
  6. use App\Utils\Admin;
  7. use Illuminate\Http\Request;
  8. use App\Http\Controllers\Controller;
  9. use Illuminate\Support\Facades\Auth;
  10. use Illuminate\Support\Facades\Hash;
  11. class WorkerController extends Controller
  12. {
  13. /**
  14. * changePassword 修改密码
  15. *
  16. * @param Request $request
  17. * @return \Illuminate\Http\JsonResponse
  18. * @author Fx
  19. *
  20. */
  21. public function changePassword(Request $request)
  22. {
  23. $oldPassword = $request->get('old_password') ?? '';
  24. $newPassword = $request->get('new_password') ?? '';
  25. $rePassword = $request->get('re_password') ?? '';
  26. $adminPassword = Admin::user()->password;
  27. if (Hash::check($oldPassword, $adminPassword)) {
  28. if ($newPassword == $rePassword) {
  29. if (!preg_match('/[0-9A-Za-z]{6,20}/', $newPassword)) return $this->error('密码格式不正确,6-20字母数字组成');
  30. if (Hash::check($newPassword, $adminPassword)) return $this->error('与原密码相同');
  31. $admin_id = Admin::user()->id;
  32. $worker = AdminUser::query()->find($admin_id);
  33. $worker->password = bcrypt($newPassword);
  34. $bool = $worker->save();
  35. if ($bool) {
  36. Auth::logout();
  37. return $this->ok('修改成功');
  38. } else {
  39. return $this->error('修改失败,请重试');
  40. }
  41. } else {
  42. return $this->error('两次输入密码不一致');
  43. }
  44. } else {
  45. return $this->error('原密码不正确');
  46. }
  47. }
  48. /**
  49. * verifyOldPassword 验证旧密码
  50. *
  51. * @param Request $request
  52. * @return \Illuminate\Http\JsonResponse
  53. * @author Fx
  54. *
  55. */
  56. public function verifyOldPassword(Request $request)
  57. {
  58. $oldPassword = $request->get('old_password') ?? '';
  59. $adminPassword = Admin::user()->password;
  60. if (Hash::check($oldPassword, $adminPassword)) {
  61. return $this->noContent();
  62. } else {
  63. return $this->error('原密码不正确');
  64. }
  65. }
  66. /**
  67. * workerList worker列表
  68. *
  69. * @return \Illuminate\Http\JsonResponse
  70. * @author Fx
  71. *
  72. */
  73. public function workerList()
  74. {
  75. $admin_id = Admin::user()->id;
  76. $workerList = AdminUser::query()->where('type', AdminUser::TYPE_WORKER);
  77. if (Admin::isAdministrator()) {
  78. $workerList = $workerList->get(['name', 'phone']);
  79. return $this->ok($workerList);
  80. } else {
  81. $area_ids = AdminUser::getAreaIdsByAdminId($admin_id);
  82. $workerList = $workerList->whereIn('area_id', $area_ids)->get(['name', 'phone']);
  83. return $this->ok($workerList);
  84. }
  85. }
  86. }