소스 검색

[智价云] 全部员工接口补充

tangyuanwang 4 일 전
부모
커밋
13b893d5ea
3개의 변경된 파일76개의 추가작업 그리고 0개의 파일을 삭제
  1. 73 0
      app/Http/Controllers/Manager/Personnel/Employee.php
  2. 1 0
      app/Http/Requests/Manager/Personnel/Employee.php
  3. 2 0
      routes/manager.php

+ 73 - 0
app/Http/Controllers/Manager/Personnel/Employee.php

@@ -109,6 +109,79 @@ class Employee extends Controller
         return        json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
     }
 
+    /**
+     * 全部
+     * @author    唐远望
+     * @version   1.0
+     * @date      2025-12-12
+     * 
+     */
+    public function all(Request $request, EmployeeModel $EmployeeModel,DepartmentModel $DepartmentModel,RolesModel $RolesModel,CitysModel $CitysModel,EmployeeAreaModel $EmployeeAreaModel)
+    {
+        $request->scene('all')->validate();
+        // 查询条件
+        $map  = [];
+        $status    = request('status', '0');
+        $start_time = request('start_time', '');
+        $end_time = request('end_time', '');
+        $name = request('name', '');
+        $mobile = request('mobile', '');
+        $department_id = request('department_id', '');
+        $role_id = request('role_id', '');
+        $open_notice = request('open_notice', '');
+        $employee_code = request('employee_code', '');
+        $role_name = request('role_name', '');
+        $role_ids =[];
+        $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)];
+        // 其他条件
+        if (is_numeric($status)) $map[] = ['status', '=', $status];
+        if ($name) $map[] = ['name', 'like', "%$name%"];
+        if ($mobile) $map[] = ['mobile', 'like', "%$mobile%"];
+        if ($department_id) $map[] = ['department_id', '=', $department_id];
+        if ($role_id) $map[] = ['role_id', '=', $role_id];
+        if (is_numeric($open_notice)) $map[] = ['open_notice', '=', $open_notice];
+        if ($employee_code) $map[] = ['employee_code', 'like', "%$employee_code%"];
+        if ($city_id) $map[] = ['city_ids', 'like', "%,$city_id,%"];
+        if ($department_name){
+            $department_ids= $DepartmentModel->where('name','like',"%$department_name%")->pluck('id')->toarray();
+        }
+        if ($role_name){
+            $role_ids= $RolesModel->where('name','like',"%$role_name%")->pluck('id')->toarray();
+        }
+        $field = ['id','name'];
+        // 查询数据
+        $result_model = $EmployeeModel->query();
+        if ($department_name) {
+            $result_model = $result_model->whereIn('department_id', $department_ids);
+        }
+        if ($role_name) {
+            $result_model = $result_model->whereIn('role_id', $role_ids);
+        }
+        //多选查询地区
+        if ($city_ids && is_string($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)
+            ->orderByDesc('id')
+            ->get()->toarray();
+        // 分配数据
+        if (!$result)  return json_send(['code' => 'error', 'msg' => '暂无数据']);
+        // 加载模板
+        return        json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
+    }
+
     /**
      * 详情
      * @author    唐远望

+ 1 - 0
app/Http/Requests/Manager/Personnel/Employee.php

@@ -47,6 +47,7 @@ class Employee extends BaseRequest
         'edit'                  => ['id','name', 'mobile','department_id','role_id','open_notice'],
         'set_status'              => ['id', 'status'],
         'delete'                  => ['id'],
+        'all'                    => [''],
     ];
 
     /**

+ 2 - 0
routes/manager.php

@@ -114,6 +114,8 @@ Route::any('personnel_employee/edit', [App\Http\Controllers\Manager\Personnel\Em
 Route::any('personnel_employee/set_status', [App\Http\Controllers\Manager\Personnel\Employee::class, 'set_status']);
 // 员工管理-删除
 Route::any('personnel_employee/delete', [App\Http\Controllers\Manager\Personnel\Employee::class, 'delete']);
+// 员工管理-全部
+Route::any('personnel_employee/all', [App\Http\Controllers\Manager\Personnel\Employee::class, 'all']);
 
 //部门管理-列表
 Route::any('personnel_department/list', [App\Http\Controllers\Manager\Personnel\Department::class, 'list']);