12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace App\Http\Controllers\App;
- use App\Models\AdminUser;
- use App\Models\AdminUserArea;
- use App\Models\Area;
- use App\Utils\Admin;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\Hash;
- class WorkerController extends Controller
- {
- /**
- * changePassword 修改密码
- *
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse
- * @author Fx
- *
- */
- public function changePassword(Request $request){
- $oldPassword = $request->get('old_password') ?? '';
- $newPassword = $request->get('new_password') ?? '';
- $rePassword = $request->get('re_password') ?? '';
- $adminPassword = Admin::user()->password;
- if(Hash::check($oldPassword,$adminPassword)){
- if($newPassword == $rePassword){
- if(!preg_match('/^(?![^a-zA-Z]+$)(?!\D+$).{6,20}$/',$newPassword)) return $this->error('密码格式不正确');
- if(Hash::check($newPassword,$adminPassword)) return $this->error('与原密码相同');
- $admin_id = Admin::user()->id;
- $worker = AdminUser::query()->find($admin_id);
- $worker->password = bcrypt($newPassword);
- $bool = $worker->save();
- if($bool){
- Auth::logout();
- return $this->ok('修改成功');
- }else{
- return $this->error('修改失败,请重试');
- }
- }else{
- return $this->error('两次输入密码不一致');
- }
- }else{
- return $this->error('原密码不正确');
- }
- }
- /**
- * verifyOldPassword 验证旧密码
- *
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse
- * @author Fx
- *
- */
- public function verifyOldPassword(Request $request){
- $oldPassword = $request->get('old_password') ?? '';
- $adminPassword = Admin::user()->password;
- if(Hash::check($oldPassword,$adminPassword)){
- return $this->noContent();
- }else{
- return $this->error('原密码不正确');
- }
- }
- /**
- * workerList worker列表
- *
- * @return \Illuminate\Http\JsonResponse
- * @author Fx
- *
- */
- public function workerList(){
- $admin_id = Admin::user()->id;
- $workerList= AdminUser::query()->where('type',AdminUser::TYPE_WORKER);
- if(Admin::isAdministrator()){
- $workerList = $workerList->get(['name','phone']);
- return $this->ok($workerList);
- }else{
- $area_ids = AdminUser::getAreaIdsByAdminId($admin_id);
- $workerList = $workerList->whereIn('area_id',$area_ids)->get(['name','phone']);
- return $this->ok($workerList);
- }
- }
- }
|