From 1a7baf0c20f92d41294fba11dde40e92f7e256a5 Mon Sep 17 00:00:00 2001 From: huangdeliang 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 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 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;