first commit

This commit is contained in:
2025-03-17 10:56:09 +08:00
parent b65a5fd005
commit afec54dafe
6918 changed files with 1199199 additions and 0 deletions

View File

@@ -0,0 +1,291 @@
<?php
namespace app\api\controller;
use think\Db;
use app\common\model\TabConf;
use wanghua\general_utility_tools_php\file\upload\FileUpload;
use wanghua\general_utility_tools_php\tool\Tools;
use think\Controller;
class Hdrdoctorusers extends BaseHttpApi
{
protected $controller_comments = '医生账户信息';
/**
* 新增医生账户信息
*
* 参数:
* doctor 医生昵称(杨教授) 医生昵称(杨教授) 必须
* username 用户名(手机号) 用户名(手机号) 必须
* hdrdepartment_id 科室 科室 必须
* name 姓名(杨玉环) 姓名(杨玉环) 必须
* password 密码a123456 密码a123456 必须
* api/Hdrdoctorusers/addHdrdoctorusers
*/
function addHdrdoctorusers(){
Tools::log_to_write_txt(['新增医生账户信息'=>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 姓名(杨玉环)
*
* 所有字段说明<span style="color: gray">(可能有部分额外字段未在此体现)</span>
* id ID
* doctor 医生昵称(杨教授)
* username 用户名(手机号)
* hdrdepartment_id 科室
* name 姓名(杨玉环)
* password 密码a123456
* sex 性别
* age 年龄
* type 用户类型:user=用户,doc=医生
* address 住址
* clientid 客户端ID
* expires 有效期
* ticket 票据
* create_time 创建时间
* authorwh
*/
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,,,,,,,,,,');
//处理为外键字段+外键对应数据的字段名 egusers_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,'操作异常',[]));
}
}
}