WorkerController.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. $oldPassword = $request->get('old_password') ?? '';
  23. $newPassword = $request->get('new_password') ?? '';
  24. $rePassword = $request->get('re_password') ?? '';
  25. $adminPassword = Admin::user()->password;
  26. if(Hash::check($oldPassword,$adminPassword)){
  27. if($newPassword == $rePassword){
  28. if(!preg_match('/^(?![^a-zA-Z]+$)(?!\D+$).{6,20}$/',$newPassword)) return $this->error('密码格式不正确');
  29. if(Hash::check($newPassword,$adminPassword)) return $this->error('与原密码相同');
  30. $admin_id = Admin::user()->id;
  31. $worker = AdminUser::query()->find($admin_id);
  32. $worker->password = bcrypt($newPassword);
  33. $bool = $worker->save();
  34. if($bool){
  35. Auth::logout();
  36. return $this->ok('修改成功');
  37. }else{
  38. return $this->error('修改失败,请重试');
  39. }
  40. }else{
  41. return $this->error('两次输入密码不一致');
  42. }
  43. }else{
  44. return $this->error('原密码不正确');
  45. }
  46. }
  47. /**
  48. * verifyOldPassword 验证旧密码
  49. *
  50. * @param Request $request
  51. * @return \Illuminate\Http\JsonResponse
  52. * @author Fx
  53. *
  54. */
  55. public function verifyOldPassword(Request $request){
  56. $oldPassword = $request->get('old_password') ?? '';
  57. $adminPassword = Admin::user()->password;
  58. if(Hash::check($oldPassword,$adminPassword)){
  59. return $this->noContent();
  60. }else{
  61. return $this->error('原密码不正确');
  62. }
  63. }
  64. /**
  65. * workerList worker列表
  66. *
  67. * @return \Illuminate\Http\JsonResponse
  68. * @author Fx
  69. *
  70. */
  71. public function workerList(){
  72. $admin_id = Admin::user()->id;
  73. $workerList= AdminUser::query()->where('type',AdminUser::TYPE_WORKER);
  74. if(Admin::isAdministrator()){
  75. $workerList = $workerList->get(['name','phone']);
  76. return $this->ok($workerList);
  77. }else{
  78. $area_ids = AdminUser::getAreaIdsByAdminId($admin_id);
  79. $workerList = $workerList->whereIn('area_id',$area_ids)->get(['name','phone']);
  80. return $this->ok($workerList);
  81. }
  82. }
  83. }