|
|
@@ -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 唐远望
|