From 4dba55b19ac5fb9c348144fc376116e91e9fe562 Mon Sep 17 00:00:00 2001 From: wh <382379437@qq.com> Date: Wed, 7 Aug 2024 23:21:43 +0800 Subject: [PATCH] fixed --- .../api/controller/Hdrdoctorusers.php | 91 ++++-- .../api/controller/Hdrquestionnaireanswer.php | 258 ++++++++++++------ digital_doctor/public/api_docs/api_list.html | 58 +++- digital_doctor/public/api_docs/api_list.md | 28 +- 4 files changed, 323 insertions(+), 112 deletions(-) diff --git a/digital_doctor/application/api/controller/Hdrdoctorusers.php b/digital_doctor/application/api/controller/Hdrdoctorusers.php index bdef190..278f155 100644 --- a/digital_doctor/application/api/controller/Hdrdoctorusers.php +++ b/digital_doctor/application/api/controller/Hdrdoctorusers.php @@ -16,11 +16,11 @@ class Hdrdoctorusers extends BaseHttpApi /** * 新增医生账户信息 * - * 参数: - * doctor 医生昵称(杨教授) 医生昵称(杨教授) 必须 - * username 用户名(手机号) 用户名(手机号) 必须 - * hdrdepartment_id 科室 科室 必须 - * name 姓名(杨玉环) 姓名(杨玉环) 必须 + * 参数: + * doctor 医生昵称(杨教授) 医生昵称(杨教授) 必须 + * username 用户名(手机号) 用户名(手机号) 必须 + * hdrdepartment_id 科室 科室 必须 + * name 姓名(杨玉环) 姓名(杨玉环) 必须 * password 密码a123456 密码a123456 必须 * api/Hdrdoctorusers/addHdrdoctorusers */ @@ -81,18 +81,19 @@ class Hdrdoctorusers extends BaseHttpApi } } - + + /** * 修改医生账户信息 - * 参数: - * id ID ID 必须 - * doctor 医生昵称(杨教授) - * username 用户名(手机号) - * hdrdepartment_id 科室 - * name 姓名(杨玉环) - * password 密码a123456 - * sex 性别 - * age 年龄 + * 参数: + * id ID ID 必须 + * doctor 医生昵称(杨教授) + * username 用户名(手机号) + * hdrdepartment_id 科室 + * name 姓名(杨玉环) + * password 密码a123456 + * sex 性别 + * age 年龄 * address 住址 * api/Hdrdoctorusers/updateHdrdoctorusers */ @@ -156,9 +157,7 @@ class Hdrdoctorusers extends BaseHttpApi * current_page 当前页码 * list_rows 每页显示条数 默认15 * doctor 医生昵称(杨教授) - * username 用户名(手机号) * name 姓名(杨玉环) - * id ID * doctor 医生昵称(杨教授) * username 用户名(手机号) * hdrdepartment_id 科室 @@ -187,7 +186,6 @@ class Hdrdoctorusers extends BaseHttpApi $api_desc = '获取医生账户信息'; try { - $id = input('id'); $doctor = input('doctor'); $username = input('username'); $hdrdepartment_id = input('hdrdepartment_id'); @@ -200,17 +198,10 @@ class Hdrdoctorusers extends BaseHttpApi $model_obj->whereLike('doctor','%'.input('doctor').'%'); } - if(input('username')){ - $model_obj->whereLike('username','%'.input('username').'%'); - } - if(input('name')){ $model_obj->whereLike('name','%'.input('name').'%'); } - if(input('id')){ - $model_obj->where('id',input('id')); - } if(input('doctor')){ $model_obj->where('doctor',input('doctor')); } @@ -223,9 +214,57 @@ class Hdrdoctorusers extends BaseHttpApi $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; }); diff --git a/digital_doctor/application/api/controller/Hdrquestionnaireanswer.php b/digital_doctor/application/api/controller/Hdrquestionnaireanswer.php index 14508ec..3a69239 100644 --- a/digital_doctor/application/api/controller/Hdrquestionnaireanswer.php +++ b/digital_doctor/application/api/controller/Hdrquestionnaireanswer.php @@ -1,88 +1,182 @@ -(可能有部分额外字段未在此体现): - * id ID - * hdrquestionnairequestion_id 问卷问题ID - * answer 问卷答案 - * create_time 创建时间 - * update_time 更新时间 - - * author:wh - */ - function getHdrquestionnaireanswerList(){ - Tools::log_to_write_txt(['获取科室问卷答案 入参:'=>input()]); - $api_desc = '获取科室问卷答案'; - try { - - $id = input('id'); - $hdrquestionnairequestion_id = input('hdrquestionnairequestion_id'); - $answer = input('answer'); - - - $model_obj = Db::table(TabConf::$fa_hdrquestionnaireanswer); - - if(input('id')){ - $model_obj->where('id',input('id')); - } - if(input('hdrquestionnairequestion_id')){ - $model_obj->where('hdrquestionnairequestion_id',input('hdrquestionnairequestion_id')); - } - if(input('answer')){ - $model_obj->where('answer',input('answer')); - } - - $data = $model_obj->paginate(['page'=>input('current_page',1),'list_rows'=>input('list_rows',15)]) - ->each(function($item, $key){ - - - - 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,'操作异常',[])); - } - } - + * id ID + * hdrquestionnairequestion_id 问卷问题ID + * answer 问卷答案 + * create_time 创建时间 + * update_time 更新时间 + + * author:wh + */ + function getHdrquestionnaireanswerList(){ + Tools::log_to_write_txt(['获取科室问卷答案 入参:'=>input()]); + $api_desc = '获取科室问卷答案'; + try { + + $id = input('id'); + $hdrquestionnairequestion_id = input('hdrquestionnairequestion_id'); + $answer = input('answer'); + + + $model_obj = Db::table(TabConf::$fa_hdrquestionnaireanswer); + + if(input('id')){ + $model_obj->where('id',input('id')); + } + if(input('hdrquestionnairequestion_id')){ + $model_obj->where('hdrquestionnairequestion_id',input('hdrquestionnairequestion_id')); + } + if(input('answer')){ + $model_obj->where('answer',input('answer')); + } + + $data = $model_obj->paginate(['page'=>input('current_page',1),'list_rows'=>input('list_rows',15)]) + ->each(function($item, $key){ + + + + 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,'操作异常',[])); + } + } + + /** + * 新增一个问卷答案 + * + * 参数: + * hdrquestionnairequestion_id 问卷问题ID 问卷问题ID 必须 + * answer 问卷答案 问卷答案 必须 + * api/Hdrquestionnaireanswer/addHdrquestionnaireanswer + */ + function addHdrquestionnaireanswer(){ + Tools::log_to_write_txt(['新增一个问卷答案'=>input()]); + $api_desc = '新增一个问卷答案'; + Db::startTrans(); + try { + + $hdrquestionnairequestion_id = input('hdrquestionnairequestion_id'); + if(empty($hdrquestionnairequestion_id)){ + return json(Tools::set_fail('参数错误.0')); + } + + $answer = input('answer'); + if(empty($answer)){ + return json(Tools::set_fail('参数错误.1')); + } + + + $data = [ + 'hdrquestionnairequestion_id'=>$hdrquestionnairequestion_id?:'', + 'answer'=>$answer?:'', + ]; + + + $dataid = Db::table(TabConf::$fa_hdrquestionnaireanswer)->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 必须 + * hdrquestionnairequestion_id 问卷问题ID + * answer 问卷答案 + * api/Hdrquestionnaireanswer/updateHdrquestionnaireanswer + */ + function updateHdrquestionnaireanswer(){ + Tools::log_to_write_txt(['修改科室问卷答案'=>input()]); + + $api_desc = '修改科室问卷答案'; + Db::startTrans(); + try { + + $hdrquestionnairequestion_id = input('hdrquestionnairequestion_id'); + $answer = input('answer'); + if(empty(input('id'))){ + return json(Tools::set_fail('参数错误。0')); + } + + + $data = [ + 'hdrquestionnairequestion_id'=>$hdrquestionnairequestion_id?:'', + 'answer'=>$answer?:'', + ]; + + + $dataid = Db::table(TabConf::$fa_hdrquestionnaireanswer) + ->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()); + } + } + } \ No newline at end of file diff --git a/digital_doctor/public/api_docs/api_list.html b/digital_doctor/public/api_docs/api_list.html index d86f93d..58ef149 100644 --- a/digital_doctor/public/api_docs/api_list.html +++ b/digital_doctor/public/api_docs/api_list.html @@ -120,9 +120,7 @@ * current_page 当前页码 * list_rows 每页显示条数 默认15 * doctor 医生昵称(杨教授) - * username 用户名(手机号) * name 姓名(杨玉环) - * id ID * doctor 医生昵称(杨教授) * username 用户名(手机号) * hdrdepartment_id 科室 @@ -282,6 +280,50 @@
+