lrf 2 年之前
父节点
当前提交
40bf1691c6
共有 2 个文件被更改,包括 7 次插入3 次删除
  1. 4 2
      src/controller/chatRecord.controller.ts
  2. 3 1
      src/socket/ws.controller.ts

+ 4 - 2
src/controller/chatRecord.controller.ts

@@ -20,6 +20,8 @@ import { RoomService } from '../service/room.service';
 import get = require('lodash/get');
 import { MqSender } from '../service/mq/mqSender.service';
 import { WsSocketController } from '../socket/ws.controller';
+import { Types } from 'mongoose';
+const ObjectId = Types.ObjectId;
 @ApiTags(['聊天记录'])
 @Controller('/chatRecord')
 export class ChatRecordController extends BaseController {
@@ -70,9 +72,9 @@ export class ChatRecordController extends BaseController {
     await this.roomService.updateOne(data.room, rd);
     const room = await this.roomService.fetch(data.room);
     let receiver;
-    if (get(room, 'customer') === get(data, 'speaker')) receiver = get(room, 'shop._id');
+    if (new ObjectId(get(room, 'customer._id')).equals(get(data, 'speaker'))) receiver = get(room, 'shop._id');
     else receiver = get(room, 'customer._id');
-    await this.ws.toSend({ ...result, type: 'chat' }, receiver);
+    await this.ws.toSend({ ...JSON.parse(JSON.stringify(result)), type: 'chat' }, receiver);
     return result;
   }
   @Get('/')

+ 3 - 1
src/socket/ws.controller.ts

@@ -4,6 +4,8 @@ import * as http from 'http';
 import get = require('lodash/get');
 import { Application } from '@midwayjs/ws';
 import last = require('lodash/last');
+import { Types } from 'mongoose';
+const ObjectId = Types.ObjectId
 @WSController('*/ws/*')
 export class WsSocketController {
   @Inject()
@@ -60,7 +62,7 @@ export class WsSocketController {
    */
   getClient(token: string) {
     const clients = this.getClients();
-    const client = clients.find(f => f.token === token);
+    const client = clients.find(f => new ObjectId(f.token).equals(token));
     return client;
   }
 }