Bläddra i källkod

【智价云】 员工个人信息详情接口补充

tangyuanwang 1 vecka sedan
förälder
incheckning
b2cbfdd425

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

@@ -505,4 +505,56 @@ class Employee extends Controller
         // 告知结果
         return             json_send(['code' => 'success', 'msg' => '删除成功']);
     }
+
+
+    /**
+     * 个人信息详情
+     * @author    唐远望
+     * @version   1.0
+     * @date      2026-03-02
+     */
+    public function personal_info(Request $request, EmployeeModel $EmployeeModel, DepartmentModel $DepartmentModel, RolesModel $RolesModel, CitysModel $CitysModel)
+    {
+        $request->scene('personal_info')->validate();
+        $admin_company_id = request('admin_company_id', '0');
+        $company_id = request('access_token.company_id', '0');
+        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
+        // 接收参数
+        $id = request('access_token.uid', 0);
+        $map = ['id' => $id];
+        // 权限判断
+        if ($is_admin != 1 && $company_id != 0) {
+            $map['company_id'] = $company_id;
+        } else {
+            return json_send(['code' => 'error', 'msg' => '获取失败', 'data' =>'']);
+        }
+        $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']];
+        // 权限判断
+        if ($is_admin != 1 && $company_id != 0) {
+            $role_where['company_id'] = $company_id;
+        } else {
+            return json_send(['code' => 'error', 'msg' => '获取失败', 'data' =>'']);
+        }
+        $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]);
+    }
 }

+ 2 - 1
app/Http/Middleware/Manager/AccessAuth.php

@@ -21,7 +21,8 @@ class AccessAuth
         'manager/login/wechat',
         'manager/login/auth_rules',
         'manager/upload/uploadimg',
-        'manager/upload/get_sign_url'
+        'manager/upload/get_sign_url',
+        'manager/personnel_employee/personal_info'
     ];
     //默认配置
     protected   $_config    = [

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

@@ -49,6 +49,7 @@ class Employee extends BaseRequest
         'set_status'              => ['id', 'status'],
         'delete'                  => ['id'],
         'all'                    => [''],
+        'personal_info'         => [],
     ];
 
     /**

+ 3 - 0
routes/manager.php

@@ -172,6 +172,9 @@ Route::any('personnel_employee/set_status', [App\Http\Controllers\Manager\Person
 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_employee/personal_info', [App\Http\Controllers\Manager\Personnel\Employee::class, 'personal_info']);
+
 
 //部门管理-列表
 Route::any('personnel_department/list', [App\Http\Controllers\Manager\Personnel\Department::class, 'list']);