diff --git a/app/Request/Admin/DriverRequest.php b/app/Request/Admin/DriverRequest.php index 2ffdc81..952536e 100644 --- a/app/Request/Admin/DriverRequest.php +++ b/app/Request/Admin/DriverRequest.php @@ -26,6 +26,11 @@ class DriverRequest extends FormRequest 'query_driver_city_id' => 'sometimes|integer|exists:system_city,id', 'query_driver_id' =>'sometimes|integer|exists:admin_user,id', 'limit' => 'required|integer', + 'city_id' => 'required|integer|exists:system_city,id', + 'driver_ids' => 'required|string', + 'driver_num' => 'required', + 'site_ids' => 'required|string', + 'driver_id' =>'required|integer|exists:admin_user,id', ]; } @@ -40,6 +45,11 @@ class DriverRequest extends FormRequest 'query_driver_name', 'query_driver_city_id', 'query_driver_id' - ] + ], + 'driver_sequence_list' => ['city_id'], + 'setting_driver_sequence'=> ['driver_ids'], + 'setting_driver_num' => ['driver_id','driver_num'], + 'site_sequence_list_by_driver' => ['driver_id'], + 'setting_site_sequence' => ['driver_id','site_ids'], ]; } diff --git a/app/Service/Admin/BaseService.php b/app/Service/Admin/BaseService.php index 6047d77..d8a1e1e 100644 --- a/app/Service/Admin/BaseService.php +++ b/app/Service/Admin/BaseService.php @@ -43,11 +43,6 @@ abstract class BaseService */ protected int $roleId = 0; - /** - * @var int - */ - protected int $cityId = 0; - /** * 主构造函数(获取请求对象) */ @@ -55,7 +50,6 @@ abstract class BaseService { $this->adminId = Context::get("admin_id",0); $this->roleId = Context::get("role_id",0); - $this->cityId = Context::get("city_id",0); } /** diff --git a/app/Service/Admin/System/DriverService.php b/app/Service/Admin/System/DriverService.php index 905ed59..c2d9463 100644 --- a/app/Service/Admin/System/DriverService.php +++ b/app/Service/Admin/System/DriverService.php @@ -97,6 +97,7 @@ class DriverService extends BaseService */ public function driverSequenceList(): array { + $this->cityId = (int)$this->request->input('city_id',0); if (empty($this->cityId)) return $this->return->success('success',['list' => []]); $list = $this diff --git a/app/Service/Admin/User/EmployeeService.php b/app/Service/Admin/User/EmployeeService.php index 8e341e2..725e8e2 100644 --- a/app/Service/Admin/User/EmployeeService.php +++ b/app/Service/Admin/User/EmployeeService.php @@ -11,11 +11,13 @@ declare(strict_types=1); namespace App\Service\Admin\User; use App\Constants\Admin\UserCode; +use App\Constants\Common\RoleCode; use App\Exception\ErrException; use App\Extend\StringUtil; use App\Lib\Crypto\CryptoFactory; use App\Model\AdminRole; use App\Model\AdminUser; +use App\Model\DriverSequence; use App\Service\Admin\BaseService; use Exception; use Hyperf\Di\Annotation\Inject; @@ -101,6 +103,17 @@ class EmployeeService extends BaseService if (!$model->save()) throw new ErrException('账号添加失败'); + //写入关联表 + $res = match ($model->role_id) { + RoleCode::DRIVER => + (new DriverSequence)->insert([ + 'driver_id' => $model->id, + ]), + default => true, + }; + + if (!$res) throw new ErrException('关联表添加失败'); + return $this->return->success(); } @@ -113,6 +126,7 @@ class EmployeeService extends BaseService $id = (int)$this->request->input('id'); $name = $this->request->input('chinese_name'); $account = $this->request->input('account'); + $roleId = $this->request->input('role_id', 0); $info = $this->adminUserModel->getAdminInfoById($id); if (empty($info)) throw new ErrException('数据不存在'); @@ -123,12 +137,29 @@ class EmployeeService extends BaseService if (!empty($oldName) && $oldName->id != $info->id) throw new ErrException('员工已存在'); if (!empty($oldAccount) && $oldAccount->id != $info->id) throw new ErrException('账号已存在'); + if ($info->role_id != $roleId) { + //写入关联表 + $del = match ($info->role_id) { + RoleCode::DRIVER => (new DriverSequence)->where('driver_id', $info->id)->delete(), + default => true, + }; + + $add = match ($roleId) { + RoleCode::DRIVER => (new DriverSequence)->insert([ + 'driver_id' => $info->id, + ]), + default => true, + }; + + if (!$del || !$add) throw new ErrException('关联表修改失败'); + } + $info->username = $account; $info->mobile = $account; $info->chinese_name = $name; $info->status = $this->request->input('status', 1); $info->avatar = $this->request->input('avatar',0); - $info->role_id = $this->request->input('role_id', 0); + $info->role_id = $roleId; $info->city_id = $this->request->input('city_id', 0); $info->section_id = $this->request->input('section_id', 0);