|
@@ -15,6 +15,7 @@ import com.dragon.tj.portal.common.convert.mesage.MessageInfoVOConvert;
|
|
|
import com.dragon.tj.portal.common.convert.mesage.MessageReqConvert;
|
|
|
import com.dragon.tj.portal.common.dto.message.MessageInfoReq;
|
|
|
import com.dragon.tj.portal.common.dto.message.MessageInfoSend;
|
|
|
+import com.dragon.tj.portal.common.dto.message.MessageInfoUserInfo;
|
|
|
import com.dragon.tj.portal.common.enums.message.MessageInfoErrorEnums;
|
|
|
import com.dragon.tj.portal.common.enums.message.MsgRecordTypeEnum;
|
|
|
import com.dragon.tj.portal.common.enums.message.ReadStatusEnum;
|
|
@@ -35,6 +36,7 @@ import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Sets;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -42,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
|
|
@@ -167,10 +170,10 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
|
|
|
boolean isSend = false;
|
|
|
Integer messageType = messageInfoReq.getMessageType();
|
|
|
Set<String> scopeIds = messageInfoReq.getScopeIds();
|
|
|
- Set<String> messageClientIds = this.getMessageClientIds(messageType, scopeIds);
|
|
|
+ MessageInfoUserInfo messageInfoUserInfo = this.getMessageClientIds(messageType, scopeIds);
|
|
|
|
|
|
- if (CollUtil.isNotEmpty(messageClientIds)) {
|
|
|
- MessageInfoSend messageInfoSend = this.doSaveMessageInfo(messageInfoReq, messageClientIds, loginUser);
|
|
|
+ if (CollUtil.isNotEmpty(messageInfoUserInfo.getClientIds())) {
|
|
|
+ MessageInfoSend messageInfoSend = this.doSaveMessageInfo(messageInfoReq, messageInfoUserInfo, loginUser);
|
|
|
isSend = producer.send(KafkaInitialConfiguration.sseTopic, JSON.toJSONString(messageInfoSend));
|
|
|
if (isSend) {
|
|
|
MsgRecord msgRecord = new MsgRecord();
|
|
@@ -185,14 +188,15 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public MessageInfoSend doSaveMessageInfo(MessageInfoReq messageInfoReq, Set<String> messageClientIds, LoginUser loginUser) {
|
|
|
- log.info("doSaveMessageInfo-start-{}-{}", loginUser.getIdCard(), messageClientIds);
|
|
|
+ public MessageInfoSend doSaveMessageInfo(MessageInfoReq messageInfoReq, MessageInfoUserInfo messageInfoUserInfo, LoginUser loginUser) {
|
|
|
+ Set<String> clientIds = messageInfoUserInfo.getClientIds();
|
|
|
+ log.info("doSaveMessageInfo-start-{}-{}", loginUser.getIdCard(), clientIds);
|
|
|
Integer messageType = messageInfoReq.getMessageType();
|
|
|
ScopeEnums scopeEnums = ScopeEnums.ofMessageType(messageType);
|
|
|
List<MessageInfoScope> insertList = Lists.newArrayList();
|
|
|
MessageInfoSend messageInfoSend = new MessageInfoSend();
|
|
|
messageInfoSend.setMessageInfoReq(messageInfoReq);
|
|
|
- messageInfoSend.setClientIds(messageClientIds);
|
|
|
+ messageInfoSend.setClientIds(clientIds);
|
|
|
|
|
|
MessageInfo messageInfo = messageReqConvert.reqToInfo(messageInfoReq);
|
|
|
messageInfo.setCreateBy(loginUser.getIdCard());
|
|
@@ -209,14 +213,17 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
|
|
|
isSaveBatchSuccess = this.save(messageInfo);
|
|
|
|
|
|
messageInfoSend.setMessageInfo(messageInfo);
|
|
|
-
|
|
|
- messageClientIds.forEach(e -> {
|
|
|
+ Map<String, SysUser> userMap = messageInfoUserInfo.getUserMap();
|
|
|
+ clientIds.forEach(e -> {
|
|
|
MessageInfoScope messageInfoScope = new MessageInfoScope();
|
|
|
messageInfoScope.setMessageInfoId(messageInfo.getId());
|
|
|
- messageInfoScope.setScopeId(loginUser.getOrgCode());
|
|
|
messageInfoScope.setMemberId(e);
|
|
|
+ SysUser sysUser = userMap.get(e);
|
|
|
+ if (Objects.nonNull(sysUser) && StringUtils.isNotBlank(sysUser.getOrgCode())) {
|
|
|
+ messageInfoScope.setScopeId(sysUser.getOrgCode());
|
|
|
+ messageInfoScope.setScopeName(sysUser.getOrgName());
|
|
|
+ }
|
|
|
messageInfoScope.setScopeType(scopeEnums.value());
|
|
|
- //messageInfoScope.setScopeLevel("");
|
|
|
insertList.add(messageInfoScope);
|
|
|
});
|
|
|
isSaveBatchSuccess = messageInfoScopeService.saveBatch(insertList);
|
|
@@ -235,13 +242,12 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
|
|
|
log.warn("消息中心 存储失败 {}");
|
|
|
}
|
|
|
}
|
|
|
- log.info("doSaveMessageInfo-end-{}-{}", loginUser.getIdCard(), messageClientIds);
|
|
|
+ log.info("doSaveMessageInfo-end-{}-{}", loginUser.getIdCard(), clientIds);
|
|
|
return messageInfoSend;
|
|
|
}
|
|
|
|
|
|
- private Set<String> getMessageClientIds(Integer messageType, Set<String> scopeIds) {
|
|
|
+ private MessageInfoUserInfo getMessageClientIds(Integer messageType, Set<String> scopeIds) {
|
|
|
//登录人标识
|
|
|
- Set<String> messageClientIds = Sets.newHashSet();
|
|
|
if (CollUtil.isEmpty(scopeIds)) {
|
|
|
if (messageType.equals(BusinessConstants.DICT_ITEM_ID_2)) {
|
|
|
throw new MessageInfoException(MessageInfoErrorEnums.Code.MESSAGE_CONTRACTS_EMPTY);
|
|
@@ -249,17 +255,9 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
|
|
|
throw new MessageInfoException(MessageInfoErrorEnums.Code.MESSAGE_DEPT_EMPTY);
|
|
|
}
|
|
|
}
|
|
|
- //测试联系人1
|
|
|
- if (messageType.equals(BusinessConstants.DICT_ITEM_ID_2) && scopeIds.contains("1")) {
|
|
|
- messageClientIds.add("c1");
|
|
|
- messageClientIds.add("c2");
|
|
|
- } else {
|
|
|
- Set<String> allUserIds = sysDeptService.getAllUserIds(scopeIds, false);
|
|
|
- if (CollUtil.isNotEmpty(allUserIds)) {
|
|
|
- messageClientIds.addAll(allUserIds);
|
|
|
- }
|
|
|
- }
|
|
|
- return messageClientIds;
|
|
|
+
|
|
|
+ MessageInfoUserInfo messageInfoUserInfo = sysDeptService.getAllUsers(scopeIds, messageType);
|
|
|
+ return messageInfoUserInfo;
|
|
|
}
|
|
|
|
|
|
|