|
@@ -1,19 +1,26 @@
|
|
|
package com.dragon.tj.portal.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.dragon.tj.portal.common.base.R;
|
|
|
import com.dragon.tj.portal.common.constants.BusinessConstants;
|
|
|
import com.dragon.tj.portal.common.dto.message.MessageInfoReq;
|
|
|
+import com.dragon.tj.portal.common.dto.message.MessageInfoSend;
|
|
|
+import com.dragon.tj.portal.common.enums.ScopeEnums;
|
|
|
import com.dragon.tj.portal.component.message.KafkaInitialConfiguration;
|
|
|
import com.dragon.tj.portal.component.message.MessageProducer;
|
|
|
import com.dragon.tj.portal.entity.MessageInfo;
|
|
|
+import com.dragon.tj.portal.entity.MessageInfoScope;
|
|
|
import com.dragon.tj.portal.mapper.MessageInfoMapper;
|
|
|
+import com.dragon.tj.portal.service.MessageInfoScopeService;
|
|
|
import com.dragon.tj.portal.service.MessageInfoService;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Sets;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.Set;
|
|
|
|
|
|
/**
|
|
@@ -30,6 +37,12 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
|
|
|
@Autowired
|
|
|
private MessageProducer producer;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MessageInfoService messageInfoService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MessageInfoScopeService messageInfoScopeService;
|
|
|
+
|
|
|
@Override
|
|
|
public R push(MessageInfoReq messageInfoReq) {
|
|
|
return R.ok(this.doMessage(messageInfoReq));
|
|
@@ -57,22 +70,63 @@ public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, Messa
|
|
|
Integer messageType = messageInfoReq.getMessageType();
|
|
|
Set<String> scopeIds = messageInfoReq.getScopeIds();
|
|
|
|
|
|
- //测试部门1
|
|
|
+ //登录人标识
|
|
|
+ Set<String> messageClientIds = Sets.newHashSet();
|
|
|
+
|
|
|
+ //测试联系人1
|
|
|
if (messageType.equals(BusinessConstants.DICT_ITEM_ID_2) && scopeIds.contains("1")) {
|
|
|
- //登录人标识
|
|
|
- Set<String> messageClientIds = Sets.newHashSet();
|
|
|
messageClientIds.add("c1");
|
|
|
messageClientIds.add("c2");
|
|
|
- messageInfoReq.setMessageClientIds(messageClientIds);
|
|
|
+ }
|
|
|
+ ScopeEnums scopeEnums = ScopeEnums.ofMessageType(messageType);
|
|
|
+ if (CollUtil.isNotEmpty(messageClientIds)) {
|
|
|
+
|
|
|
+ List<MessageInfoScope> insertList = Lists.newArrayList();
|
|
|
+ MessageInfoSend messageInfoSend = new MessageInfoSend();
|
|
|
+ messageInfoSend.setMessageInfoReq(messageInfoReq);
|
|
|
+ messageInfoSend.setClientIds(messageClientIds);
|
|
|
+ messageClientIds.forEach(e->{
|
|
|
+ MessageInfoScope messageInfoScope = new MessageInfoScope();
|
|
|
+ messageInfoScope.setScopeId(e);
|
|
|
+ messageInfoScope.setScopeType(scopeEnums.value());
|
|
|
+ //messageInfoScope.setScopeLevel("");
|
|
|
+ insertList.add(messageInfoScope);
|
|
|
+ });
|
|
|
+
|
|
|
|
|
|
- isSend = producer.send(KafkaInitialConfiguration.sseTopic, JSON.toJSONString(messageInfoReq));
|
|
|
+ // 存储
|
|
|
+ boolean isSaveBatchSuccess = false;
|
|
|
+ try {
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("消息中心 saveBatch 存储失败 {}");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量存储失败,则逐个存储
|
|
|
+ if (!isSaveBatchSuccess) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("消息中心 存储失败 {}");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ isSend = producer.send(KafkaInitialConfiguration.sseTopic, JSON.toJSONString(messageInfoSend));
|
|
|
}
|
|
|
return isSend;
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * @author huey China.
|
|
|
+ * @Description : md5 验证消息唯一性
|
|
|
+ * @Date Created in 2023/6/16 16:15
|
|
|
+ */
|
|
|
private void validate(MessageInfoReq messageInfoReq) {
|
|
|
-
|
|
|
+// String correctHash = DigestUtils.md5Hex("currentId" + messageInfoReq.getT());
|
|
|
+// if (!correctHash.equalsIgnoreCase(messageInfoReq.getK())) {
|
|
|
+// return;
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
}
|