input()]); $api_desc = '新增医生账户信息'; Db::startTrans(); try { $doctor = input('doctor'); if(empty($doctor)){ return json(Tools::set_fail('参数错误.0')); } $username = input('username'); if(empty($username)){ return json(Tools::set_fail('参数错误.1')); } $hdrdepartment_id = input('hdrdepartment_id'); if(empty($hdrdepartment_id)){ return json(Tools::set_fail('参数错误.2')); } $name = input('name'); if(empty($name)){ return json(Tools::set_fail('参数错误.3')); } $password = input('password'); if(empty($password)){ return json(Tools::set_fail('参数错误.4')); } $data = [ 'doctor'=>$doctor?:'', 'username'=>$username?:'', 'hdrdepartment_id'=>$hdrdepartment_id?:'', 'name'=>$name?:'', 'password'=>$password?:'', ]; $dataid = Db::table(TabConf::$fa_hdrdoctorusers)->insertGetId($data); //$this->operateLog('新增医生账户信息',api_user_info('id')); Db::commit(); return json(Tools::set_ok('ok',$dataid)); }catch (\Exception $e){ Db::rollback(); Tools::log_to_write_txt([ 'error'=>'新增医生账户信息.异常.'.$e->getMessage(), 'input'=>input(), 'error_info'=>$e->getTraceAsString() ]); return json(Tools::set_fail()); } } /** * 修改医生账户信息 * 参数: * id ID ID 必须 * doctor 医生昵称(杨教授) * username 用户名(手机号) * hdrdepartment_id 科室 * name 姓名(杨玉环) * password 密码a123456 * sex 性别 * age 年龄 * address 住址 * api/Hdrdoctorusers/updateHdrdoctorusers */ function updateHdrdoctorusers(){ Tools::log_to_write_txt(['修改医生账户信息'=>input()]); $api_desc = '修改医生账户信息'; Db::startTrans(); try { $doctor = input('doctor'); $username = input('username'); $hdrdepartment_id = input('hdrdepartment_id'); $name = input('name'); $password = input('password'); $sex = input('sex'); $age = input('age'); $address = input('address'); if(empty(input('id'))){ return json(Tools::set_fail('参数错误。0')); } $data = [ 'doctor'=>$doctor?:'', 'username'=>$username?:'', 'hdrdepartment_id'=>$hdrdepartment_id?:'', 'name'=>$name?:'', 'password'=>$password?:'', 'sex'=>$sex?:'', 'age'=>$age?:'', 'address'=>$address?:'', ]; $dataid = Db::table(TabConf::$fa_hdrdoctorusers) ->data($data) ->where('id',input('id')) ->update(); //$this->operateLog('修改医生账户信息',api_user_info('id')); Db::commit(); return json(Tools::set_ok('ok',$dataid)); }catch (\Exception $e){ Db::rollback(); Tools::log_to_write_txt([ 'error'=>'修改医生账户信息.异常.'.$e->getMessage(), 'input'=>input(), 'error_info'=>$e->getTraceAsString() ]); return json(Tools::set_fail()); } } /** * desc:获取医生账户信息 * * api/Hdrdoctorusers/getHdrdoctorusersList * * 参数: * 带分页 * current_page 当前页码 * list_rows 每页显示条数 默认15 * doctor 医生昵称(杨教授) * name 姓名(杨玉环) * doctor 医生昵称(杨教授) * username 用户名(手机号) * hdrdepartment_id 科室 * name 姓名(杨玉环) * * 所有字段说明(可能有部分额外字段未在此体现): * id ID * doctor 医生昵称(杨教授) * username 用户名(手机号) * hdrdepartment_id 科室 * name 姓名(杨玉环) * password 密码a123456 * sex 性别 * age 年龄 * type 用户类型:user=用户,doc=医生 * address 住址 * clientid 客户端ID * expires 有效期 * ticket 票据 * create_time 创建时间 * author:wh */ function getHdrdoctorusersList(){ Tools::log_to_write_txt(['获取医生账户信息 入参:'=>input()]); $api_desc = '获取医生账户信息'; try { $doctor = input('doctor'); $username = input('username'); $hdrdepartment_id = input('hdrdepartment_id'); $name = input('name'); $model_obj = Db::table(TabConf::$fa_hdrdoctorusers); if(input('doctor')){ $model_obj->whereLike('doctor','%'.input('doctor').'%'); } if(input('name')){ $model_obj->whereLike('name','%'.input('name').'%'); } if(input('doctor')){ $model_obj->where('doctor',input('doctor')); } if(input('username')){ $model_obj->where('username',input('username')); } if(input('hdrdepartment_id')){ $model_obj->where('hdrdepartment_id',input('hdrdepartment_id')); } $data = $model_obj->paginate(['page'=>input('current_page',1),'list_rows'=>input('list_rows',15)]) ->each(function($item, $key){ $ret_field_name_arr = Tools::delete_str_empty_ele(',,,hdrdepartment_id--name,,,,,,,,,,'); //处理为外键字段+外键对应数据的字段名 eg:users_id=>nickname $ret_field_name2 = []; foreach ($ret_field_name_arr as $ret_typ_field) { $exp_arr = explode('--',$ret_typ_field); //$exp_arr[0] 主表字段,$exp_arr[1] 副表字段 $ret_field_name2[$exp_arr[0]] = [$exp_arr[0],$exp_arr[1]]; } //返回数据类型处理 $return_type_exp_arr = Tools::delete_str_empty_ele(',,,hdrdepartment_id==field_val,,,,,,,,,,'); //处理为类型+字段 $return_type_exp_arr2 = []; foreach ($return_type_exp_arr as $ret_type_field) { $exp_arr = explode('==',$ret_type_field); $return_type_exp_arr2[$exp_arr[0]] = $exp_arr[1]; } //返回数组 eg: [id-fa_goods_deal==goods_id,id-fa_goods_deal==goods_id] $rel_table_arr = Tools::delete_str_empty_ele(',,,hdrdepartment_id-fa_hdrdepartment==id,,,,,,,,,,'); //关联的字段和表 $rel_field_table_arr2 = []; //关系 foreach ($rel_table_arr as $rel_str) { $exp_arr = explode('-',$rel_str); $rel_field_table_arr2[$exp_arr[0]] = [explode('==',$exp_arr[1])[0],explode('==',$exp_arr[1])[1]]; } foreach($item as $it_key=>$it_val){ if(empty($rel_field_table_arr2[$it_key])){ continue; } foreach($return_type_exp_arr as $key=>$val){ $val_arr = explode('==',$val); if($it_key == $val_arr[0]){ switch($val_arr[1]){ case 'two_arr': $item[$it_key.'_data'] = Db::table($rel_field_table_arr2[$it_key][0])->where("{$rel_field_table_arr2[$it_key][1]}",$it_val)->select(); break; case 'one_arr': $item[$it_key.'_data'] = Db::table($rel_field_table_arr2[$it_key][0])->where("{$rel_field_table_arr2[$it_key][1]}",$it_val)->find(); break; case 'field_val': $item[$it_key.'_data'] = Db::table($rel_field_table_arr2[$it_key][0])->where("{$rel_field_table_arr2[$it_key][1]}",$it_val)->value("{$ret_field_name2[$it_key][1]}"); break; } } } } return $item; }); // ['total'] => int(30) // ['per_page'] => int(15) // ['current_page'] => int(1) // ['last_page''] => int(2) $data = $data->toArray();//包含 data列表 return json(Tools::set_ok('ok',$data)); }catch(\Exception $e){ Tools::log_to_write_txt([ 'error'=>'获取医生账户信息.异常.'.$e->getMessage(), '参数'=>input(), 'error_info'=>$e->getTraceAsString() ]); return json(Tools::set_res(500,'操作异常',[])); } } }