scene('list')->validate(); // 查询条件 $map = []; $limit = request('limit', config('page_num', 10)); $status = request('status', ''); $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', ''); // 时间条件 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%"]; $field = ['id','employee_code', 'name','mobile', 'department_id', 'role_id', 'city_ids', 'open_notice','insert_time','update_time','status']; // 查询数据 $result = $EmployeeModel->query() ->where($map) ->select($field) ->orderByDesc('id') ->paginate($limit)->toarray(); // 分配数据 if (!$result) return json_send(['code' => 'error', 'msg' => '暂无数据']); if(isset($result['data']) && count($result['data']) > 0){ foreach ($result['data'] as $key => $value) { //查询部门信息 $department_info = $DepartmentModel->where(['id' => $value['department_id']])->first(); //查询角色信息 $role_info = $RolesModel->where(['id' => $value['role_id']])->first(); //查询城市信息 $city_ids = explode(',', $value['city_ids']); $city_info = []; if(count($city_ids) > 0){ $city_info = $CitysModel->whereIn('id', $city_ids)->pluck('name'); } $result['data'][$key]['department_name'] = isset($department_info['name']) ? $department_info['name'] : ''; $result['data'][$key]['role_name'] = isset($role_info['name']) ? $role_info['name'] : ''; $result['data'][$key]['city_info'] = $city_info; } } // 加载模板 return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]); } /** * 详情 * @author 唐远望 * @version 1.0 * @date 2025-12-04 */ public function detail(Request $request, EmployeeModel $EmployeeModel,DepartmentModel $DepartmentModel,RolesModel $RolesModel,CitysModel $CitysModel) { $request->scene('detail')->validate(); // 接收参数 $id = request('id', 0); $map = ['id' => $id]; $field = ['id','employee_code', 'name','mobile', 'department_id', 'role_id', 'city_ids', 'open_notice','insert_time','update_time','status']; $data = $EmployeeModel->where($map)->select($field)->first(); if (!$data) return json_send(['code' => 'error', 'msg' => '记录不存在']); // 查询部门信息 $department_info = $DepartmentModel->where(['id' => $data['department_id']])->first(); // 查询角色信息 $role_info = $RolesModel->where(['id' => $data['role_id']])->first(); // 查询城市信息 $city_ids = explode(',', $data['city_ids']); $city_info = []; if(count($city_ids) > 0){ $city_info = $CitysModel->whereIn('id', $city_ids)->pluck('name'); } $data['department_name'] = isset($department_info['name']) ? $department_info['name'] : ''; $data['role_name'] = isset($role_info['name']) ? $role_info['name'] : ''; $data['city_info'] = $city_info; // 加载模板 return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $data]); } /** * 添加 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * */ public function add(Request $request, EmployeeModel $EmployeeModel) { $request->scene('add')->validate(); // 接收数据 $all_data = request()->all(); //查询是否存在 $map = ['name' => $all_data['name']]; $data = $EmployeeModel->where($map)->first(); if ($data) return json_send(['code' => 'error', 'msg' => '员工姓名记录已存在']); $map = ['mobile' => $all_data['mobile']]; $data = $EmployeeModel->where($map)->first(); if ($data) return json_send(['code' => 'error', 'msg' => '员工手机号记录已存在']); // 写入数据表 $result = $EmployeeModel->addEmployee($all_data); // 如果操作失败 if (!$result) return json_send(['code' => 'error', 'msg' => '新增失败']); // 告知结果 return json_send(['code' => 'success', 'msg' => '新增成功']); } /** * 修改 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * */ public function edit(Request $request, EmployeeModel $EmployeeModel) { $request->scene('edit')->validate(); // 接收参数 $id = request('id', 0); // 接收数据 $all_data = request()->all(); //查询是否存在 $map = ['name' => $all_data['name']]; $data = $EmployeeModel->where($map)->where('id', '!=', $id)->first(); if ($data) return json_send(['code' => 'error', 'msg' => '员工姓名记录已存在']); $map = ['mobile' => $all_data['mobile']]; $data = $EmployeeModel->where($map)->where('id', '!=', $id)->first(); if ($data) return json_send(['code' => 'error', 'msg' => '员工手机号记录已存在']); // 更新数据表 $where = ['id' => $id]; $result = $EmployeeModel->updateEmployee($where, $all_data); // 如果操作失败 if (!$result) return json_send(['code' => 'error', 'msg' => '修改失败']); // 告知结果 return json_send(['code' => 'success', 'msg' => '修改成功']); } /** * 修改状态 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * */ public function set_status(Request $request, EmployeeModel $EmployeeModel) { // 验证参数 $request->scene('set_status')->validate(); // 接收数据 $id = request('id', 0); $status = request('status', 0); // 查询用户 $where = ['id' => $id]; // 执行修改 $result = $EmployeeModel->changeStatus($where, $status); // 提示新增失败 if (!$result) return json_send(['code' => 'error', 'msg' => '设置失败']); // 告知结果 return json_send(['code' => 'success', 'msg' => '设置成功']); } /** * 删除 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * */ public function delete(Request $request, EmployeeModel $EmployeeModel) { // 验证参数 $request->scene('delete')->validate(); // 接收数据 $id = request('id', 0); // 查询用户 $where = ['id' => $id]; // 执行删除 $result = $EmployeeModel->deleteEmployee($where); // 提示删除失败 if (!$result) return json_send(['code' => 'error', 'msg' => '删除失败']); // 告知结果 return json_send(['code' => 'success', 'msg' => '删除成功']); } }