12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?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('/[0-9A-Za-z]{6,20}/', $newPassword)) return $this->error('密码格式不正确,6-20字母数字组成');
- 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);
- }
- }
- }
|