| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498 |
- <?php
- namespace app\index\controller;
- use think\Request;
- use think\Db;
- use think\Log;
- //ws客户端发送消息
- use WebSocket\Client;
- //sm4
- use Evit\PhpGmCrypto\Encryption\EvitSM4Encryption;
- header("Access-Control-Allow-Origin:*"); // 制定允许其他域名访问
- header('Access-Control-Allow-Methods:POST'); // 响应类型
- header('Access-Control-Allow-Headers:x-requested-with, content-type'); // 响应头设置
- class Send extends \think\Controller
- {
- //base64 encode处理json串
- public function dataSM4() {
- //判断该请求是否需要生成token
- $token = request() -> param('token');
- if($token == 'noUse'){
- return 'noToken';
- }
-
- //组装请求的数据为base64格式
- $data['model'] = request() -> param('model');
- $data['network'] = request() -> param('network');
- $network = request() -> param('network');
- $dataJson = request() -> param('data');
- $data['input'] = json_decode($dataJson);
- $data = json_encode($data,JSON_UNESCAPED_UNICODE);
- Log::info('参数标记: ' . $data);
- $data = base64_encode($data);
-
- //对请求的参数进行sm4加密
- $smIV = getSMIV();
- $config = [
- 'mode' => 'cbc',
- 'key' => commonPrivateKey(), // 16 字节二进制密钥
- 'iv' => $smIV, // 16 字节二进制 IV
- 'hash' => false
- ];
- $sm4 = new EvitSM4Encryption($config);
- $encryptedBinary = $sm4->encrypt($data);
- // 将二进制结果转换为 Base64
- $encryptedBase64 = base64_encode($encryptedBinary);
-
- //创建最终的含有sm4的iv的数据
- $modifiedData['encryptedBase64'] = $encryptedBase64;
- $modifiedData['smIV'] = $smIV;
- $modifiedData['publicKey'] = commonPublicKey();
- $modifiedData = json_encode($modifiedData,JSON_UNESCAPED_UNICODE);
- $modifiedData = base64_encode($modifiedData);
- // 将 '+' 替换为 '-','/' 替换为 '_'
- $modifiedData = strtr($modifiedData, '+/', '-_');
-
- //将加密的参数发送给开放平台,获取短令牌
- if($network == 1){
- $url = commonOpenURL().'/Apis/getToken';
- }
- if($network == 2){
- $url = commonOpenURLLocal().'/Apis/getToken';
- }
- $encryption['information'] = $modifiedData;
- $token = curlPost($url,$encryption);
- $token = stdClassObjToArray(json_decode($token));
- return $token['token'];
- }
-
- public function dataSM41111() {
- //判断该请求是否需要生成token
- //组装请求的数据为base64格式
- $data['model'] = "emoon-E1-13B";
- $data['network'] = "1";
- $network = "1";
- $dataJson = '{
- "input": [
- {
- "role": "assistant",
- "content": "你好,我是「医梦AI客户端」,我已集成多模型协作,我还能请求MCP智能体,请问有什么可以帮你?你可以直接和我「EMOON-E1」模型自然对话,也可以:打开内涵质控-触发端,模拟HIS/EMR触发「EMOON-E2」内涵质控。我会自动识别并匹配不同的模型一起工作奥~"
- },
- {
- "role": "user",
- "content": "你是什么模型?"
- }
- ],
- "model": "emoon-E1-13B",
- "network": "1"
- }';
- $data['input'] = json_decode($dataJson);
- dump($data);
- $data = json_encode($data,JSON_UNESCAPED_UNICODE);
- dump($data);
- Log::info('参数标记: ' . $data);
- $data = base64_encode($data);
- dump($data);
- //对请求的参数进行sm4加密
- $smIV = "1234567890123456";
- dump("smiv".$smIV);
- $config = [
- 'mode' => 'cbc',
- 'key' => "aX7pKf2LtQ9sVmZ3", // 16 字节二进制密钥
- 'iv' => $smIV, // 16 字节二进制 IV
- 'hash' => false
- ];
- dump("config 加密参数");
- dump($config);
- $sm4 = new EvitSM4Encryption($config);
- dump("sm4 加密结果:");
- dump($sm4);
- $encryptedBinary = $sm4->encrypt($data);
- dump("二进制".$encryptedBinary);
- // 将二进制结果转换为 Base64
- $encryptedBase64 = base64_encode($encryptedBinary);
- dump("二进制 base64:".$encryptedBase64);
- //创建最终的含有sm4的iv的数据
- $modifiedData['encryptedBase64'] = $encryptedBase64;
- $modifiedData['smIV'] = $smIV;
- $modifiedData['publicKey'] = "ZpX4mTkcNwL58qAhFD1bEy7vRCMzxgKQ";
- $modifiedData = json_encode($modifiedData,JSON_UNESCAPED_UNICODE);
- dump("最后的参数 :".$modifiedData);
- $modifiedData = base64_encode($modifiedData);
- dump("最后的参数 base64jiami:".$modifiedData);
- // 将 '+' 替换为 '-','/' 替换为 '_'
- $modifiedData = strtr($modifiedData, '+/', '-_');
- dump("最后的参数 换符号 :".$modifiedData);
-
- //将加密的参数发送给开放平台,获取短令牌
- if($network == 1){
- $url = commonOpenURL().'/Apis/getToken';
- }
- if($network == 2){
- $url = commonOpenURLLocal().'/Apis/getToken';
- }
- $encryption['information'] = $modifiedData;
- // $encryption['information'] = "ZXlKbGJtTnllWEIwWldSQ1lYTmxOalFpT2lKclkwUmpXa3REWTNORGF6Y3pSa041TkU5MWIxbDNhVFZaYVV0VE1HVllOMVJrVTFCME16ZEthbEZpTTBKRFNqVklaVk40Um1KdFYwVmtPREJVY1VScmFGRklaRGx4WjNGWk4zbDRZMDU2WW1WR1RHRTRlRzlYYmxScmVFSndTbXBFYTJONGVEZFhNRlI2Ukc5bGMwTklTbFpKYUU1bU1WRnFiMGxsZDNJd0t6VmFTak0zVm1ZMGFsQTNRVEZ1ZG1SQk5USmFlVlJMZDBwcGJITTNjbWhRVW5GWVNWUnhVR3BOT0hKaUwyRkthRlJITWpkek1YbDJZVWRMVkdWUVpTOHlVME56U1dWUlNHTnZjR2wyZWpkcGRWUlZNMWhXTUVOQk1HMURhbGhYTjJod1ExTnVTbkZsTVhCSWRXTjRXVlZaT1V4T2IwWkJWRzE2TlRRMmRXMXlNbkpwZWxGVFduaE5TV1E1ZGxGd2VYUm9XRGhHT1d4WlYzTTVUM2NyY2pkSlRsZHdiVVpzYm5FMWJWbDZlRVoyV21sMGJYZEpUaTlITm5seGNFaDJaVUZqZVVkNVkzQjZXbVpQYmtSUlNFVnNTbU5NVlc5R2IxbFFObWh6TkRoTk5TOVJhMVJIY2pKRWFFaElOaTlaSzFCMmIxTjVWMlpKTUZCYVFsUTVNMFpWUjNJM0x5dHBSMFprV2tJMlMxcFlWVGRtV0ZKbE1FaGhUSFU1Vld4aldrTXJhREF6VVRaclZ6Rm1iMVJxVm1sWldURTBWR0ZOVDI5S1JUZzVNeXRyV25jNGNuaE1hM1ZCVERoelR5dDVTbWRQYUhGelFuQndOVWswUVVwMFMwbFhkVzVOV2tndlJUZ3ZOR2RxY20xelRURm9aMnBTT1doMlkzaE1SSFIzVjJaU2NEVTBWakl3Wml0amJXMHdaRmN6WnpCQmVEaGlLMEpNVVRocVduVTFaamRSU2s1WFRFTmlRV2hKVVRCQlV6TnNaa3R6WldwNE1UZHBNa2hpTTFJMFZqUjFRMnRwSzBGSlozaEpTMDlWV2taSWJFTmpXRGR1VWt4M1kxaGthbUUxTkRRdllVdEZSRUpOWjNKMVRHdHJTVnBCY3pKcEwwa3djR2RCU0dOMllubzFjVUZKVUdKT2FYZEhWRGt4VEZkVVMyOVNRbk0wUzBkdE5YbzBiMmxCVjNGbk5GQmxNMjFYVEhGYWNWQkhUWE5JWkRKT2EwZEpiVnBwUTBKb2IwWnVVbTUwZW1ONGJFVkhVbFowVmxGcFRtSlFWMjk2VUdWNGVtMUhlVzVNU0ZsUkwxUmlOV2RMVFRBMGNYVlplbk5RYVRsUVMydHRhSEEyVkRSSVJGaG1hM1FyWkcxNFRqQmFXVTByT0VkbVlWaGtkM2hXVERrMU9HRmhNemQzTHpsQmFsWTJZVXBvUlRrNFprRk9XRU55TnpKRFoxTkplRXhJVm5GTmNIazFVbnBYY0RaTlF6Umxia3Q1UlhnNWIxaEVUbkJEVWxGRE9UVktZMHhMZWt4bVUzWnJLMUpMTkUxc1NEWklOV2N4TnpWS0swMXhPR3QzTVhZNGFuSm1PWE5MTkZaV1JrcERNSE5XUnpFMlZWRlpibGt6YkZGRGFqRlJjMDkyZVVWMk0wWkpTM2x2YUZWUFJYTkNZalo0YmxseWFTOW1keXN6VURkdE1tdG1lWFl5WkVWbmRWRlBNM0JIY0ZCNFpVZzFiWHBvVWxSQlBUMGlMQ0p6YlVsV0lqb2lNVEl6TkRVMk56ZzVNREV5TXpRMU5pSXNJbkIxWW14cFkwdGxlU0k2SWxwd1dEUnRWR3RqVG5kTU5UaHhRV2hHUkRGaVJYazNkbEpEVFhwNFowdFJJbjA9";
- $token = curlPost($url,$encryption);
- $token = stdClassObjToArray(json_decode($token));
- dump($token);
- return $token['token'];
- }
-
- //base64 encode处理json串
- public function dataSM4simple() {
- //判断该请求是否需要生成token
- $token = request() -> param('token');
- if($token == 'noUse'){
- return 'noToken';
- }
-
- //组装请求的数据为base64格式
- $data['model'] = request() -> param('model');
- $network = request() -> param('network');
- $dataJson = request() -> param('input');
- $PublicKey = request() -> param('PublicKey');
- $PrivateKey = request() -> param('PrivateKey');
- $ragId = request() -> param('ragId');
- if($network=="内网" || $network=="2"){
- $network=2;
- }
- elseif($network=="外网" || $network=="1" || $network=="公网"){
- $network=1;
- }
- elseif($network=="" ){
- return "网络状态不能为空";
- }
- else{
- return "请输入正确的网络状态,例如:内网、外网。";
- }
- if($PublicKey=="" ){
- return "公钥不能为空。";
- }
- if($PublicKey=="" ){
- return "私钥不能为空。";
- }
- if($data['model'] =="" ){
- return "模型不存在,请核对参数“model”的值!";
- }
- $data['network'] = $network;
- $data['input'] = json_decode($dataJson);
- $data = json_encode($data,JSON_UNESCAPED_UNICODE);
- Log::info('参数标记: ' . $data);
- $data = base64_encode($data);
-
- //对请求的参数进行sm4加密
- $smIV = getSMIV();
- $config = [
- 'mode' => 'cbc',
- 'key' => $PrivateKey, // 16 字节二进制密钥
- 'iv' => $smIV, // 16 字节二进制 IV
- 'hash' => false
- ];
- $sm4 = new EvitSM4Encryption($config);
- $encryptedBinary = $sm4->encrypt($data);
- // 将二进制结果转换为 Base64
- $encryptedBase64 = base64_encode($encryptedBinary);
-
- //创建最终的含有sm4的iv的数据
- $modifiedData['encryptedBase64'] = $encryptedBase64;
- $modifiedData['smIV'] = $smIV;
- $modifiedData['publicKey'] = $PublicKey;
- $modifiedData = json_encode($modifiedData,JSON_UNESCAPED_UNICODE);
- $modifiedData = base64_encode($modifiedData);
- // 将 '+' 替换为 '-','/' 替换为 '_'
- $modifiedData = strtr($modifiedData, '+/', '-_');
-
- //将加密的参数发送给开放平台,获取短令牌
- if($network == 1){
- $url = commonOpenURL().'/Apis/getToken';
- }
- if($network == 2){
- $url = commonOpenURLLocal().'/Apis/getToken';
- }
-
- $encryption['information'] = $modifiedData;
- $token = curlPost($url,$encryption);
- $token = stdClassObjToArray(json_decode($token));
- if($token['code'] == 0){
- return $token['message'];
- }
-
- $token = $token['token'];
- // $url = commonOpenURLSSE().'?token='.$token.'&ragId='.$ragId.'&mcpid=37';
- // $response = file_get_contents($url);
- $url = commonOpenURLHTTP();
-
- $dataHttp["token"] = $token;
- $dataHttp["mcpid"] = "37";
- $dataHttp["ragId"] = $ragId;
- $a = curlPost($url,$dataHttp);
- $RAGdata = [
- "username" => "test",
- "password" => "test123"
- ];
- // 调用时只需传递非 Content-Type/Accept 的 Header
- $headers = [
- 'Cache-Control: no-cache',
- 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
- ];
- $urlRAG = "http://192.168.1.8:6039/auth/login"; // 替换为实际 URL
-
- $id = curlPostRAG($urlRAG, $RAGdata, $headers);
-
- $token = $id; // 默认启用 JSON 模式
- $token = json_decode($token);
- $token = stdClassObjToArray($token);
- $token = $token['data']['token'];
- $urlsend = "http://192.168.10.36:6039/RocketMQ/send?";
- $headers = [
- "Authorization: Bearer " . $token,
- 'Content-Type: application/json'
- ];
- $datasend["message"] = "test";
- $response = curlPost($urlsend,$datasend,$headers,true);
- return $response;
- }
-
- public function testaaa(){
- $RAGdata = [
- "username" => "test",
- "password" => "test123"
- ];
- // 调用时只需传递非 Content-Type/Accept 的 Header
- $headers = [
- 'Cache-Control: no-cache',
- 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
- ];
- $urlRAG = "http://192.168.1.8:6039/auth/login"; // 替换为实际 URL
-
- $id = curlPostRAG($urlRAG, $RAGdata, $headers);
-
- $token = $id; // 默认启用 JSON 模式
- $token = json_decode($token);
- $token = stdClassObjToArray($token);
- $token = $token['data']['token'];
- $urlsend = "http://192.168.10.36:6039/RocketMQ/send";
- $headers = [
- "Authorization: Bearer " . $token,
- 'Content-Type: application/json'
- ];
- $datasend["message"] = "test";
- $response = curlPost($urlsend,$datasend,$headers,true);
- dump($response);
- if ($response === false) {
- return "发送消息失败,请检查 RocketMQ 服务是否正常";
- }
- return $response;
- }
- // //base64 encode处理json串
- public function options() {
- // $url = "http://221.224.213.226:15208/topic/device-tracking/message";
- // $postData = json_encode(["body" => "test"]);
-
- // $ch = curl_init();
- // curl_setopt($ch, CURLOPT_URL, $url);
- // curl_setopt($ch, CURLOPT_POST, true);
- // curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
- // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 必须添加
- // curl_setopt($ch, CURLOPT_HTTPHEADER, [
- // "Content-Type: application/json",
- // "Content-Length: " . strlen($postData)
- // ]);
-
- // // 调试设置
- // curl_setopt($ch, CURLOPT_VERBOSE, true);
- // $verbose = fopen('php://temp', 'w+');
- // curl_setopt($ch, CURLOPT_STDERR, $verbose);
-
- // // 超时设置(秒)
- // curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
- // curl_setopt($ch, CURLOPT_TIMEOUT, 10);
-
- // $response = curl_exec($ch);
- // $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
-
- // if (curl_errno($ch)) {
- // rewind($verbose);
- // $verboseLog = stream_get_contents($verbose);
- // die(
- // "cURL 错误: " . curl_error($ch) . "\n" .
- // "HTTP 状态码: " . $httpCode . "\n" .
- // "调试信息:\n" . $verboseLog
- // );
- // }
-
- // curl_close($ch);
-
- // if ($httpCode === 0) {
- // die("服务器接受连接但未返回有效 HTTP 响应");
- // }
- // 使用示例
- //
- // return $response;
- }
- //质控病例列表
- public function qualityControlTrigger_old() {
- $token = request()->param('token/a');
- // $token = array("53e6d2e6967a0a85240bbc30bfc9438c","462e791fdb6d6a270b9aa3f275370b8f");
- // 验证token是否有效
- $maprule['token'] = array('in', $token);
- $tokenrole = db('tokenrole')->where($maprule)->select();
-
- // //判断该请求是否需要生成token
- // $token = request() -> param('token');
-
- // return (json_encode($token,JSON_UNESCAPED_UNICODE));
- // //组装请求的数据为base64格式
- // $maprule['token'] = array('in', $token);
- // $tokenrole = db('tokenrole')->where($maprule)->select();
- $tokenrole =json_encode($tokenrole,JSON_UNESCAPED_UNICODE);
- return $tokenrole;
- }
-
- //质控病例列表
- public function qualityControlTrigger() {
- $token = request()->param('token/a');
-
- // $token = array("53e6d2e6967a0a85240bbc30bfc9438c","462e791fdb6d6a270b9aa3f275370b8f");
- // 验证token是否有效
- $maprule['token'] = array('in', $token);
- $tokenrole = db('tokenrole')->where($maprule)->select();
-
- // //判断该请求是否需要生成token
- // $token = request() -> param('token');
-
- // return (json_encode($token,JSON_UNESCAPED_UNICODE));
- // //组装请求的数据为base64格式
- // $maprule['token'] = array('in', $token);
- // $tokenrole = db('tokenrole')->where($maprule)->select();
- $tokenrole =json_encode($tokenrole,JSON_UNESCAPED_UNICODE);
- return $tokenrole;
- }
-
- public function test(){
- $ruleIdArray = array('RYJLXBS0013', 'RYJLXBS0012','RYJL0002', 'RYJLXX0001', 'RYJLZS0000', 'RYJLZS0001', 'RYJLZS0002', 'RYJLZS0003', 'RYJLZS0004', 'RYJLZS0005', 'RYJLXBS0000', 'RYJLXBS0001', 'RYJLXBS0002', 'RYJLXBS0003', 'RYJLXBS0004', 'RYJLXBS0005', 'RYJLXBS0006', 'RYJLXBS0007', 'RYJLXBS0008', 'RYJLXBS0009', 'RYJLXBS0010', 'RYJLXBS0011', 'RYJLJWS0000', 'RYJLJWS0001', 'RYJLJWS0002', 'RYJLJWS0003', 'RYJLJWS0004', 'RYJLJWS0005', 'RYJLJWS0006', 'RYJLJWS0007', 'RYJLJWS0009', 'RYJLJWS0010', 'RYJLJWS0011', 'RYJLGRS0000', 'RYJLHY0002', 'RYJLJZS0000', 'RYJLJZS0001', 'RYJLTGJC0000', 'RYJLTGJC0001', 'RYJLTGJC0002', 'RYJLTGJC0003', 'RYJLTGJC0004', 'RYJLTGJC0005', 'RYJLTGJC0006', 'RYJLTGJC0007', 'RYJLTGJC0008', 'RYJLZKJC0000', 'RYJLZKJC0001', 'RYJLFZJC0000', 'RYJLFZJC0001', 'RYJLFZJC0002', 'RYJLFZJC0003', 'RYJLFZJC0004', 'RYJLFZJC0007', 'RYJLFZJC0008', 'RYJLCBZD0000', 'RYJLCBZD0001', 'SCBC0000', 'SCBC0001', 'SCBC0003', 'SCBC0004', 'SCBC0005', 'RCBC0001', 'RCBC0003', 'RCBC0007', 'RCBC0011', 'RCBC0015', 'RCBC0019', 'RCBC0024', 'RCBC0025', 'RCBC0026', 'RCBC0027', 'RCBC0028', 'RCBC0038', 'RCBC0039', 'RCBC0044', 'CYJL0008', 'CYJL0009', 'CYJL0011', 'CYJL0012', 'HZJL0000', 'HZJL0001', 'HZJL0002', 'HZJL0003', 'HZJL0005', 'SQXJ0000', 'SQXJ0001', 'RCBC0040', 'RCBC0041');
- $maprule['ruleid'] = array('in', $ruleIdArray);
- $rulename = db('rulefinal')->where($maprule)->select();
- dump($rulename);
- exit;
- }
- //存储关键字字段
- public function listkey(){
- $token = request()->param('askInfoId');
- $typename = request()->param('ruleKeyword');
- // $token ="baa1a7148c13da1c7f8b74ca0bbe3154";
- // $typename = "ererre采纳不采纳";
- $result = preg_replace('/采纳不采纳.*$/', '', $typename);
- // echo $result;
- // exit;
- $maprule['token'] = array('eq', $token);
- $data["keywords"]=$result;
- $data["rulescore"]=1;
- db('tokenrole')->where($maprule)->update($data);
- return "seele";
- }
- //组装病理结果与分值
- public function ControlResultScore_old() {
- $token = request()->param('token/a');
- $typename = request()->param('typename');
- // $typename = "袁**-入院记录";
- // $token = array("d7d7b666cf7ae1890aa6ae3efd508dad","75c72b4f66eebda4bb835e74d2e050bc","f889944de8c4ebb4de2db82468140a29");
- // 验证token是否有效
- $maprule['token'] = array('in', $token);
- $maprule['typename'] = array('eq', $typename);
- $tokenrole = db('tokenrole')->where($maprule)->select();
- // return $tokenrole;
- $j = 0;
- $data["deductionrulescore"] = 100;
- for($i=0;$i<count($tokenrole);$i++){
- if(strpos($tokenrole[$i]["reply"], "【规则名称】") !== false){
- $j++;
- $data["reply"][$j]=$tokenrole[$i]["reply"];
- $data["rulescore"][$j] = $tokenrole[$i]["rulescore"];
- $data["deductionrulescore"] = $data["deductionrulescore"] - $tokenrole[$i]["rulescore"];
- $data["keywords"][$j] = $tokenrole[$i]["keywords"];
- $data["accept"][$j] = strlen($tokenrole[$i]["accept"]);
- $data["token"][$j] = $tokenrole[$i]["token"];
- }
- }
- $data["content"] = $tokenrole[0]["content"];
- $data =json_encode($data,JSON_UNESCAPED_UNICODE);
- return $data;
- }
-
- //组装病理结果与分值
- public function ControlResultScore() {
- $token = request()->param('token/a');
- $typename = request()->param('typename');
- // $typename = "袁**-入院记录";
- // $token = array("d7d7b666cf7ae1890aa6ae3efd508dad","75c72b4f66eebda4bb835e74d2e050bc","f889944de8c4ebb4de2db82468140a29");
- // 验证token是否有效
- $maprule['token'] = array('in', $token);
- $maprule['typename'] = array('eq', $typename);
- $tokenrole = db('tokenrole')->where($maprule)->select();
- // return $tokenrole;
- $j = 0;
- $data["deductionrulescore"] = 100;
- for($i=0;$i<count($tokenrole);$i++){
- if(strpos($tokenrole[$i]["reply"], "【规则名称】") !== false){
- $j++;
- $data["reply"][$j]=$tokenrole[$i]["reply"];
- $data["rulescore"][$j] = $tokenrole[$i]["rulescore"];
- $data["deductionrulescore"] = $data["deductionrulescore"] - $tokenrole[$i]["rulescore"];
- $data["keywords"][$j] = $tokenrole[$i]["keywords"];
- $data["accept"][$j] = strlen($tokenrole[$i]["accept"]);
- $data["token"][$j] = $tokenrole[$i]["token"];
- }
- }
- $data["content"] = $tokenrole[0]["content"];
- $data =json_encode($data,JSON_UNESCAPED_UNICODE);
- return $data;
- }
- //接收ws推送消息并转发给ws服务
- public function websocket(){
- $data['user'] = request() -> param('user');
- $data['name'] = request() -> param('name');
- $data['doc'] = request() -> param('doc');
- $data['token'] = request() -> param('token');
- $data['ragId'] = request() -> param('ragId');
- $data['typename'] = request() -> param('typename');
- $data['rule'] = request() -> param('rule');
- $data['ruleid'] = request() -> param('ruleid');
- if($data['user'] && $data['name'] && $data['doc'] && $data['token']){
- $url = commonWebsocket();
- $client = new Client($url);
- $client->text(json_encode($data,JSON_UNESCAPED_UNICODE));
- $client->close();
- $success['code'] = 0;
- $success['message'] = '客户端已成功接收消息,请至客户端页面确认。';
- return json($success);
- }
- else{
- $error['code'] = 1;
- $error['message'] = '请求参数不能为空,请核对请求参数。';
- return json($error);
- }
- }
-
- //定时更新当前状态。
- public function regularUpdate(){
- $timestamp = time();
- $timestamp = $timestamp - 5;
- $mapPat['updatetime'] = array('lt',$timestamp);
- $mapPat['strate'] = array('eq',1);
- $updateData["updatetime"] = time();
- $updateData["strate"] = 0;
- $name = db('client') -> where($mapPat) -> update($updateData);
- }
-
- }
|