1
This commit is contained in:
parent
7779808456
commit
330421fd00
@ -274,6 +274,18 @@ class CallBackController extends AbstractController
|
|||||||
return $this->ImErrorReturn("消息内容错误,缺少MsgBody");
|
return $this->ImErrorReturn("消息内容错误,缺少MsgBody");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 验证消息内容类型
|
||||||
|
if (empty($request_params['MsgBody'][0]['MsgType'])){
|
||||||
|
Log::getInstance()->error("Im回调数据处理失败:缺少MsgType");
|
||||||
|
return $this->ImErrorReturn("消息内容错误,缺少MsgType");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证消息内容详情
|
||||||
|
if (empty($request_params['MsgBody'][0]['MsgContent'])){
|
||||||
|
Log::getInstance()->error("Im回调数据处理失败:缺少MsgContent");
|
||||||
|
return $this->ImErrorReturn("消息内容错误,缺少MsgContent");
|
||||||
|
}
|
||||||
|
|
||||||
// 验证接收方user_id
|
// 验证接收方user_id
|
||||||
if (empty($request_params['To_Account'])){
|
if (empty($request_params['To_Account'])){
|
||||||
Log::getInstance()->error("Im回调数据处理失败:接收用户错误");
|
Log::getInstance()->error("Im回调数据处理失败:接收用户错误");
|
||||||
@ -340,14 +352,14 @@ class CallBackController extends AbstractController
|
|||||||
$data['message_seq'] = $request_params['MsgSeq'];
|
$data['message_seq'] = $request_params['MsgSeq'];
|
||||||
$data['message_send_result'] = $message_send_result ?? 0;
|
$data['message_send_result'] = $message_send_result ?? 0;
|
||||||
$data['send_error_info'] = $request_params['ErrorInfo'];
|
$data['send_error_info'] = $request_params['ErrorInfo'];
|
||||||
$data['message_type'] = $request_params['MsgBody'][0]['MsgType'] ?? "未定义";
|
$data['message_type'] = $request_params['MsgBody'][0]['MsgType'];
|
||||||
|
|
||||||
$data['is_system'] = $is_system;
|
$data['is_system'] = $is_system;
|
||||||
if (!empty($order_inquiry_id)){
|
if (!empty($order_inquiry_id)){
|
||||||
$data['order_inquiry_id'] = $order_inquiry_id;
|
$data['order_inquiry_id'] = $order_inquiry_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$message_content = $request_params['MsgBody'][0]['MsgContent'] ?? "";
|
$message_content = $request_params['MsgBody'][0]['MsgContent'];
|
||||||
$data['message_content'] = json_encode($message_content,JSON_UNESCAPED_UNICODE);
|
$data['message_content'] = json_encode($message_content,JSON_UNESCAPED_UNICODE);
|
||||||
$data['message_custom_content'] = $request_params['CloudCustomData'] ?? "";
|
$data['message_custom_content'] = $request_params['CloudCustomData'] ?? "";
|
||||||
$message = \App\Model\Message::addMessage($data);
|
$message = \App\Model\Message::addMessage($data);
|
||||||
@ -365,7 +377,9 @@ class CallBackController extends AbstractController
|
|||||||
$data['patient_age'] = $order_inquiry['patient_age'];
|
$data['patient_age'] = $order_inquiry['patient_age'];
|
||||||
$data['inquiry_status'] = $order_inquiry['inquiry_status'];
|
$data['inquiry_status'] = $order_inquiry['inquiry_status'];
|
||||||
$data['message_send_time'] = $request_params['RequestTime'];
|
$data['message_send_time'] = $request_params['RequestTime'];
|
||||||
$data['last_message_content'] = $request_params['MsgBody'][0]['MsgContent'] ?? "";
|
$data['message_seq'] = $request_params['MsgSeq'];
|
||||||
|
$data['message_type'] = $request_params['MsgBody'][0]['MsgType'];
|
||||||
|
$data['last_message_content'] = $request_params['MsgBody'][0]['MsgContent'];
|
||||||
|
|
||||||
$imService = new ImService();
|
$imService = new ImService();
|
||||||
$imService->addRecentContactRecordCache($order_inquiry['doctor_id'],$order_inquiry['inquiry_type'],$order_inquiry['user_id'],$data);
|
$imService->addRecentContactRecordCache($order_inquiry['doctor_id'],$order_inquiry['inquiry_type'],$order_inquiry['user_id'],$data);
|
||||||
|
|||||||
@ -149,7 +149,7 @@ class UserController extends AbstractController
|
|||||||
|
|
||||||
// 发送消息
|
// 发送消息
|
||||||
$arg = array();
|
$arg = array();
|
||||||
$arg['From_Account'] = "10000"; // 发送方user_id 如系统发送,无需填写
|
$arg['From_Account'] = "10002"; // 发送方user_id 如系统发送,无需填写
|
||||||
$arg['To_Account'] = "123456"; // 接收方user_id
|
$arg['To_Account'] = "123456"; // 接收方user_id
|
||||||
$arg['ForbidCallbackControl'] = ['ForbidBeforeSendMsgCallback'];
|
$arg['ForbidCallbackControl'] = ['ForbidBeforeSendMsgCallback'];
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ class UserController extends AbstractController
|
|||||||
[
|
[
|
||||||
"MsgType" => "TIMTextElem",
|
"MsgType" => "TIMTextElem",
|
||||||
"MsgContent" => [
|
"MsgContent" => [
|
||||||
"Text" => "测试消息22",
|
"Text" => "测试消息33",
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|||||||
@ -8,6 +8,7 @@ use App\Request\DoctorAuthRequest;
|
|||||||
use App\Request\UserDoctorRequest;
|
use App\Request\UserDoctorRequest;
|
||||||
use App\Services\DoctorAuthService;
|
use App\Services\DoctorAuthService;
|
||||||
use App\Services\DoctorInquiryService;
|
use App\Services\DoctorInquiryService;
|
||||||
|
use App\Services\ImService;
|
||||||
use App\Services\UserDoctorService;
|
use App\Services\UserDoctorService;
|
||||||
use Extend\TencentIm\Account;
|
use Extend\TencentIm\Account;
|
||||||
use Hyperf\Amqp\Producer;
|
use Hyperf\Amqp\Producer;
|
||||||
@ -309,6 +310,19 @@ class UserDoctorController extends AbstractController
|
|||||||
*/
|
*/
|
||||||
public function getDoctorMessageList(): ResponseInterface
|
public function getDoctorMessageList(): ResponseInterface
|
||||||
{
|
{
|
||||||
|
// $data['order_inquiry_id'] = 3;
|
||||||
|
// $data['patient_name'] = "测试用户3";
|
||||||
|
// $data['patient_sex'] = 1;
|
||||||
|
// $data['patient_age'] = 19;
|
||||||
|
// $data['inquiry_status'] = 1;
|
||||||
|
// $data['message_send_time'] = 10000;
|
||||||
|
// $data['message_seq'] = 101;
|
||||||
|
// $data['last_message_content'] = "";
|
||||||
|
//
|
||||||
|
// $imService = new ImService();
|
||||||
|
// $imService->addRecentContactRecordCache("491925054779883520",2,"3",$data);
|
||||||
|
|
||||||
|
|
||||||
$request = $this->container->get(UserDoctorRequest::class);
|
$request = $this->container->get(UserDoctorRequest::class);
|
||||||
$request->scene('getDoctorMessageList')->validateResolved();
|
$request->scene('getDoctorMessageList')->validateResolved();
|
||||||
|
|
||||||
|
|||||||
@ -1339,10 +1339,26 @@ class UserDoctorService extends BaseService
|
|||||||
$message_inquiry_type = $this->request->input('message_inquiry_type');
|
$message_inquiry_type = $this->request->input('message_inquiry_type');
|
||||||
|
|
||||||
$redis_key = "recentContact" . $user_info['client_user_id'] . $message_inquiry_type;
|
$redis_key = "recentContact" . $user_info['client_user_id'] . $message_inquiry_type;
|
||||||
dump($redis_key);
|
|
||||||
$redis = $this->container->get(Redis::class);
|
$redis = $this->container->get(Redis::class);
|
||||||
$result = $redis->hKeys($redis_key);
|
$result = $redis->hVals($redis_key);
|
||||||
dump($result);
|
if (empty($result)){
|
||||||
|
return success();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($result as &$item){
|
||||||
|
$item = json_decode($item,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取 message_send_time 和 message_seq 两个字段的值,分别存储在不同的数组中
|
||||||
|
foreach ($result as $key => $row) {
|
||||||
|
$messageSendTime[$key] = $row['message_send_time'];
|
||||||
|
$messageSeq[$key] = $row['message_seq'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通过 array_multisort 函数对两个字段进行排序
|
||||||
|
// 优先按照 message_send_time 排序,如果 message_send_time 相同,则按照 message_seq 排序
|
||||||
|
array_multisort($messageSendTime, SORT_DESC, $messageSeq, SORT_DESC, $result);
|
||||||
|
|
||||||
return success($result);
|
return success($result);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user