fixed
This commit is contained in:
@@ -9,6 +9,9 @@
|
|||||||
namespace app\api\controller;
|
namespace app\api\controller;
|
||||||
|
|
||||||
|
|
||||||
|
use app\api\logic\TychatLogic;
|
||||||
|
use wanghua\general_utility_tools_php\Mmodel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 健康洞察
|
* 健康洞察
|
||||||
*
|
*
|
||||||
@@ -19,4 +22,19 @@ class HealthInsights
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* desc:健康洞察
|
||||||
|
*
|
||||||
|
* 实时输出
|
||||||
|
*
|
||||||
|
* /api/HealthInsights/getHealthInsight
|
||||||
|
*
|
||||||
|
* author:wh
|
||||||
|
*/
|
||||||
|
function getHealthInsight(){
|
||||||
|
return Mmodel::catchJson(function (){
|
||||||
|
$obj = new TychatLogic();
|
||||||
|
$obj->getHealthInsight();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -50,12 +50,17 @@ class Reportty
|
|||||||
|
|
||||||
return json(Tools::set_fail('ticket必须'));
|
return json(Tools::set_fail('ticket必须'));
|
||||||
}
|
}
|
||||||
$user = Db::table('fa_users')->where('ticket',$ticket)->find();
|
$user = Db::table('fa_ty_users')->where('ticket',$ticket)->find();
|
||||||
if(empty($user)){
|
if(empty($user)){
|
||||||
return json(Tools::set_fail('用户不存在'));
|
return json(Tools::set_fail('用户不存在'));
|
||||||
}
|
}
|
||||||
$his_record = Db::table('fa_ty_chathistory')->where('username',$user['username'])->order('id asc')->select();
|
|
||||||
|
|
||||||
|
$day3 = date('Y-m-d 00:00:00',strtotime('-3 day'));
|
||||||
|
$his_record = Db::table('fa_ty_chathistory')
|
||||||
|
//->where('username',$user['username'])
|
||||||
|
->order('id asc')
|
||||||
|
->where('createtime','>',$day3)//3天之内
|
||||||
|
->select();
|
||||||
$config = [
|
$config = [
|
||||||
'stream'=>false,
|
'stream'=>false,
|
||||||
];
|
];
|
||||||
@@ -76,7 +81,7 @@ class Reportty
|
|||||||
$data = [
|
$data = [
|
||||||
'doctor'=>$user['username'],
|
'doctor'=>$user['username'],
|
||||||
//病人
|
//病人
|
||||||
'username'=>Db::table('fa_users')->where('doctor',$user['username'])->value('username'),
|
'username'=>Db::table('fa_ty_users')->where('doctor',$user['username'])->value('username'),
|
||||||
'report_content'=>$choice['message']['content'],
|
'report_content'=>$choice['message']['content'],
|
||||||
];
|
];
|
||||||
Db::table('fa_ty_medical_report')->insert($data);
|
Db::table('fa_ty_medical_report')->insert($data);
|
||||||
@@ -141,7 +146,7 @@ class Reportty
|
|||||||
//if(empty($ticket)){
|
//if(empty($ticket)){
|
||||||
// return Tools::set_fail('ticket必须');
|
// return Tools::set_fail('ticket必须');
|
||||||
//}
|
//}
|
||||||
//$user = Db::table('fa_users')->where('ticket',$ticket)->find();
|
//$user = Db::table('fa_ty_users')->where('ticket',$ticket)->find();
|
||||||
//修改基本信息
|
//修改基本信息
|
||||||
$data = [
|
$data = [
|
||||||
//'username'=>$user['username'],//医生
|
//'username'=>$user['username'],//医生
|
||||||
@@ -158,7 +163,7 @@ class Reportty
|
|||||||
'diagnosis'=>input('diagnosis',''),//诊断
|
'diagnosis'=>input('diagnosis',''),//诊断
|
||||||
'treatment'=>input('treatment',''),//医嘱
|
'treatment'=>input('treatment',''),//医嘱
|
||||||
];
|
];
|
||||||
Mmodel::existsUpdateInsert('fa_userbaseinfo',[
|
Mmodel::existsUpdateInsert('fa_ty_userbaseinfo',[
|
||||||
'username'=>input('username',''),
|
'username'=>input('username',''),
|
||||||
'name'=>input('name',''),
|
'name'=>input('name',''),
|
||||||
],$data);
|
],$data);
|
||||||
|
|||||||
24
digital_doctor/application/api/controller/Tychat.php
Normal file
24
digital_doctor/application/api/controller/Tychat.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* description:
|
||||||
|
* author:wh
|
||||||
|
* email:
|
||||||
|
* createTime:{2024/7/15} {16:13}
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace app\api\controller;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 听译聊天
|
||||||
|
* Class Tychat
|
||||||
|
* @package app\api\controller
|
||||||
|
*/
|
||||||
|
class Tychat
|
||||||
|
{
|
||||||
|
|
||||||
|
function saveChat(){
|
||||||
|
return Mmodel::catchJson(function (){
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -64,7 +64,7 @@ class Users extends BaseHttpApi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
$model_obj = Db::table('fa_users');
|
$model_obj = Db::table('fa_ty_users');
|
||||||
|
|
||||||
if(input('openid')){
|
if(input('openid')){
|
||||||
$model_obj->where('openid',input('openid'));
|
$model_obj->where('openid',input('openid'));
|
||||||
@@ -74,7 +74,7 @@ class Users extends BaseHttpApi
|
|||||||
return json(Tools::set_res(234,'用户不存在'));
|
return json(Tools::set_res(234,'用户不存在'));
|
||||||
}
|
}
|
||||||
//更新用户最后登录时间
|
//更新用户最后登录时间
|
||||||
Db::table('fa_users')
|
Db::table('fa_ty_users')
|
||||||
->data(['last_login_time'=>Tools::get_now_date()])
|
->data(['last_login_time'=>Tools::get_now_date()])
|
||||||
->where('id',$data['id'])
|
->where('id',$data['id'])
|
||||||
->update();
|
->update();
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
* description:
|
|
||||||
* author:wh
|
|
||||||
* email:
|
|
||||||
* createTime:{2024/6/18} {18:05}
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace app\api\logic;
|
|
||||||
|
|
||||||
|
|
||||||
use app\common\model\TabConf;
|
|
||||||
use think\Db;
|
|
||||||
use wanghua\general_utility_tools_php\Mmodel;
|
|
||||||
use wanghua\general_utility_tools_php\tool\Tools;
|
|
||||||
|
|
||||||
class EnemyLogic extends BaseLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* desc:累加击杀敌人数量
|
|
||||||
*
|
|
||||||
* 参数:enemy_num
|
|
||||||
*
|
|
||||||
* author:wh
|
|
||||||
*/
|
|
||||||
function addKillEnemyNum(){
|
|
||||||
return Mmodel::catchJson(function (){
|
|
||||||
$enemy_num = input('enemy_num',1);
|
|
||||||
Db::table(TabConf::$fa_users)
|
|
||||||
->where('openid',api_user_openid())
|
|
||||||
->setInc('enemy',$enemy_num);//累加击杀敌人数量
|
|
||||||
return Tools::set_ok();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
102
digital_doctor/application/api/logic/TychatLogic.php
Normal file
102
digital_doctor/application/api/logic/TychatLogic.php
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* description:
|
||||||
|
* author:wh
|
||||||
|
* email:
|
||||||
|
* createTime:{2024/7/15} {16:14}
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace app\api\logic;
|
||||||
|
|
||||||
|
|
||||||
|
use app\api\controller\BaseWssApi;
|
||||||
|
use GatewayWorker\Lib\Gateway;
|
||||||
|
use think\Db;
|
||||||
|
use wanghua\general_utility_tools_php\gpt\chat\ChatGPT;
|
||||||
|
use wanghua\general_utility_tools_php\tool\Tools;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 听译聊天
|
||||||
|
* Class TychatLogic
|
||||||
|
* @package app\api\logic
|
||||||
|
*/
|
||||||
|
class TychatLogic extends BaseLogic
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* desc:保存听译聊天记录
|
||||||
|
*
|
||||||
|
* action:TychatLogic/saveChatHistory
|
||||||
|
*
|
||||||
|
* 参数:
|
||||||
|
* [
|
||||||
|
'action'=>'TychatLogic/saveChatHistory',
|
||||||
|
'items'=>[
|
||||||
|
'content'=>'挑剔内容',
|
||||||
|
'username'=>'用户名',
|
||||||
|
]
|
||||||
|
];
|
||||||
|
* author:wh
|
||||||
|
* @param $client_id
|
||||||
|
* @param $data
|
||||||
|
*/
|
||||||
|
function saveChatHistory($client_id,$res){
|
||||||
|
$items = $res['items'];
|
||||||
|
$data = [
|
||||||
|
'username'=>$items['username'],
|
||||||
|
'chat_msg'=>$items['content'],
|
||||||
|
];
|
||||||
|
Db::table('fa_ty_chathistory')->insert($data);
|
||||||
|
|
||||||
|
//这里做健康小洞察
|
||||||
|
//$this->getHealthInsight();
|
||||||
|
|
||||||
|
$json = BaseWssApi::json_wss('ok','保存成功');
|
||||||
|
Gateway::sendToClient($client_id, $json);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* desc:健康洞察
|
||||||
|
* author:wh
|
||||||
|
*/
|
||||||
|
function getHealthInsight(){
|
||||||
|
$config = config('ai_health_insight_config');
|
||||||
|
|
||||||
|
$question = '';//input('question','');
|
||||||
|
|
||||||
|
$chatobj = new ChatGPT();
|
||||||
|
$chatobj->url = $config['base_url'];
|
||||||
|
$chatobj->model = '';
|
||||||
|
$chatobj->apiKey = $config['APIKey'];
|
||||||
|
|
||||||
|
$answer_json_arr = [];
|
||||||
|
|
||||||
|
$ticket = input('ticket');
|
||||||
|
if(empty($ticket)){
|
||||||
|
return json(Tools::set_fail('ticket必须'));
|
||||||
|
}
|
||||||
|
$user = Db::table('fa_ty_users')->where('ticket',$ticket)->find();
|
||||||
|
if(empty($user)){
|
||||||
|
return json(Tools::set_fail('用户不存在'));
|
||||||
|
}
|
||||||
|
$day3 = date('Y-m-d 00:00:00',strtotime('-3 day'));
|
||||||
|
$his_record = Db::table('fa_ty_chathistory')
|
||||||
|
//->where('username',$user['username'])
|
||||||
|
->order('id asc')
|
||||||
|
->where('createtime','>',$day3)//3天之内
|
||||||
|
->select();
|
||||||
|
|
||||||
|
$config = [
|
||||||
|
'stream'=>false,
|
||||||
|
];
|
||||||
|
$content = [
|
||||||
|
//["role" => "user", "content" => '']
|
||||||
|
];
|
||||||
|
foreach ($his_record as $item){
|
||||||
|
$content[] = ["role" => "user", "content" => $item['chat_msg']];
|
||||||
|
}
|
||||||
|
$chatobj->setBefore($content);
|
||||||
|
|
||||||
|
$chatobj->chat($question,$config,$answer_json_arr);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
* description:
|
|
||||||
* author:wh
|
|
||||||
* email:
|
|
||||||
* createTime:{2024/6/2} {10:51}
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace app\api\logic;
|
|
||||||
|
|
||||||
|
|
||||||
use app\common\model\TabConf;
|
|
||||||
use think\Db;
|
|
||||||
use wanghua\general_utility_tools_php\Mmodel;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户离线奖品表(用户上线时写入,领取后删除)
|
|
||||||
* Class UserOfflinePrizeLogic
|
|
||||||
* @package app\api\logic
|
|
||||||
*/
|
|
||||||
class UserOfflinePrizeLogic
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* desc:查询最早的一条奖品数据
|
|
||||||
* author:wh
|
|
||||||
* @param $openid
|
|
||||||
*/
|
|
||||||
static function getFirstPrizeRecord($openid){
|
|
||||||
return Db::table(TabConf::$fa_user_offline_prize)
|
|
||||||
->where('openid',$openid)
|
|
||||||
->order('id asc')
|
|
||||||
->find();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* desc:用户上线时写入奖品(存在则num加1)
|
|
||||||
* author:wh
|
|
||||||
*/
|
|
||||||
static function insertPrize($openid,$gameprop_id,$num){
|
|
||||||
//
|
|
||||||
$prize = Db::table(TabConf::$fa_user_offline_prize)
|
|
||||||
->where('openid',$openid)
|
|
||||||
->where('gameprop_id',$gameprop_id)
|
|
||||||
->find();
|
|
||||||
if($prize){
|
|
||||||
Db::table(TabConf::$fa_user_offline_prize)
|
|
||||||
->where('id',$prize['id'])
|
|
||||||
->setInc('num',$num);
|
|
||||||
}else{
|
|
||||||
Db::table(TabConf::$fa_user_offline_prize)
|
|
||||||
->insert([
|
|
||||||
'openid'=>$openid,
|
|
||||||
'gameprop_id'=>$gameprop_id,
|
|
||||||
'num'=>$num
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* desc:领取后删除
|
|
||||||
* author:wh
|
|
||||||
* @param $openid
|
|
||||||
*/
|
|
||||||
static function deletedPrize($openid){
|
|
||||||
Db::table(TabConf::$fa_user_offline_prize)
|
|
||||||
->where('openid',$openid)
|
|
||||||
->delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -136,7 +136,7 @@ class TabConf
|
|||||||
/**
|
/**
|
||||||
* 用户表
|
* 用户表
|
||||||
*/
|
*/
|
||||||
static $fa_users = 'fa_users';
|
static $fa_users = 'fa_ty_users';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ namespace app\index\logic\events;
|
|||||||
|
|
||||||
use app\api\controller\BaseWssApi;
|
use app\api\controller\BaseWssApi;
|
||||||
use app\api\logic\AudioRevertLogic;
|
use app\api\logic\AudioRevertLogic;
|
||||||
|
use app\api\logic\BaseLogic;
|
||||||
use app\api\logic\PartnerOfflineLogic;
|
use app\api\logic\PartnerOfflineLogic;
|
||||||
use app\api\logic\UserLogic;
|
use app\api\logic\UserLogic;
|
||||||
use app\api\logic\WssMessageLogic;
|
use app\api\logic\WssMessageLogic;
|
||||||
use app\index\logic\Baselogic;
|
|
||||||
use GatewayWorker\Lib\Gateway;
|
use GatewayWorker\Lib\Gateway;
|
||||||
use IFlytek\Xfyun\Speech\LfasrClient;
|
use IFlytek\Xfyun\Speech\LfasrClient;
|
||||||
use think\Db;
|
use think\Db;
|
||||||
@@ -111,29 +111,31 @@ class Events extends \think\worker\Events
|
|||||||
{
|
{
|
||||||
Tools::log_to_write_txt(['客户端发来数据(Gateway进程收到数据).client_id:'.$client_id,$data]);
|
Tools::log_to_write_txt(['客户端发来数据(Gateway进程收到数据).client_id:'.$client_id,$data]);
|
||||||
//$res = Tools::set_ok('ok',['client_id'=>$client_id,'msg'=>'你发来的消息我接收到了:',$client_id=>$data]);
|
//$res = Tools::set_ok('ok',['client_id'=>$client_id,'msg'=>'你发来的消息我接收到了:',$client_id=>$data]);
|
||||||
//Gateway::sendToClient($client_id,json_encode($res,JSON_UNESCAPED_UNICODE));
|
Gateway::sendToClient($client_id,json_encode($res,JSON_UNESCAPED_UNICODE));
|
||||||
|
|
||||||
if(empty($data)){
|
//if(empty($data)){
|
||||||
$json = BaseWssApi::json_wss('error','消息为空');
|
// $json = BaseWssApi::json_wss('error','消息为空');
|
||||||
|
//
|
||||||
Gateway::sendToClient($client_id, $json);
|
// Gateway::sendToClient($client_id, $json);
|
||||||
return ;
|
// return ;
|
||||||
}
|
//}
|
||||||
//解析消息
|
////解析消息
|
||||||
$xunfei_record_config = config('xunfei_record_config');
|
//$xunfei_record_config = config('xunfei_record_config');
|
||||||
$appId = $xunfei_record_config['appid'];
|
//$appId = $xunfei_record_config['appid'];
|
||||||
$secretKey = $xunfei_record_config['secretKey'];
|
//$secretKey = $xunfei_record_config['secretKey'];
|
||||||
|
//
|
||||||
//解析action
|
////解析action
|
||||||
// 处理接收到的语音数据
|
//// 处理接收到的语音数据
|
||||||
// 这里需要将二进制数据转换为讯飞API所需的格式
|
//// 这里需要将二进制数据转换为讯飞API所需的格式
|
||||||
// 以下代码仅为示例,具体实现需要根据讯飞API文档进行调整
|
//// 以下代码仅为示例,具体实现需要根据讯飞API文档进行调整
|
||||||
$lfasrClient = new LfasrClient($appId, $secretKey);
|
//$lfasrClient = new LfasrClient($appId, $secretKey);
|
||||||
$lfasrClient->sendBinaryData($data, function ($result) use ($client_id) {
|
//$lfasrClient->sendBinaryData($data, function ($result) use ($client_id) {
|
||||||
// 处理讯飞API返回的实时转写结果
|
// // 处理讯飞API返回的实时转写结果
|
||||||
// 将结果发送回客户端
|
// // 将结果发送回客户端
|
||||||
Gateway::sendToClient($client_id, json_encode(['type' => 'transcription', 'data' => $result]));
|
// Gateway::sendToClient($client_id, json_encode(['type' => 'transcription', 'data' => $result]));
|
||||||
});
|
//});
|
||||||
|
$obj = new BaseLogic();
|
||||||
|
$obj->domsg($client_id,$data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -192,11 +192,17 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
],
|
],
|
||||||
|
//听译-报告生成接口
|
||||||
'ai_listen_report_config'=>[
|
'ai_listen_report_config'=>[
|
||||||
'base_url'=>'https://serverfastgpt.excn.top/api/v1/chat/completions',
|
'base_url'=>'https://serverfastgpt.excn.top/api/v1/chat/completions',
|
||||||
'APIKey'=>'fastgpt-e5wq9u6phvyfq4znrXfOuTHKHQHGjpcVBYay602ai5zv4HeOJRMDwT3ptm6',
|
'APIKey'=>'fastgpt-e5wq9u6phvyfq4znrXfOuTHKHQHGjpcVBYay602ai5zv4HeOJRMDwT3ptm6',
|
||||||
],
|
],
|
||||||
//讯飞录音接口
|
//听译-健康小洞察
|
||||||
|
'ai_health_insight_config'=>[
|
||||||
|
'base_url'=>'https://serverfastgpt.excn.top/api/v1/chat/completions',
|
||||||
|
'APIKey'=>'fastgpt-tZKZGcsdkzAMPuKlRtI5HDtupY83wwQQigGuPjKqqElFPeD9cYku1w1OzXY',
|
||||||
|
],
|
||||||
|
//听译-讯飞录音接口
|
||||||
'xunfei_record_config'=>[
|
'xunfei_record_config'=>[
|
||||||
//优一
|
//优一
|
||||||
'appid'=>'de02dasd',
|
'appid'=>'de02dasd',
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ use wanghua\general_utility_tools_php\tool\Tools;
|
|||||||
|
|
||||||
class BaseUserLogic
|
class BaseUserLogic
|
||||||
{
|
{
|
||||||
public $user_table = 'fa_users';
|
public $user_table = 'fa_ty_users';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* desc:【通用】用户登录逻辑
|
* desc:【通用】用户登录逻辑
|
||||||
|
|||||||
Reference in New Issue
Block a user