提交 f9e737c9 编写于 作者: DCloud_JSON's avatar DCloud_JSON

更新 当conversation_grade配置的值不符合预期则抛出异常

上级 eea6f5d9
......@@ -288,8 +288,38 @@ async function _checkConversationGrade({
to_uid,
group_id,
}) {
if(!conversation_grade){
return true
}
/** 读取配置的对话等级,校验是否有权发送消息
* 0 - 任何人可以发起会话
* 100 - 客服 or 好友或者群成员
* 200 - 必须是好友或者群成员
* 300 - 仅限:系统管理员参与的、群成员与群管理员,发起私聊
**/
switch (conversation_grade) {
case 100:
// 客服 or 好友或者群成员
try {
await chatToCustomerService()
} catch (error) {
console.error(error)
await chatToFriendOrGroupMember()
}
break;
case 200:
// 必须是好友或者群成员
await chatToFriendOrGroupMember()
break;
case 300:
// 放到创建会话时处理
break;
default:
throw new Error('未知的对话等级,配置conversation_grade的值不正确')
break;
}
// 客服模式下,如果配置的客服 id。则只能向客服发起会话
let chatToCustomerService = async () => {
async function chatToCustomerService (){
const customer_service_uids = uniImConfig.config('customer_service_uids') || []
if (typeof customer_service_uids == 'string') {
customer_service_uids = [customer_service_uids]
......@@ -303,7 +333,7 @@ async function _checkConversationGrade({
}
// 只能是好友关系,或者群成员才能发送
let chatToFriendOrGroupMember = async () => {
async function chatToFriendOrGroupMember(){
if (group_id) {
let {
data: [has]
......@@ -332,32 +362,6 @@ async function _checkConversationGrade({
}
return true
}
/** 读取配置的对话等级,校验是否有权发送消息
* 0 - 任何人可以发起会话
* 100 - 客服 or 好友或者群成员
* 200 - 必须是好友或者群成员
**/
switch (conversation_grade) {
case 0:
// 任何人可以发起会话,不校验
break;
case 100:
// 客服 or 好友或者群成员
try {
await chatToCustomerService()
} catch (error) {
console.error(error)
await chatToFriendOrGroupMember()
}
break;
case 200:
// 必须是好友或者群成员
await chatToFriendOrGroupMember()
break;
default:
break;
}
}
function _getLastMsgNote({
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册