Sfoglia il codice sorgente

设备故障系统消息

谭斌 2 anni fa
parent
commit
a198537e8f

+ 24 - 4
device-api-service/src/main/java/com/xy/consumer/device/push/msg/DevicePushMsgConsumer.java

@@ -10,6 +10,8 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.xy.consumer.MqttConsumer;
 import com.xy.dto.MsgConfigTestDto;
+import com.xy.dto.MsgSysMonitorNoticeDto;
+import com.xy.dto.MsgUserMessageDto;
 import com.xy.dto.UserInfoDto;
 import com.xy.dto.be.MercDto;
 import com.xy.dto.be.MercUserDeviceDto;
@@ -17,9 +19,8 @@ import com.xy.entity.DeviceEventMsg;
 import com.xy.entity.DeviceInfo;
 import com.xy.entity.SysCodeConfigureRedis;
 import com.xy.enums.ChannelType;
-import com.xy.service.DeviceInfoServiceImpl;
-import com.xy.service.MsgSendApiService;
-import com.xy.service.UserInfoService;
+import com.xy.enums.MsgType;
+import com.xy.service.*;
 import com.xy.service.be.MercFeignService;
 import com.xy.utils.R;
 import com.xy.utils.SysCodeConfigureUtils;
@@ -47,6 +48,8 @@ public class DevicePushMsgConsumer implements MqttConsumer {
     private DeviceInfoServiceImpl deviceInfoService;
     private MercFeignService mercFeignService;
     private UserInfoService userInfoService;
+    private MsgUserMessageService msgUserMessageService;
+    private MsgSysMonitorNoticeService msgSysMonitorNoticeService;
 
     @Override
     public boolean message(String topic, String payload) {
@@ -58,8 +61,8 @@ public class DevicePushMsgConsumer implements MqttConsumer {
             LocalDateTime createTime = deviceEventMsg.getCreateTime();
             String msg = deviceEventMsg.getMsg();
             SysCodeConfigureRedis sysCodeConfigureRedis = SysCodeConfigureUtils.get(deviceEventMsg.getCode());
-
             Long configId = 12L;
+
             List<MsgConfigTestDto.BizParam> bizParams = R.feignCheckData(msgSendApiService.getBizParamByMsgConfig(new MsgConfigTestDto.MsgConfig().setConfigId(configId)));
             if (CollUtil.isNotEmpty(bizParams)) {
                 List<MsgConfigTestDto.BizData> bizDataList = BeanUtil.copyToList(bizParams, MsgConfigTestDto.BizData.class);
@@ -82,6 +85,23 @@ public class DevicePushMsgConsumer implements MqttConsumer {
                         }
                         //查询userinfo表的mpOpenId
                         List<UserInfoDto.Vo> userInfoList = R.feignCheckData(userInfoService.list(new UserInfoDto.SelectListDto().setUserIds(userInfoIdList)));
+                        userInfoList.forEach(u -> {
+                            String name = u.getName();
+                            //系统消息
+                            MsgSysMonitorNoticeDto.Save msgSys = new MsgSysMonitorNoticeDto.Save();
+                            msgSys.setMsgType(MsgType.TYPE6.getCode()).setContent(msg)
+                                    .setPubTime(LocalDateTime.now()).setPubState(2)
+                                    .setSendTargets(name)
+                                    .setPriority(1)
+                                    .setPubUserId(-1).setTitle(MsgType.TYPE6.getDescription());
+                            msgSysMonitorNoticeService.save(msgSys);
+                            MsgUserMessageDto.Save mum = new MsgUserMessageDto.Save();
+                            mum.setMsgId(msgSys.getMsgId());
+                            mum.setMsgType(msgSys.getMsgType());
+                            mum.setPriority(msgSys.getPriority());
+                            mum.setUserId(u.getAuthorizeUserId());
+                            msgUserMessageService.save(mum);
+                        });
 
                         Set<String> mpOpenIds = userInfoList.stream().filter(Objects::nonNull)
                                 .map(UserInfoDto.Vo::getMpOpenid)