$data['name'], 'mobile' => $data['mobile'], 'email' => $data['email'], 'password' => md5($data['password']), 'role_id' => $data['role_id'], 'province_ids' => isset($data['province_ids']) ? $data['province_ids'] : '', 'city_ids' => isset($data['city_ids']) ? ',' . $data['city_ids'] . ',' : '', 'department_id' => $data['department_id'], 'open_notice' => $data['open_notice'], 'duty_type' => isset($data['duty_type']) ? $data['duty_type'] : '', 'insert_time' => time(), ]; $Employee_id = $this->insertGetId($insert_data); if ($Employee_id) { $this->where('id', $Employee_id)->update(['employee_code' => $this->employee_idToCode($Employee_id)]); } return $Employee_id; } /** * id转编码 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * @param int $id 编码 * */ public function employee_idToCode($id) { return 'RH' . str_pad($id, 9, '0', STR_PAD_LEFT); } /** * 编码转id * @author 唐远望 * @version 1.0 * @date 2025-12-04 * @param string $code 编码 * */ public function employee_codeToId($code) { return intval(str_ireplace('RH', '', $code)); } /** * 写入数据 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * @param $data * @return bool */ public function addEmployee($data) { DB::beginTransaction(); try { $EmployeeAreaModel = new EmployeeAreaModel(); $EmployeeDepartmentModel = new EmployeeDepartmentModel(); $insert_data = [ 'name' => $data['name'], 'mobile' => $data['mobile'], 'email' => $data['email'], 'password' => md5($data['password']), 'role_id' => $data['role_id'], 'province_ids' => isset($data['province_ids']) ? $data['province_ids'] : '', 'city_ids' => isset($data['city_ids']) ? ',' . $data['city_ids'] . ',' : '', 'department_ids' => isset($data['department_ids']) ? ',' . $data['department_ids'] . ',' : '', 'open_notice' => $data['open_notice'], 'duty_type' => isset($data['duty_type']) ? $data['duty_type'] : '', 'company_id' => $data['company_id'], 'insert_time' => time(), ]; $Employee_id = $this->insertGetId($insert_data); if ($Employee_id) { $this->where('id', $Employee_id)->update(['employee_code' => $this->employee_idToCode($Employee_id)]); } if ($data['city_ids']) { $insert_city_data = []; $city_ids = explode(',', $data['city_ids']); foreach ($city_ids as $city_id) { $insert_city_data[] = [ 'employee_id' => $Employee_id, 'city_id' => $city_id, ]; } $EmployeeAreaModel->insert($insert_city_data); } if ($data['department_ids']) { $insert_department_data = []; $department_ids = explode(',', $data['department_ids']); foreach ($department_ids as $department_id) { $insert_department_data[] = [ 'employee_id' => $Employee_id, 'department_id' => $department_id, 'company_id' => $data['company_id'], ]; } $EmployeeDepartmentModel->insert($insert_department_data); } DB::commit(); return true; // 成功处理... } catch (\Exception $e) { DB::rollBack(); // 错误处理... return false; } } /** * 编辑内容 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * @param $data * @return bool */ public function editEmployee_content($where, $data) { $Employee = $this->where($where)->first(); if (!$Employee) { return false; } $Employee->name = $data['name']; $Employee->mobile = $data['mobile']; $Employee->email = $data['email']; if (isset($data['password']) && $data['password'] != '') $Employee->password = md5($data['password']); $Employee->role_id = $data['role_id']; $Employee->city_ids = isset($data['city_ids']) ? ',' . $data['city_ids'] . ',' : ''; $Employee->department_ids = isset($data['department_ids']) ? ',' . $data['department_ids'] . ',' : ''; $Employee->open_notice = $data['open_notice']; $Employee->duty_type = isset($data['duty_type']) ? $data['duty_type'] : ''; $Employee->company_id = $data['company_id']; $Employee->update_time = time(); $Employee->save(); return true; } /** * 更新数据 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * @param $data * @return bool */ public function updateEmployee($Employee, $data) { DB::beginTransaction(); try { $EmployeeAreaModel = new EmployeeAreaModel(); $EmployeeDepartmentModel = new EmployeeDepartmentModel(); $Employee->name = $data['name']; $Employee->mobile = $data['mobile']; $Employee->email = $data['email']; if (isset($data['password']) && $data['password'] != '') $Employee->password = md5($data['password']); $Employee->role_id = $data['role_id']; $Employee->city_ids = isset($data['city_ids']) ? ',' . $data['city_ids'] . ',' : ''; $Employee->department_ids = isset($data['department_ids']) ? ',' . $data['department_ids'] . ',' : ''; $Employee->open_notice = $data['open_notice']; $Employee->duty_type = isset($data['duty_type']) ? $data['duty_type'] : ''; $Employee->company_id = $data['company_id']; $Employee->update_time = time(); $Employee->save(); $EmployeeAreaModel->where('employee_id', $Employee->id)->delete(); if ($data['city_ids']) { $insert_city_data = []; $city_ids = explode(',', $data['city_ids']); foreach ($city_ids as $city_id) { $insert_city_data[] = [ 'employee_id' => $Employee->id, 'city_id' => $city_id, ]; } $EmployeeAreaModel->insert($insert_city_data); } $EmployeeDepartmentModel->where('employee_id', $Employee->id)->delete(); if ($data['department_ids']) { $insert_department_data = []; $department_ids = explode(',', $data['department_ids']); foreach ($department_ids as $department_id) { $insert_department_data[] = [ 'employee_id' => $Employee->id, 'department_id' => $department_id, 'company_id' => $data['company_id'], ]; } $EmployeeDepartmentModel->insert($insert_department_data); } DB::commit(); return true; // 成功处理... } catch (\Exception $e) { DB::rollBack(); // 错误处理... return false; } } /** * 修改状态 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * @param $id * @param $status * @return bool */ public function changeStatus($where, $status) { $Employee = $this->where($where)->first(); if (!$Employee) { return false; } $Employee->status = $status; $Employee->update_time = time(); $Employee->save(); return true; } /** * 删除数据 * @author 唐远望 * @version 1.0 * @date 2025-12-04 * @param $id * @return bool */ public function deleteEmployee($where) { $Employee = $this->where($where)->first(); if (!$Employee) { return false; } $Employee->delete(); return true; } /** * 添加数据 * */ public function edit($id,$data) { // 更新时间 $data['update_time'] = time(); // 写入数据表 $result = $this->query()->where(['id'=>$id])->update($data); // 如果操作失败 if( !$result ) return 0; // 更新缓存 $this->getList(true); // 返回结果 return $id; } /** * 获取列表 * @param Bool $force 是否强制更新 * */ public function getList($force = false) { // 结果数据 $list = $force ? [] : cache('manager:admin:employee:list'); // 不存在数据 if ( !$list ) { // 从数据库获取数据 $data = $this->query()->get(['id','name','mobile','status','password','status','insert_time','update_time'])->toArray(); // 循环处理数据 $list = []; // 进行更新 foreach ($data as $value) { // 重组数据 $list[$value['id']] = $value; } // 存起来 cache(['manager:admin:employee:list'=>$list]); } // 返回结果 return $list; } /** * 获取配置平台对应的应用数据 * * @param int 用户ID * @param string 指定字段 * */ public function getOne($id,$field='') { // 获取列表数据 $list = $this->getList(); // 获取数据 $one = isset($list[$id]) ? $list[$id] : []; // 返回值 return empty($field) ? $one : ( isset($one[$field]) ? $one[$field] : null); } /** * 登录 * * @param int 用户ID * */ public function Login($uid,$company_id=0, $module = 'manager') { // 组合数据 $jwtData = ['company_id'=>$company_id, 'uid' => $uid, 'is_admin' => '0', 'type' => $module, 'expire' => time() + 3600 * 8]; // 登录成功 $token = AccessToken::encode($jwtData); // 如果异常的话 if (isset($token['error'])) return $token; // 登录成功 cache([$module . ':employee:access_token:' . $uid => md5($token)], 3600 * 8); // 返回结果 return ['access_token_' . $module => $token, 'expire' => 3600 * 8]; } /** * 退出登录 * * @param int 用户ID * */ public function LoginOut($uid, $module = 'manager') { // 删除缓存 cache([$module . ':employee:access_token:' . $uid => null]); // 返回结果 return true; } }