修改展示逻辑优化

This commit is contained in:
huangdeliang 2021-06-12 11:05:37 +08:00
parent 45e0d59be0
commit 1a7baf0c20
2 changed files with 29 additions and 4 deletions

View File

@ -2,13 +2,16 @@ package com.stdiet.custom.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.stdiet.common.utils.DateUtils; import com.stdiet.common.utils.DateUtils;
import com.stdiet.common.utils.StringUtils;
import com.stdiet.common.utils.uuid.UUID; import com.stdiet.common.utils.uuid.UUID;
import com.stdiet.custom.domain.SysCustomer; import com.stdiet.custom.domain.SysCustomer;
import com.stdiet.custom.domain.SysServicesTopic; import com.stdiet.custom.domain.SysServicesTopic;
import com.stdiet.custom.domain.SysWxUserInfo;
import com.stdiet.custom.mapper.SysCustomerMapper; import com.stdiet.custom.mapper.SysCustomerMapper;
import com.stdiet.custom.mapper.SysServicesTopicMapper; import com.stdiet.custom.mapper.SysServicesTopicMapper;
import com.stdiet.custom.server.WebSocketServer; import com.stdiet.custom.server.WebSocketServer;
import com.stdiet.custom.service.ISysServicesTopicService; import com.stdiet.custom.service.ISysServicesTopicService;
import com.stdiet.custom.service.ISysWxUserInfoService;
import com.stdiet.custom.utils.WsUtils; import com.stdiet.custom.utils.WsUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -25,6 +28,9 @@ public class SysServicesTopicServiceImp implements ISysServicesTopicService {
@Autowired @Autowired
SysCustomerMapper sysCustomerMapper; SysCustomerMapper sysCustomerMapper;
@Autowired
ISysWxUserInfoService iSysWxUserInfoService;
@Override @Override
public List<SysServicesTopic> selectSysServicesTopicByUserIdAndRole(SysServicesTopic topic) { public List<SysServicesTopic> selectSysServicesTopicByUserIdAndRole(SysServicesTopic topic) {
return servicesTopicMapper.selectSysServicesTopicByUserIdAndRole(topic); return servicesTopicMapper.selectSysServicesTopicByUserIdAndRole(topic);
@ -90,10 +96,23 @@ public class SysServicesTopicServiceImp implements ISysServicesTopicService {
dataObj.put("count", counts.get(i).getCount()); dataObj.put("count", counts.get(i).getCount());
dataObj.put("data", topic); 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(); JSONObject msgObj = new JSONObject();
msgObj.put("type", WsUtils.WS_TYPE_MESSAGE_COUNT); msgObj.put("type", WsUtils.WS_TYPE_MESSAGE_COUNT);
msgObj.put("msg", "未读消息数"); msgObj.put("msg", "未读消息数");
msgObj.put("data", dataObj); msgObj.put("data", dataObj);
msgObj.put("customer", userObj);
WebSocketServer.sendInfo(msgObj.toJSONString(), counts.get(i).getUid()); WebSocketServer.sendInfo(msgObj.toJSONString(), counts.get(i).getUid());
} }
} catch (IOException e) { } catch (IOException e) {
@ -156,12 +175,15 @@ public class SysServicesTopicServiceImp implements ISysServicesTopicService {
List<SysServicesTopic> statusList = new ArrayList<>(); List<SysServicesTopic> statusList = new ArrayList<>();
SysServicesTopic dieticianStatus = new SysServicesTopic(); SysServicesTopic dieticianStatus = new SysServicesTopic();
dieticianStatus.setUid(String.valueOf(customer.getMainDietitian())); dieticianStatus.setUid(String.valueOf(customer.getMainDietitian()));
dieticianStatus.setRole("dietician");
statusList.add(dieticianStatus); statusList.add(dieticianStatus);
SysServicesTopic afterSaleStatus = new SysServicesTopic(); SysServicesTopic afterSaleStatus = new SysServicesTopic();
afterSaleStatus.setUid(String.valueOf(customer.getAfterDietitian())); afterSaleStatus.setUid(String.valueOf(customer.getAfterDietitian()));
afterSaleStatus.setRole("after_sale");
statusList.add(afterSaleStatus); statusList.add(afterSaleStatus);
SysServicesTopic dieticianAssistantStatus = new SysServicesTopic(); SysServicesTopic dieticianAssistantStatus = new SysServicesTopic();
dieticianAssistantStatus.setUid(String.valueOf(customer.getAssistantDietitian())); dieticianAssistantStatus.setUid(String.valueOf(customer.getAssistantDietitian()));
dieticianAssistantStatus.setRole("dietician_assistant");
statusList.add(dieticianAssistantStatus); statusList.add(dieticianAssistantStatus);
try { try {

View File

@ -178,11 +178,12 @@ export default {
this.updateUnreadCount({ this.updateUnreadCount({
msgUnreadCount: count, msgUnreadCount: count,
}); });
if (tData.uid === selCusId) { if (tData.uid === this.selCusId) {
this.fetchTopicListApi({ this.fetchTopicListApi({
fromUid: tData.uid, fromUid: tData.uid,
}); });
} else { } else {
const { customer } = data;
// //
const newCustomers = JSON.parse(JSON.stringify(this.customerList)); const newCustomers = JSON.parse(JSON.stringify(this.customerList));
const tarIdx = newCustomers.findIndex((obj) => obj.uid === tData.uid); const tarIdx = newCustomers.findIndex((obj) => obj.uid === tData.uid);
@ -190,10 +191,12 @@ export default {
const [tarCustomer] = newCustomers.splice(tarIdx, 1); const [tarCustomer] = newCustomers.splice(tarIdx, 1);
tarCustomer.read = 0; tarCustomer.read = 0;
newCustomers.splice(0, 0, tarCustomer); newCustomers.splice(0, 0, tarCustomer);
this.save({ } else {
customerList: newCustomers, newCustomers.splice(0, 0, customer);
});
} }
this.save({
customerList: newCustomers,
});
} }
} else if (data.type === keys.WS_TYPE_NEW_CUSTOMER_REPLY) { } else if (data.type === keys.WS_TYPE_NEW_CUSTOMER_REPLY) {
const { count, topicId, uid } = data.data; const { count, topicId, uid } = data.data;