$data_v) { if( $data_v['emplCode']=='admin') continue; $user = DB::table('users')->where(['cas_code' => $data_v['emplCode']])->first(); $dept = DB::table('s_department')->where(['department_number' => $data_v['deptCode']])->first(); $group=null; if($data_v['posiCode']=='300A'){ $group=6; }else{ if(in_array($data_v['emplType'], ['N', 'T'])){ //护士 $group=3; } if($data_v['emplType']=='D'){ //医生 $group=7; } } if (!$user) { //插入用户表 $u= DB::table('users')->insert([ 'cas_code' => $data_v['emplCode'], 'cn_name' => $data_v['emplName'], 'username' => $data_v['emplCode'], 'pwd' =>'$2y$10$HlgBHem3knR9JGcPWWxfhuj/oQzGouQaWQ8BIDbSxliJ39G6pOj/K',//默认密码:111111 'department_id' => isset($dept->id)?$dept->id:null, 'status' => 1, 'group' => $group, ]); }else{ $u= DB::table('users')->where('id', $user->id)->update([ 'cn_name' => $data_v['emplName'], 'department_id' => isset($dept->id)?$dept->id:null, 'group' => $user->group_locked==1?$user->group:$group,//如果分组被手动调整过,那就维持手动的分组不变 ]); } if($u){ $up_count++; } } return \Yz::JsonReturn(true,"调用His接口完成,更新".$up_count."条数据",['up_count'=>$up_count]); } return \Yz::JsonError("调用His接口失败"); } //用于his 医生直接跳转过来,查看开单记录 public function AutoLogin(){ $usercode = request('usercode'); $deptcode = request('deptcode'); $missingParams = []; if (empty($usercode)) $missingParams[] = '医生编码'; if (empty($deptcode)) $missingParams[] = '科室编码'; if (!empty($missingParams)) { return \Yz::JsonReturn(false, '缺少参数:' . implode('、', $missingParams), [ 'missing_params' => $missingParams ]); } $dept=DB::table('s_department')->where(['department_number' => $deptcode])->first(); if(!$dept) return \Yz::JsonError("科室不存在"); $user=DB::table('users')->where('username', $usercode)->first(); if(!$user) return \Yz::JsonError("无效用户"); $u_user=DB::table('users')->where(['username' => $usercode])->update([ 'department_id'=>$dept->id, 'updated_at'=>date('Y-m-d H:i:s') ]); $jwt= new JWT(); $accessTimeout = $jwt -> GetGetSecretTimeOut(); $refreshTimeout = $jwt -> GetRefreshTokenTimeOut(); $access_token = $jwt->BuildJWT('yz','access',$user->id,$user->group,$accessTimeout); $refresh_token = $jwt->BuildJWT('yz','refresh',$user->id,'',$refreshTimeout); DB::table('users')->where(['id'=>$user->id,'status'=>1])->update(['token'=>md5($refresh_token)]); // 记录 HIS 登录日志 try { $allParams = request()->all(); \App\Services\LogService::DoctorLoginLog( request()->ip(), http_build_query($allParams), json_encode($allParams, JSON_UNESCAPED_UNICODE), 'HIS登录' ); } catch (\Exception $e) { // 日志写入失败不影响主流程 } return \Yz::JsonReturn(true,'登录成功',['access_token'=>$access_token,'refresh_token'=>$refresh_token]); } }