44 lines
1.7 KiB
JavaScript
44 lines
1.7 KiB
JavaScript
// schema扩展相关文档请参阅:https://uniapp.dcloud.net.cn/uniCloud/jql-schema-ext.html
|
||
const db = uniCloud.database();
|
||
module.exports = {
|
||
trigger: {
|
||
async beforeRead({clientInfo,where,userInfo}){
|
||
// console.log('where',where);
|
||
const {conversation_id,to_uid} = where
|
||
if(conversation_id || to_uid){
|
||
if(to_uid == userInfo.uid){
|
||
//查发给当前用户的数据
|
||
}else if(conversation_id){
|
||
// console.log('conversation_id',conversation_id);
|
||
const dbJQL = uniCloud.databaseForJQL({
|
||
clientInfo,
|
||
skipTrigger: true
|
||
})
|
||
|
||
//判断当前用户id是否有这个会话,否则无权接收此消息
|
||
let {data:conversations} = await dbJQL.collection('uni-im-conversation')
|
||
.where(`"id" == "${conversation_id}" && "user_id" == $cloudEnv_uid`)
|
||
.get()
|
||
// console.log('conversations',conversations);
|
||
if(conversations.length === 0){
|
||
throw new Error('会话id无效,或此会话你无权服务,即:user_id不等于当前用户')
|
||
}
|
||
// if(conversations[0].type == 2){ //2是群聊
|
||
// let {group_id} = conversations[0]
|
||
// let res = await dbJQL.collection('uni-im-group-member')
|
||
// .where(`"group_id" == "${group_id}" && "user_id" == $cloudEnv_uid`)
|
||
// .get()
|
||
// if(res.data.length == 0){
|
||
// throw new Error('不是此群人员,不能读取')
|
||
// }
|
||
// }
|
||
}else{
|
||
throw new Error('uni-im-msg触发器:查询条件会话id或者to_uid错误')
|
||
}
|
||
}else{
|
||
throw new Error('触发器限制了,查询条件必须包含会话id或者to_uid。如果要增加其他查询方式,请自己扩充')
|
||
}
|
||
}
|
||
}
|
||
}
|