| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
- namespace App\Http\Controllers\Api\Personnel;
- use App\Http\Controllers\Api\Api;
- use App\Http\Requests\Api\Personnel\Employee as Request;
- use App\Models\Api\Personnel\Employee as EmployeeModel;
- use App\Models\Api\Personnel\Department as DepartmentModel;
- use App\Models\Api\Personnel\Roles as RolesModel;
- use App\Models\Api\Citys as CitysModel;
- /**
- * 人员信息管理-员工管理
- * @author 唐远望
- * @version 1.0
- * @date 2025-12-10
- */
- class Employee extends Api
- {
- /**
- * 列表
- * @author 唐远望
- * @version 1.0
- * @date 2025-12-10
- *
- */
- public function list(Request $request, EmployeeModel $EmployeeModel)
- {
- $user_info = $this->checkLogin();
- if (!$user_info) return json_send(['code' => 'error', 'msg' => '请先登录']);
- $request->scene('list')->validate();
- $company_id = $user_info['company_id'];
- // 查询条件
- $map = [];
- $map[]=['company_id','=', $company_id];
- $limit = request('limit', config('page_num', 10));
- $name = request('name', '');
- // 其他条件
- if ($name) $map[] = ['name', 'like', "%$name%"];
- $field = ['id', 'employee_code', 'name'];
- // 查询数据
- $result_model = $EmployeeModel->query();
- $result = $result_model
- ->where($map)
- ->select($field)
- ->orderByDesc('id')
- ->paginate($limit)->toarray();
- // 分配数据
- if (!$result) return json_send(['code' => 'error', 'msg' => '暂无数据']);
- // 加载模板
- return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
- }
- /**
- * 个人信息详情
- * @author 唐远望
- * @version 1.0
- * @date 2026-03-03
- */
- public function personal_info(Request $request, EmployeeModel $EmployeeModel, DepartmentModel $DepartmentModel, RolesModel $RolesModel, CitysModel $CitysModel)
- {
- $request->scene('personal_info')->validate();
- $user_info = $this->checkLogin();
- if (!$user_info) return json_send(['code' => 'error', 'msg' => '请先登录']);
- $company_id = $user_info['company_id'];
- // 接收参数
- $map = ['id' => $user_info['uid']];
- // 权限判断
- $map['company_id'] = $company_id;
- $field = ['id', 'employee_code', 'name', 'mobile', 'email', 'department_ids', 'duty_type', '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_ids = explode(',', $data['department_ids']);
- $department_info = $DepartmentModel->whereIn('id', $department_ids)->select(['id', 'name'])->get()->toarray();
- // 查询角色信息
- $role_where = ['id' => $data['role_id']];
- $role_where['company_id'] = $company_id;
- $role_info = $RolesModel->where($role_where)->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_ids'] = $data['department_ids'] != '' ? substr($data['department_ids'], 1, strlen($data['department_ids']) - 2) : '';
- $data['department_name'] = isset($department_info) ? array_column($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]);
- }
- }
|