1
This commit is contained in:
parent
7779808456
commit
330421fd00
@ -274,6 +274,18 @@ class CallBackController extends AbstractController
|
||||
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
|
||||
if (empty($request_params['To_Account'])){
|
||||
Log::getInstance()->error("Im回调数据处理失败:接收用户错误");
|
||||
@ -340,14 +352,14 @@ class CallBackController extends AbstractController
|
||||
$data['message_seq'] = $request_params['MsgSeq'];
|
||||
$data['message_send_result'] = $message_send_result ?? 0;
|
||||
$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;
|
||||
if (!empty($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_custom_content'] = $request_params['CloudCustomData'] ?? "";
|
||||
$message = \App\Model\Message::addMessage($data);
|
||||
@ -365,7 +377,9 @@ class CallBackController extends AbstractController
|
||||
$data['patient_age'] = $order_inquiry['patient_age'];
|
||||
$data['inquiry_status'] = $order_inquiry['inquiry_status'];
|
||||
$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->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['From_Account'] = "10000"; // 发送方user_id 如系统发送,无需填写
|
||||
$arg['From_Account'] = "10002"; // 发送方user_id 如系统发送,无需填写
|
||||
$arg['To_Account'] = "123456"; // 接收方user_id
|
||||
$arg['ForbidCallbackControl'] = ['ForbidBeforeSendMsgCallback'];
|
||||
|
||||
@ -157,7 +157,7 @@ class UserController extends AbstractController
|
||||
[
|
||||
"MsgType" => "TIMTextElem",
|
||||
"MsgContent" => [
|
||||
"Text" => "测试消息22",
|
||||
"Text" => "测试消息33",
|
||||
],
|
||||
]
|
||||
];
|
||||
|
||||
@ -8,6 +8,7 @@ use App\Request\DoctorAuthRequest;
|
||||
use App\Request\UserDoctorRequest;
|
||||
use App\Services\DoctorAuthService;
|
||||
use App\Services\DoctorInquiryService;
|
||||
use App\Services\ImService;
|
||||
use App\Services\UserDoctorService;
|
||||
use Extend\TencentIm\Account;
|
||||
use Hyperf\Amqp\Producer;
|
||||
@ -309,6 +310,19 @@ class UserDoctorController extends AbstractController
|
||||
*/
|
||||
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->scene('getDoctorMessageList')->validateResolved();
|
||||
|
||||
|
||||
@ -1339,10 +1339,26 @@ class UserDoctorService extends BaseService
|
||||
$message_inquiry_type = $this->request->input('message_inquiry_type');
|
||||
|
||||
$redis_key = "recentContact" . $user_info['client_user_id'] . $message_inquiry_type;
|
||||
dump($redis_key);
|
||||
|
||||
$redis = $this->container->get(Redis::class);
|
||||
$result = $redis->hKeys($redis_key);
|
||||
dump($result);
|
||||
$result = $redis->hVals($redis_key);
|
||||
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);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user