满足条件开启功能推送,详细功能校验暂缺
This commit is contained in:
@@ -48,4 +48,39 @@ export class GmHandler {
|
||||
await EventRecordModel.deleteAccount(roleId);
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
async pushMessage(msg: { uid: number, serverId: number, eventName: string, message: string }, session: BackendSession) {
|
||||
let sid = session.get('sid');
|
||||
|
||||
let { uid, serverId, eventName, message } = msg;
|
||||
|
||||
let content = {};
|
||||
try {
|
||||
content = JSON.parse(message);
|
||||
} catch(e) {
|
||||
return resResult(STATUS.GM_JSON_FORMAT_ERR);
|
||||
}
|
||||
console.log(uid, serverId)
|
||||
let role = await RoleModel.findByUid(uid, serverId);
|
||||
if(!role) return resResult(STATUS.GM_ROLE_NOT_FOUND);
|
||||
let {roleId } = role;
|
||||
|
||||
let channelService = this.app.get('channelService');
|
||||
let channel = channelService.getChannel(roleId, true);
|
||||
let users = channel.getMembers();
|
||||
if (users.indexOf(roleId) === -1) {
|
||||
channel.add(roleId, sid);
|
||||
}
|
||||
|
||||
|
||||
let tsid = channel.getMember(roleId)['sid'];
|
||||
channelService.pushMessageByUids(eventName, {
|
||||
msg: content
|
||||
}, [{
|
||||
uid: roleId,
|
||||
sid: tsid
|
||||
}]);
|
||||
return resResult(STATUS.SUCCESS, { msg: content });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user