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 10496bdd3..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 { @@ -170,6 +192,7 @@ public class SysServicesTopicServiceImp implements ISysServicesTopicService { JSONObject dataObj = new JSONObject(); dataObj.put("count", counts.get(i).getCount()); dataObj.put("topicId", topic.getTopicId()); + dataObj.put("uid", topic.getFromUid()); JSONObject msgObj = new JSONObject(); msgObj.put("type", WsUtils.WS_TYPE_NEW_CUSTOMER_REPLY); diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysServicesTopicMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysServicesTopicMapper.xml index 02171af65..272a804dc 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysServicesTopicMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysServicesTopicMapper.xml @@ -36,8 +36,8 @@ ) AS status LEFT JOIN (SELECT topic_id, uid, del_flag FROM sys_services_topic ) AS topic USING(topic_id) WHERE del_flag = 0 - ORDER BY `read` ASC, update_time DESC ) AS userList GROUP BY uid + ORDER BY `read` ASC, update_time DESC