From 1a7baf0c20f92d41294fba11dde40e92f7e256a5 Mon Sep 17 00:00:00 2001
From: huangdeliang <huangdeliang@skieer.com>
Date: Sat, 12 Jun 2021 11:05:37 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B1=95=E7=A4=BA=E9=80=BB?=
 =?UTF-8?q?=E8=BE=91=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../impl/SysServicesTopicServiceImp.java      | 22 +++++++++++++++++++
 .../custom/message/messageBrowser/index.vue   | 11 ++++++----
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysServicesTopicServiceImp.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysServicesTopicServiceImp.java
index fbc57d652..c8f2836e2 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysServicesTopicServiceImp.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysServicesTopicServiceImp.java
@@ -2,13 +2,16 @@ package com.stdiet.custom.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.stdiet.common.utils.DateUtils;
+import com.stdiet.common.utils.StringUtils;
 import com.stdiet.common.utils.uuid.UUID;
 import com.stdiet.custom.domain.SysCustomer;
 import com.stdiet.custom.domain.SysServicesTopic;
+import com.stdiet.custom.domain.SysWxUserInfo;
 import com.stdiet.custom.mapper.SysCustomerMapper;
 import com.stdiet.custom.mapper.SysServicesTopicMapper;
 import com.stdiet.custom.server.WebSocketServer;
 import com.stdiet.custom.service.ISysServicesTopicService;
+import com.stdiet.custom.service.ISysWxUserInfoService;
 import com.stdiet.custom.utils.WsUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -25,6 +28,9 @@ public class SysServicesTopicServiceImp implements ISysServicesTopicService {
     @Autowired
     SysCustomerMapper sysCustomerMapper;
 
+    @Autowired
+    ISysWxUserInfoService iSysWxUserInfoService;
+
     @Override
     public List<SysServicesTopic> selectSysServicesTopicByUserIdAndRole(SysServicesTopic topic) {
         return servicesTopicMapper.selectSysServicesTopicByUserIdAndRole(topic);
@@ -90,10 +96,23 @@ public class SysServicesTopicServiceImp implements ISysServicesTopicService {
                     dataObj.put("count", counts.get(i).getCount());
                     dataObj.put("data", topic);
 
+                    JSONObject userObj = new JSONObject();
+                    SysWxUserInfo userInfo = iSysWxUserInfoService.selectSysWxUserInfoByCusId(Long.parseLong(customerId));
+                    if (!StringUtils.isNull(userInfo)) {
+                        userObj.put("avatar", userInfo.getAvatarUrl());
+                    }
+                    userObj.put("name", customer.getName());
+                    userObj.put("create_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
+                    userObj.put("update_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
+                    userObj.put("read", 0);
+                    userObj.put("uid", customerId);
+                    userObj.put("role", "customer");
+
                     JSONObject msgObj = new JSONObject();
                     msgObj.put("type", WsUtils.WS_TYPE_MESSAGE_COUNT);
                     msgObj.put("msg", "未读消息数");
                     msgObj.put("data", dataObj);
+                    msgObj.put("customer", userObj);
                     WebSocketServer.sendInfo(msgObj.toJSONString(), counts.get(i).getUid());
                 }
             } catch (IOException e) {
@@ -156,12 +175,15 @@ public class SysServicesTopicServiceImp implements ISysServicesTopicService {
         List<SysServicesTopic> statusList = new ArrayList<>();
         SysServicesTopic dieticianStatus = new SysServicesTopic();
         dieticianStatus.setUid(String.valueOf(customer.getMainDietitian()));
+        dieticianStatus.setRole("dietician");
         statusList.add(dieticianStatus);
         SysServicesTopic afterSaleStatus = new SysServicesTopic();
         afterSaleStatus.setUid(String.valueOf(customer.getAfterDietitian()));
+        afterSaleStatus.setRole("after_sale");
         statusList.add(afterSaleStatus);
         SysServicesTopic dieticianAssistantStatus = new SysServicesTopic();
         dieticianAssistantStatus.setUid(String.valueOf(customer.getAssistantDietitian()));
+        dieticianAssistantStatus.setRole("dietician_assistant");
         statusList.add(dieticianAssistantStatus);
 
         try {
diff --git a/stdiet-ui/src/views/custom/message/messageBrowser/index.vue b/stdiet-ui/src/views/custom/message/messageBrowser/index.vue
index 76b44b5aa..306e58c52 100644
--- a/stdiet-ui/src/views/custom/message/messageBrowser/index.vue
+++ b/stdiet-ui/src/views/custom/message/messageBrowser/index.vue
@@ -178,11 +178,12 @@ export default {
         this.updateUnreadCount({
           msgUnreadCount: count,
         });
-        if (tData.uid === selCusId) {
+        if (tData.uid === this.selCusId) {
           this.fetchTopicListApi({
             fromUid: tData.uid,
           });
         } else {
+          const { customer } = data;
           // 调整用户列表顺序
           const newCustomers = JSON.parse(JSON.stringify(this.customerList));
           const tarIdx = newCustomers.findIndex((obj) => obj.uid === tData.uid);
@@ -190,10 +191,12 @@ export default {
             const [tarCustomer] = newCustomers.splice(tarIdx, 1);
             tarCustomer.read = 0;
             newCustomers.splice(0, 0, tarCustomer);
-            this.save({
-              customerList: newCustomers,
-            });
+          } else {
+            newCustomers.splice(0, 0, customer);
           }
+          this.save({
+            customerList: newCustomers,
+          });
         }
       } else if (data.type === keys.WS_TYPE_NEW_CUSTOMER_REPLY) {
         const { count, topicId, uid } = data.data;