Browse Source

Merge branch 'master' of http://git.cc-lotus.info/service-platform/service-live

liuyu 5 years ago
parent
commit
e2a8415b4e

+ 14 - 2
app/controller/.personchat.js

@@ -2,7 +2,9 @@ module.exports = {
   create: {
     requestBody: [
       "!sender_id",
+      "sender_name",
       "!receiver_id",
+      "receiver_name",
       "!content",
       "!personroom_id",
       "status",
@@ -16,7 +18,9 @@ module.exports = {
     params: ["!id"],
     requestBody: [
       "sender_id",
+      "sender_name",
       "receiver_id",
+      "receiver_name",
       "content",
       "personroom_id",
       "status",
@@ -30,13 +34,21 @@ module.exports = {
   },
   index: {
     parameters: {
-      query: ["sender_id", "receiver_id", "content", "personroom_id", "status"],
+      query: [
+        "sender_id",
+        "sender_name",
+        "receiver_id",
+        "receiver_name",
+        "content",
+        "personroom_id",
+        "status",
+      ],
     },
     service: "query",
     options: {
       query: ["skip", "limit"],
       sort: ["meta.createdAt"],
-      desc: true,
+      asc: true,
       count: true,
     },
   },

+ 1 - 1
app/controller/personroom.js

@@ -9,7 +9,7 @@ const { CrudController } = require('naf-framework-mongoose/lib/controller');
 class PersonroomController extends Controller {
   constructor(ctx) {
     super(ctx);
-    this.service = this.ctx.service.room;
+    this.service = this.ctx.service.personroom;
   }
 }
 

+ 4 - 1
app/model/personchat.js

@@ -4,10 +4,13 @@ const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
 
 const Personchat = {
   sender_id: { type: String, required: true, maxLength: 200 }, // 发送人id
+  sender_name: { type: String, required: false, maxLength: 200 }, // 发送人名字
   receiver_id: { type: String, required: true, maxLength: 200 }, // 接收人id
+  receiver_name: { type: String, required: false, maxLength: 200 }, // 接收人名字
   personroom_id: { type: String, required: true, maxLength: 200 }, // 聊天房间id
   content: { type: String, required: true, maxLength: 1000 }, // 发言内容
-  status: { type: String, required: false, maxLength: 100, default: '0' }, // 状态,0-未读,1-已读
+  send_time: { type: String, required: true, maxLength: 100 }, // 发言时间:年月日时分秒
+  status: { type: String, required: false, maxLength: 100, default: "0" }, // 状态,0-未读,1-已读
 };
 const schema = new Schema(Personchat, { toJSON: { virtuals: true } });
 schema.index({ id: 1 });

+ 6 - 2
app/service/personchat.js

@@ -5,22 +5,26 @@ const assert = require('assert');
 // const { ObjectId } = require('mongoose').Types;
 const { CrudService } = require('naf-framework-mongoose/lib/service');
 // const { BusinessError, ErrorCode } = require('naf-core').Error;
-// const moment = require('moment');
+const moment = require('moment');
 class PersonchatService extends CrudService {
   constructor(ctx) {
     super(ctx, 'chat');
     this.model = this.ctx.model.Personchat;
   }
-  async create(query, { sender_id, receiver_id, content, personroom_id }) {
+  async create(query, { sender_id, sender_name, receiver_id, receiver_name, content, personroom_id }) {
     assert(sender_id, '缺少发送人信息');
     assert(content, '缺少发言内容');
     assert(receiver_id, '缺少接收人信息');
     assert(personroom_id, '缺少聊天房间信息');
+    const send_time = moment().format("YYYY-MM-DD HH:mm:ss");
     const res = await this.model.create({
       sender_id,
+      sender_name,
       receiver_id,
+      receiver_name,
       content,
       personroom_id,
+      send_time,
     });
     // TODO MQ
     const { mq } = this.ctx;

+ 1 - 0
app/service/personroom.js

@@ -21,6 +21,7 @@ class PersonroomService extends CrudService {
     let res = await this.model.findOne({ buyer_id, seller_id });
     if (!res) res = await this.model.create({ buyer_id, seller_id, buyer_name, seller_name });
     // TODO MQ
+    //这个地方不应该有MQ;买家在请求完房间号后订阅MQ;卖家应该在自己进入中台管理时订阅MQ,且订阅的应该是这个人是否有未读消息
     const { mq } = this.ctx;
     if (mq) {
       const exchange = 'person_room';