From 1077cdfcd895cbdca15007d76915fbbfac25ca00 Mon Sep 17 00:00:00 2001 From: ctexthuang Date: Wed, 13 Nov 2024 14:25:07 +0800 Subject: [PATCH] feat : driver --- app/Constants/Common/RoleCode.php | 10 ++- app/Controller/Admin/DriverController.php | 33 ++++++++++ app/Controller/Admin/SiteController.php | 11 ---- app/Request/Admin/DriverRequest.php | 45 +++++++++++++ app/Request/Admin/SiteRequest.php | 5 +- app/Service/Admin/System/DriverService.php | 77 ++++++++++++++++++++++ app/Service/Admin/System/SiteService.php | 43 ------------ 7 files changed, 166 insertions(+), 58 deletions(-) create mode 100644 app/Controller/Admin/DriverController.php create mode 100644 app/Request/Admin/DriverRequest.php create mode 100644 app/Service/Admin/System/DriverService.php diff --git a/app/Constants/Common/RoleCode.php b/app/Constants/Common/RoleCode.php index 7c17363..d62956c 100644 --- a/app/Constants/Common/RoleCode.php +++ b/app/Constants/Common/RoleCode.php @@ -4,8 +4,14 @@ namespace App\Constants\Common; class RoleCode { + /** + * @var int 角色 1=超级管理员 2=管理员 3=财务 5=客服 6=市场部 7=厨师 8=司机 + */ const int SUPER_ADMIN = 1; const int ADMIN = 2; - const int CHEF = 3; - const int DRIVER = 4; + const int FINANCE = 3; + const int CUSTOMER_SERVICE = 5; + const int MARKETPLACE = 6; + const int CHEF = 7; + const int DRIVER = 8; } \ No newline at end of file diff --git a/app/Controller/Admin/DriverController.php b/app/Controller/Admin/DriverController.php new file mode 100644 index 0000000..04178de --- /dev/null +++ b/app/Controller/Admin/DriverController.php @@ -0,0 +1,33 @@ +driverList(); + } +} diff --git a/app/Controller/Admin/SiteController.php b/app/Controller/Admin/SiteController.php index d323145..6ded6eb 100644 --- a/app/Controller/Admin/SiteController.php +++ b/app/Controller/Admin/SiteController.php @@ -53,15 +53,4 @@ class SiteController return (new SiteService)->info(); } - /** - * 司机列表 - * @param SiteRequest $request - * @return array - */ - #[RequestMapping(path: "driver_list", methods: "GET")] - #[Scene(scene: "driver_list")] - public function driverList(SiteRequest $request) - { - return (new SiteService)->driverList(); - } } diff --git a/app/Request/Admin/DriverRequest.php b/app/Request/Admin/DriverRequest.php new file mode 100644 index 0000000..2ffdc81 --- /dev/null +++ b/app/Request/Admin/DriverRequest.php @@ -0,0 +1,45 @@ +'sometimes|string', + 'query_driver_city_id' => 'sometimes|integer|exists:system_city,id', + 'query_driver_id' =>'sometimes|integer|exists:admin_user,id', + 'limit' => 'required|integer', + ]; + } + + public function messages(): array + { + return []; + } + + protected array $scenes = [ + 'driver_list' => [ + 'limit', + 'query_driver_name', + 'query_driver_city_id', + 'query_driver_id' + ] + ]; +} diff --git a/app/Request/Admin/SiteRequest.php b/app/Request/Admin/SiteRequest.php index f6fafb5..25be11b 100644 --- a/app/Request/Admin/SiteRequest.php +++ b/app/Request/Admin/SiteRequest.php @@ -43,8 +43,9 @@ class SiteRequest extends FormRequest 'query_kitchen_id' =>'sometimes|integer|exists:kitchen,id', 'query_driver_id' =>'sometimes|integer|exists:admin_user,id', 'query_id' => 'sometimes|integer|exists:site,id', - 'query_driver_name' =>'sometimes|string', - 'query_driver_city_id' => 'sometimes|integer|exists:system_city,id', +// 'query_driver_name' =>'sometimes|string', +// 'query_driver_city_id' => 'sometimes|integer|exists:system_city,id', + 'limit' => 'required|integer', ]; } diff --git a/app/Service/Admin/System/DriverService.php b/app/Service/Admin/System/DriverService.php new file mode 100644 index 0000000..e54544a --- /dev/null +++ b/app/Service/Admin/System/DriverService.php @@ -0,0 +1,77 @@ +request->input('limit', 10); + $cityId = (int)$this->request->input('query_driver_city_id',0); + $name = $this->request->input('query_driver_name'); + +// $where[] = [ +// ['is_del', '=', UserCode::IS_NO_DEL], +// ['status','=',UserCode::ENABLE], +// ['role_id','=',RoleCode::DRIVER] +// ]; + + $list = $this + ->adminUserModel + ->where('is_del',UserCode::IS_NO_DEL) + ->where('status',UserCode::ENABLE) + ->where('role_id',RoleCode::DRIVER) + ->when($name, function ($query) use ($name) { + $query->where('name', 'like', "$name%"); + }) + ->when($cityId > 0, function ($query) use ($cityId) { + $query->whereIn('section_id', $this->adminSectionModel->getIdsByCityId($cityId)); + }) + ->when($id = $this->request->input('query_driver_id'), function ($query) use ($id) { + $query->where('id', $id); + }) + ->paginate($limit,['chinese_name','id','mobile','status'])->toArray(); + + return $this->return->success('success',$list); + } +} \ No newline at end of file diff --git a/app/Service/Admin/System/SiteService.php b/app/Service/Admin/System/SiteService.php index 064a030..4964bde 100644 --- a/app/Service/Admin/System/SiteService.php +++ b/app/Service/Admin/System/SiteService.php @@ -54,14 +54,6 @@ class SiteService extends BaseService #[Inject] protected readonly Kitchen $kitchenModel; - /** - * 注入部门类 - * @var AdminSection - */ - #[Inject] - protected readonly AdminSection $adminSectionModel; - - /** * @var int */ @@ -341,39 +333,4 @@ class SiteService extends BaseService return $this->return->success('success',$res); } - - /** - * 司机列表 - * @return array - */ - public function driverList(): array - { - $limit = $this->request->input('limit', 10); - $cityId = (int)$this->request->input('query_driver_city_id',0); - $name = $this->request->input('query_driver_name'); - -// $where[] = [ -// ['is_del', '=', UserCode::IS_NO_DEL], -// ['status','=',UserCode::ENABLE], -// ['role_id','=',RoleCode::DRIVER] -// ]; - - $list = $this - ->adminUserModel - ->where('is_del',UserCode::IS_NO_DEL) - ->where('status',UserCode::ENABLE) - ->where('role_id',RoleCode::DRIVER) - ->when($name, function ($query) use ($name) { - $query->where('name', 'like', "$name%"); - }) - ->when($cityId > 0, function ($query) use ($cityId) { - $query->whereIn('section_id', $this->adminSectionModel->getIdsByCityId($cityId)); - }) - ->when($id = $this->request->input('query_driver_id'), function ($query) use ($id) { - $query->where('id', $id); - }) - ->paginate($limit,['chinese_name','id','mobile','status'])->toArray(); - - return $this->return->success('success',$list); - } } \ No newline at end of file