Переглянути джерело

[智价云] 多选查询地区补充

tangyuanwang 4 днів тому
батько
коміт
ee078ee38e
1 змінених файлів з 11 додано та 1 видалено
  1. 11 1
      app/Http/Controllers/Manager/Personnel/Employee.php

+ 11 - 1
app/Http/Controllers/Manager/Personnel/Employee.php

@@ -8,6 +8,7 @@ use App\Models\Manager\Personnel\Employee as EmployeeModel;
 use App\Models\Manager\Personnel\Department as DepartmentModel;
 use App\Models\Manager\Personnel\Roles as RolesModel;
 use App\Models\Manager\Citys as CitysModel;
+use App\Models\Manager\Personnel\EmployeeArea as EmployeeAreaModel;
 
 /**
  * 人员信息管理-员工管理
@@ -24,7 +25,7 @@ class Employee extends Controller
      * @date      2025-12-04
      * 
      */
-    public function list(Request $request, EmployeeModel $EmployeeModel,DepartmentModel $DepartmentModel,RolesModel $RolesModel,CitysModel $CitysModel)
+    public function list(Request $request, EmployeeModel $EmployeeModel,DepartmentModel $DepartmentModel,RolesModel $RolesModel,CitysModel $CitysModel,EmployeeAreaModel $EmployeeAreaModel)
     {
         $request->scene('list')->validate();
         // 查询条件
@@ -44,6 +45,7 @@ class Employee extends Controller
         $department_name = request('department_name', '');
         $department_ids =[];
         $city_id = request('city_id', '');
+        $city_ids = request('city_ids', '');
         // 时间条件
         if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
         if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time)];
@@ -71,6 +73,14 @@ class Employee extends Controller
         if ($role_name) {
             $result_model = $result_model->whereIn('role_id', $role_ids);
         }
+        //多选查询地区
+        if ($city_ids) {
+            $city_ids = explode(',', $city_ids);
+            $subQuery = $EmployeeAreaModel->whereIn('city_id', $city_ids)->distinct('employee_id')->select('employee_id');
+            $result_model = $result_model->whereIn('id', function ($query1) use ($subQuery) {
+                $query1->select('employee_id')->fromSub($subQuery, 'sub1');
+            });
+        }
         $result =$result_model
             ->where($map)
             ->select($field)