731 lines
24 KiB
PHP
731 lines
24 KiB
PHP
<?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\gpt\chat\ChatGPT;
|
||
use wanghua\general_utility_tools_php\http\Curl;
|
||
use wanghua\general_utility_tools_php\Mmodel;
|
||
use wanghua\general_utility_tools_php\SundryConfig;
|
||
use wanghua\general_utility_tools_php\tool\Tools;
|
||
use wanghua\general_utility_tools_php\Validate;
|
||
use think\Controller;
|
||
|
||
|
||
/**
|
||
* 听译用户基本信息
|
||
*
|
||
* Class Hdruserinfotingyi
|
||
* @package app\api\controller
|
||
*/
|
||
class Hdruserinfotingyi extends BaseHttpApi
|
||
{
|
||
protected $controller_comments = '统一问诊用户基本信息';
|
||
|
||
|
||
|
||
/**
|
||
* desc:获取统一问诊用户基本信息列表(后台病历管理列表)
|
||
*
|
||
* api/Hdruserinfotingyi/getHdruserbaseinfoList
|
||
*
|
||
* 参数:
|
||
* 带分页
|
||
* current_page 当前页码
|
||
* list_rows 每页显示条数 默认15
|
||
* doctor 所属医生
|
||
* id ID
|
||
* date 日期
|
||
* doctor 所属医生
|
||
* hdrdepartment_id 科室
|
||
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊
|
||
* name 病人姓名
|
||
*
|
||
* 所有字段说明<span style="color: gray">(可能有部分额外字段未在此体现)</span>:
|
||
* id ID
|
||
* date 日期
|
||
* doctor 所属医生
|
||
* hdrdepartment_id 科室
|
||
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊
|
||
* name 病人姓名
|
||
* gender 病人性别
|
||
* age 病人年龄
|
||
* edu 教育程度
|
||
* career_year 职业及年限
|
||
* power 体力要求
|
||
* satisfaction 经济满意度
|
||
* old_career_year 过往职业及年限
|
||
* old_career_power 过往职业体力要求
|
||
* support 社会支持度
|
||
* marriage 婚姻状况
|
||
* live 居住情况
|
||
* home 家庭关系
|
||
* address 地址
|
||
* phone 联系方式
|
||
* wechat_no 微信号
|
||
* ticket 对话票据(数据隔离)
|
||
* create_time 创建时间
|
||
* is_flow 是否接受随访:yes=是,no=否
|
||
|
||
* author:wh
|
||
*/
|
||
function getHdruserbaseinfoList(){
|
||
Tools::log_to_write_txt(['获取统一问诊用户基本信息列表(后台病历管理列表) 入参:'=>input()]);
|
||
$api_desc = '获取统一问诊用户基本信息列表(后台病历管理列表)';
|
||
try {
|
||
|
||
$id = input('id');
|
||
$date = input('date');
|
||
$doctor = input('doctor');
|
||
$hdrdepartment_id = input('hdrdepartment_id');
|
||
$from = input('from');
|
||
$name = input('name');
|
||
|
||
|
||
$model_obj = Db::table(TabConf::$fa_ty_userbaseinfo);
|
||
|
||
if(input('doctor')){
|
||
$model_obj->whereLike('doctor','%'.input('doctor').'%');
|
||
}
|
||
|
||
if(input('id')){
|
||
$model_obj->where('id',input('id'));
|
||
}
|
||
if(input('date')){
|
||
$model_obj->where('date',input('date'));
|
||
}
|
||
if(input('hdrdepartment_id')){
|
||
$model_obj->where('hdrdepartment_id',input('hdrdepartment_id'));
|
||
}
|
||
if(input('from')){
|
||
$model_obj->where('from',input('from'));
|
||
}
|
||
if(input('name')){
|
||
$model_obj->where('name',input('name'));
|
||
}
|
||
|
||
$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,'操作异常',[]));
|
||
}
|
||
}
|
||
/**
|
||
* desc:获取统一问诊用户基本信息详情(后台病历管理详情)
|
||
*
|
||
* api/Hdruserinfotingyi/getHdruserbaseinfoDetailById
|
||
*
|
||
* 参数:
|
||
* id ID ID 必须
|
||
*
|
||
* 所有字段说明<span style="color: gray">(可能有部分额外字段未在此体现)</span>:
|
||
* id ID
|
||
* date 日期
|
||
* doctor 所属医生
|
||
* hdrdepartment_id 科室
|
||
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊
|
||
* name 病人姓名
|
||
* gender 病人性别
|
||
* age 病人年龄
|
||
* edu 教育程度
|
||
* career_year 职业及年限
|
||
* power 体力要求
|
||
* satisfaction 经济满意度
|
||
* old_career_year 过往职业及年限
|
||
* old_career_power 过往职业体力要求
|
||
* support 社会支持度
|
||
* marriage 婚姻状况
|
||
* live 居住情况
|
||
* home 家庭关系
|
||
* address 地址
|
||
* phone 联系方式
|
||
* wechat_no 微信号
|
||
* ticket 对话票据(数据隔离)
|
||
* create_time 创建时间
|
||
* is_flow 是否接受随访:yes=是,no=否
|
||
|
||
* author:wh
|
||
*/
|
||
function getHdruserbaseinfoDetailById(){
|
||
Tools::log_to_write_txt(['获取统一问诊用户基本信息详情(后台病历管理详情) 入参:'=>input()]);
|
||
$api_desc = '获取统一问诊用户基本信息详情(后台病历管理详情)';
|
||
try {
|
||
|
||
$id = input('id');
|
||
if(empty($id)){
|
||
return json(Tools::set_fail('id参数错误'));
|
||
}
|
||
|
||
|
||
|
||
$model_obj = Db::table(TabConf::$fa_ty_userbaseinfo);
|
||
|
||
if(input('id')){
|
||
$model_obj->where('id',input('id'));
|
||
}
|
||
$item = $model_obj->find();
|
||
$data = $item;
|
||
|
||
|
||
|
||
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 ID 【必须】
|
||
* name 病人姓名
|
||
* gender 病人性别
|
||
* age 病人年龄
|
||
* edu 教育程度
|
||
* career_year 职业及年限
|
||
* power 体力要求
|
||
* satisfaction 经济满意度
|
||
* old_career_year 过往职业及年限
|
||
* old_career_power 过往职业体力要求
|
||
* support 社会支持度
|
||
* marriage 婚姻状况
|
||
* live 居住情况
|
||
* home 家庭关系
|
||
* address 地址
|
||
* phone 联系方式
|
||
* wechat_no 微信号
|
||
* api/Hdruserinfotingyi/updateHdruserbaseinfoById
|
||
*/
|
||
function updateHdruserbaseinfoById(){
|
||
Tools::log_to_write_txt(['修改统一问诊用户基本信息'=>input()]);
|
||
|
||
$api_desc = '修改统一问诊用户基本信息';
|
||
Db::startTrans();
|
||
try {
|
||
|
||
$name = input('name');
|
||
$gender = input('gender');
|
||
$age = input('age');
|
||
$edu = input('edu');
|
||
$career_year = input('career_year');
|
||
$power = input('power');
|
||
$satisfaction = input('satisfaction');
|
||
$old_career_year = input('old_career_year');
|
||
$old_career_power = input('old_career_power');
|
||
$support = input('support');
|
||
$marriage = input('marriage');
|
||
$live = input('live');
|
||
$home = input('home');
|
||
$address = input('address');
|
||
$phone = input('phone');
|
||
$wechat_no = input('wechat_no');
|
||
if(empty(input('id'))){
|
||
return json(Tools::set_fail('参数错误。0',['error_msg'=>'错误信息:id错误']));
|
||
}
|
||
|
||
|
||
//存在则修改
|
||
$data = [];
|
||
if($name){
|
||
$data['name'] = $name;
|
||
}
|
||
|
||
if($gender){
|
||
$data['gender'] = $gender;
|
||
}
|
||
|
||
if($age){
|
||
$data['age'] = $age;
|
||
}
|
||
|
||
if($edu){
|
||
$data['edu'] = $edu;
|
||
}
|
||
|
||
if($career_year){
|
||
$data['career_year'] = $career_year;
|
||
}
|
||
|
||
if($power){
|
||
$data['power'] = $power;
|
||
}
|
||
|
||
if($satisfaction){
|
||
$data['satisfaction'] = $satisfaction;
|
||
}
|
||
|
||
if($old_career_year){
|
||
$data['old_career_year'] = $old_career_year;
|
||
}
|
||
|
||
if($old_career_power){
|
||
$data['old_career_power'] = $old_career_power;
|
||
}
|
||
|
||
if($support){
|
||
$data['support'] = $support;
|
||
}
|
||
|
||
if($marriage){
|
||
$data['marriage'] = $marriage;
|
||
}
|
||
|
||
if($live){
|
||
$data['live'] = $live;
|
||
}
|
||
|
||
if($home){
|
||
$data['home'] = $home;
|
||
}
|
||
|
||
if($address){
|
||
$data['address'] = $address;
|
||
}
|
||
|
||
if($phone){
|
||
$data['phone'] = $phone;
|
||
}
|
||
|
||
if($wechat_no){
|
||
$data['wechat_no'] = $wechat_no;
|
||
}
|
||
|
||
|
||
$hdrdepartment = input('hdrdepartment');
|
||
if($hdrdepartment){
|
||
$data['hdrdepartment'] = $hdrdepartment;
|
||
}
|
||
$hdrdepartment_id = input('hdrdepartment_id');
|
||
if($hdrdepartment_id){
|
||
$data['hdrdepartment_id'] = $hdrdepartment_id;
|
||
}
|
||
|
||
$dataid = Db::table(TabConf::$fa_ty_userbaseinfo)
|
||
->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());
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
/**
|
||
* 新增统一问诊用户基本信息
|
||
*
|
||
* 参数:
|
||
* date 日期 【必须】
|
||
* doctor 所属医生 【必须】
|
||
* hdrdepartment_id 科室 【必须】
|
||
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊,doc_add=医生添加 【必须】
|
||
* name 病人姓名 【必须】
|
||
* gender 病人性别 【必须】
|
||
* age 病人年龄 【必须】
|
||
* edu 教育程度
|
||
* career_year 职业及年限
|
||
* power 体力要求
|
||
* satisfaction 经济满意度
|
||
* old_career_year 过往职业及年限
|
||
* old_career_power 过往职业体力要求
|
||
* support 社会支持度
|
||
* marriage 婚姻状况
|
||
* live 居住情况
|
||
* home 家庭关系
|
||
* address 地址
|
||
* phone 联系方式 【必须】
|
||
* wechat_no 微信号
|
||
* ticket 对话票据(数据隔离)
|
||
* diagnosis 诊断
|
||
*/
|
||
function addHdruserbaseinfo(){
|
||
Tools::log_to_write_txt(['新增统一问诊用户基本信息'=>input()]);
|
||
$api_desc = '新增统一问诊用户基本信息';
|
||
Db::startTrans();
|
||
try {
|
||
|
||
$date = input('date');
|
||
if(empty($date)){
|
||
return json(Tools::set_fail('参数错误.0',['error_msg'=>'错误信息:date错误']));
|
||
}
|
||
|
||
$doctor = input('doctor');
|
||
if(empty($doctor)){
|
||
return json(Tools::set_fail('参数错误.1',['error_msg'=>'错误信息:doctor错误']));
|
||
}
|
||
|
||
$hdrdepartment_id = input('hdrdepartment_id');
|
||
if(empty($hdrdepartment_id)){
|
||
return json(Tools::set_fail('参数错误.2',['error_msg'=>'错误信息:hdrdepartment_id错误']));
|
||
}
|
||
|
||
$from = input('from');
|
||
if(empty($from)){
|
||
return json(Tools::set_fail('参数错误.3',['error_msg'=>'错误信息:from错误']));
|
||
}
|
||
|
||
$name = input('name');
|
||
if(empty($name)){
|
||
return json(Tools::set_fail('参数错误.4',['error_msg'=>'错误信息:name错误']));
|
||
}
|
||
|
||
$gender = input('gender');
|
||
if(empty($gender)){
|
||
return json(Tools::set_fail('参数错误.5',['error_msg'=>'错误信息:gender错误']));
|
||
}
|
||
|
||
$age = input('age');
|
||
if(empty($age)){
|
||
return json(Tools::set_fail('参数错误.6',['error_msg'=>'错误信息:age错误']));
|
||
}
|
||
|
||
$edu = input('edu');
|
||
$career_year = input('career_year');
|
||
$power = input('power');
|
||
$satisfaction = input('satisfaction');
|
||
$old_career_year = input('old_career_year');
|
||
$old_career_power = input('old_career_power');
|
||
$support = input('support');
|
||
$marriage = input('marriage');
|
||
$live = input('live');
|
||
$home = input('home');
|
||
$address = input('address');
|
||
$phone = input('phone');
|
||
if(empty($phone)){
|
||
return json(Tools::set_fail('参数错误.18',['error_msg'=>'错误信息:phone错误']));
|
||
}
|
||
|
||
$wechat_no = input('wechat_no');
|
||
$ticket = input('ticket');
|
||
$diagnosis = input('diagnosis');
|
||
|
||
$data = [
|
||
'date'=>$date?:'',
|
||
'doctor'=>$doctor?:'',
|
||
'hdrdepartment_id'=>$hdrdepartment_id?:'',
|
||
'from'=>$from?:'',
|
||
'name'=>$name?:'',
|
||
'gender'=>$gender?:'',
|
||
'age'=>$age?:'',
|
||
'edu'=>$edu?:'',
|
||
'career_year'=>$career_year?:'',
|
||
'power'=>$power?:'',
|
||
'satisfaction'=>$satisfaction?:'',
|
||
'old_career_year'=>$old_career_year?:'',
|
||
'old_career_power'=>$old_career_power?:'',
|
||
'support'=>$support?:'',
|
||
'marriage'=>$marriage?:'',
|
||
'live'=>$live?:'',
|
||
'home'=>$home?:'',
|
||
'address'=>$address?:'',
|
||
'phone'=>$phone?:'',
|
||
'wechat_no'=>$wechat_no?:'',
|
||
'ticket'=>$ticket?:'',
|
||
'diagnosis'=>$diagnosis?:'',
|
||
];
|
||
|
||
|
||
$dataid = Db::table(TabConf::$fa_tt_userbaseinfo)->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());
|
||
}
|
||
}
|
||
|
||
/**
|
||
* desc:保存用户基本信息,没有就新增
|
||
*
|
||
* * 参数:
|
||
* doctor 所属医生 【必须】
|
||
* hdrdepartment_id 科室 【必须】
|
||
* name 病人姓名 【必须】
|
||
* gender 病人性别 【必须】
|
||
* age 病人年龄 【必须】
|
||
* phone 图片识别联系方式
|
||
* user_phone 当前用户登录的手机号 【必须】
|
||
*
|
||
*
|
||
* author:wh
|
||
*/
|
||
function saveBaseinfo(){
|
||
Tools::log_to_write_txt(['保存用户基本信息,没有就新增'=>input()]);
|
||
$api_desc = '保存用户基本信息,没有就新增';
|
||
Db::startTrans();
|
||
try {
|
||
|
||
|
||
$hdrdepartment_id = input('hdrdepartment_id');
|
||
if(empty($hdrdepartment_id)){
|
||
return json(Tools::set_fail('参数错误.2',['error_msg'=>'错误信息:hdrdepartment_id错误']));
|
||
}
|
||
|
||
$name = input('name');
|
||
if(empty($name)){
|
||
return json(Tools::set_fail('参数错误.4',['error_msg'=>'错误信息:name错误']));
|
||
}
|
||
|
||
$gender = input('gender');
|
||
if(empty($gender)){
|
||
return json(Tools::set_fail('参数错误.5',['error_msg'=>'错误信息:gender错误']));
|
||
}
|
||
|
||
$age = input('age');
|
||
if(empty($age)){
|
||
return json(Tools::set_fail('参数错误.6',['error_msg'=>'错误信息:age错误']));
|
||
}
|
||
$doctor = input('doctor');
|
||
if(empty($doctor)){
|
||
return json(Tools::set_fail('参数错误.3',['error_msg'=>'错误信息:doctor手机号错误']));
|
||
}
|
||
|
||
$hdrdepartment = input('hdrdepartment');
|
||
$phone = input('phone');
|
||
if(empty($phone)){
|
||
return json(Tools::set_fail('参数错误.18',['error_msg'=>'错误信息:phone错误']));
|
||
}
|
||
|
||
$data = [
|
||
'hdrdepartment_id'=>$hdrdepartment_id?:'',
|
||
'name'=>$name?:'',
|
||
'gender'=>$gender?:'',
|
||
'age'=>$age?:'',
|
||
'phone'=>$phone?:'',
|
||
'hdrdepartment'=>$hdrdepartment?:'',
|
||
'user_phone'=>api_user_info('username')
|
||
];
|
||
//同步科室(没有则新增)
|
||
$department_data = [
|
||
'name'=>$hdrdepartment,
|
||
];
|
||
$insert_hdrdepartment_id = Mmodel::existsUpdateInsert(TabConf::$fa_hdrdepartment,[
|
||
'name'=>$hdrdepartment
|
||
],$department_data);
|
||
if($insert_hdrdepartment_id){
|
||
$data['hdrdepartment_id'] = $insert_hdrdepartment_id;
|
||
}
|
||
//同步基本信息到fa_tt_userbaseinfo表
|
||
$base_info_data = [
|
||
'date'=>Tools::get_now_date(),
|
||
'doctor'=>$doctor,
|
||
'hdrdepartment_id'=>$hdrdepartment_id,
|
||
'hdrdepartment'=>$hdrdepartment,
|
||
'name'=>$name,
|
||
'gender'=>$gender,
|
||
'age'=>$age,
|
||
'phone'=>$phone,
|
||
'user_phone'=>api_user_info('username'),
|
||
'from'=>'h5',
|
||
];
|
||
//只能新增基本信息,不能修改
|
||
$base_info_data_id = Db::table(TabConf::$fa_ty_userbaseinfo)
|
||
->insertGetId($base_info_data);
|
||
|
||
Db::commit();
|
||
return json(Tools::set_ok('ok',['base_info_data_id'=>$base_info_data_id]));
|
||
}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/Hdruserinfotingyi/getHdruserbaseinfoByPhone
|
||
*
|
||
* 参数:
|
||
* phone 联系方式 【必须】
|
||
*
|
||
* 所有字段说明<span style="color: gray">(可能有部分额外字段未在此体现)</span>:
|
||
* id ID
|
||
* hdrdepartment_id 科室
|
||
* hdrdepartment 科室名称
|
||
* name 病人姓名
|
||
* gender 病人性别
|
||
* age 病人年龄
|
||
* phone 联系方式
|
||
|
||
* author:wh
|
||
*/
|
||
function getHdruserbaseinfoByPhone(){
|
||
Tools::log_to_write_txt(['根据手机号码获取统一问诊用户基本信息 入参:'=>input()]);
|
||
$api_desc = '根据手机号码获取统一问诊用户基本信息';
|
||
try {
|
||
|
||
$phone = input('phone');
|
||
if(empty($phone)){
|
||
return json(Tools::set_fail('参数错误.0',['error_msg'=>'错误信息:phone错误']));
|
||
}
|
||
|
||
|
||
|
||
$model_obj = Db::table(TabConf::$fa_ty_userbaseinfo);
|
||
$model_obj->order('id desc');
|
||
if(input('phone')){
|
||
$model_obj->where('user_phone',input('phone'));
|
||
}
|
||
$item = $model_obj->find();
|
||
$data = $item;
|
||
|
||
|
||
|
||
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,'操作异常',[]));
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 基本信息读取
|
||
* 基本信息读取接口(传图片地址)
|
||
*
|
||
* 参数:
|
||
* phone 患者手机号码
|
||
*
|
||
* 文件上传控件name值设置为:file_upload,否则无法上传
|
||
*
|
||
*/
|
||
public function getBaseInfoUploadRead(){
|
||
return Mmodel::catchJson(function (){
|
||
//基本信息读取接口(传图片地址)【一张图片一个chatid】
|
||
$phone = input('phone');
|
||
if(empty($phone)){
|
||
return Tools::set_fail('参数错误.0',['error_msg'=>'错误信息:phone错误']);
|
||
}
|
||
$sessionid = input('sessionid');
|
||
if(empty($sessionid)){
|
||
return Tools::set_fail( '参数错误.1',['error_msg'=>'错误信息:sessionid错误']);
|
||
}
|
||
//存在没有生成报告的上传的基本信息就删除
|
||
Db::table(TabConf::$fa_hdruserbaseinfo_upload)
|
||
->where('user_phone',$phone)
|
||
->where('status','new')
|
||
->delete();
|
||
|
||
|
||
$oss_config = config('aliyun_oss_config');
|
||
$file_obj = new FileUpload();
|
||
$file_res = $file_obj->fileUploadToAliCloudOss($oss_config);
|
||
Tools::log_to_write_txt(['文件上传结果'=>$file_res]);
|
||
if($file_res['code']!=200){
|
||
return Tools::set_fail($file_res['msg']);
|
||
}
|
||
$upload_data = $file_res['data'][0];
|
||
$upload_data['sessionid'] = $sessionid;
|
||
$upload_data['phone'] = $phone;
|
||
$upload_data['user_phone'] = $phone;
|
||
//保存图片信息,存在则更新
|
||
$hdruserbaseinfo_upload_id = Db::table(TabConf::$fa_hdruserbaseinfo_upload)
|
||
->insertGetId($upload_data);
|
||
//ai分析
|
||
$ai_config = config('basic_information_read_config');
|
||
$chatobj = new ChatGPT();
|
||
$chatobj->url = $ai_config['base_url'];
|
||
$chatobj->model = '';
|
||
$chatobj->apiKey = $ai_config['APIKey'];
|
||
|
||
$answer_json_arr = [];
|
||
|
||
$config = [
|
||
'stream'=>false,
|
||
'chatId'=>Tools::getMillisecond(),
|
||
];
|
||
|
||
$sub_content_msg = [
|
||
[
|
||
"role" => "user",
|
||
"content" => [
|
||
[
|
||
"type" => "image_url",
|
||
"image_url" => [
|
||
"url" => $file_res['data'][0]['outer_req_url']
|
||
]
|
||
]
|
||
]
|
||
]
|
||
];
|
||
//chatGpt设置前置聊天上下文
|
||
$chatobj->setBefore($sub_content_msg);
|
||
$question = '';
|
||
//回答
|
||
$chatobj->returnAnswer($question,$config,$answer_json_arr);
|
||
|
||
Tools::log_to_write_txt(['请求gpt'=>$chatobj->post_msg_body]);
|
||
Tools::log_to_write_txt(['gpt回复'=>$answer_json_arr]);
|
||
//保存处理结果
|
||
$answer_result = json_decode($answer_json_arr[0],true);
|
||
$ai_result_data = [
|
||
'result'=>$answer_result['choices'][0]['message']['content']
|
||
];
|
||
//保存ai分析结果
|
||
Db::table(TabConf::$fa_hdruserbaseinfo_upload)
|
||
->where('id',$hdruserbaseinfo_upload_id)
|
||
->data($ai_result_data)
|
||
->update();
|
||
|
||
unset($file_res['data'][0]['real_path']);
|
||
//返回分析结果
|
||
return Tools::set_ok('ok',['result'=>$answer_result['choices'][0]['message']['content'],'file_info'=>$file_res['data']]);
|
||
});
|
||
}
|
||
|
||
|
||
} |