新增im消息回调时推送订阅消息

This commit is contained in:
2023-09-25 10:36:22 +08:00
parent e41253d65d
commit 77dd5c9331
3 changed files with 209 additions and 263 deletions
+74 -1
View File
@@ -755,7 +755,6 @@ class UserService extends BaseService
return success();
}
/**
* 通过user_id获取用户openid
* @param string|int $user_id
@@ -835,4 +834,78 @@ class UserService extends BaseService
return $avatar;
}
/**
* 用户im消息通知
* @param int|string $user_id
* @param string|int $order_inquiry_id
* @param array $msg_body
* @return bool
*/
public function userImMessageNotice(int|string $user_id,string|int $order_inquiry_id,array $msg_body): bool
{
try {
// 获取用户数据
$params = array();
$params['user_id'] = $user_id;
$user = User::getOne($params);
if (empty($user)){
return false;
}
// 获取用户配置
$params = array();
$params['user_id'] = $user['user_id'];
$user_system = UserSystem::getOne($params);
if (empty($user_system)){
return false;
}
$message = "您有一条新的问诊消息";
// 判断消息类型
if (isset($msg_body[0]['MsgType'])){
switch ($msg_body[0]['MsgType']) {
case 'TIMLocationElem':
$message = "地理位置";
break;
case 'TIMFaceElem':
$message = "表情消息";
break;
case 'TIMSoundElem':
$message = "语音消息";
break;
case 'TIMImageElem':
$message = "图像消息";
break;
case 'TIMFileElem':
$message = "文件消息";
break;
case 'TIMTextElem':
if (isset($msg_body[0]['MsgContent']['Text'])){
$message = $msg_body[0]['MsgContent']['Text'];
}
break;
default:
// code...
break;
}
}
$MessagePush = new MessagePush($user_id, $order_inquiry_id);
if ($user['user_type'] == 1){
// 患者
$MessagePush->patientImMessageNotice($message);
} elseif ($user['user_type'] == 2){
// 医师
$MessagePush->doctorImMessageNotice($message);
}else{
return false;
}
}catch (\Throwable $e){
return false;
}
return true;
}
}