|
@@ -4,6 +4,7 @@
|
|
|
const assert = require('assert');
|
|
|
const _ = require('lodash');
|
|
|
const { ObjectId } = require('mongoose').Types;
|
|
|
+const moment = require('moment');
|
|
|
const { CrudService } = require('naf-framework-mongoose/lib/service');
|
|
|
const { BusinessError, ErrorCode } = require('naf-core').Error;
|
|
|
|
|
@@ -13,6 +14,27 @@ class ChatService extends CrudService {
|
|
|
this.model = this.ctx.model.Chat;
|
|
|
}
|
|
|
|
|
|
+ async create(data) {
|
|
|
+ const { sendid, content, roomid } = data;
|
|
|
+ assert(sendid, '缺少发言人信息');
|
|
|
+ assert(roomid, '缺少房间信息');
|
|
|
+ assert(content, '缺少发言内容');
|
|
|
+ data.sendtime = moment().format('YYYY-MM-DD HH:mm:ss');
|
|
|
+ const res = await this.model.create(data);
|
|
|
+ // TODO MQ
|
|
|
+ const { mq } = this.ctx;
|
|
|
+ if (mq) {
|
|
|
+ const exchange = 'public_chat_' + roomid;
|
|
|
+ const parm = {
|
|
|
+ durable: true,
|
|
|
+ headers: {
|
|
|
+ userid: sendid,
|
|
|
+ } };
|
|
|
+ await mq.fanout(exchange, roomid, JSON.stringify(res), parm);
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
module.exports = ChatService;
|