|
@@ -67,65 +67,73 @@ public class DevicePushMsgConsumer implements MqttConsumer {
|
|
|
if (CollUtil.isNotEmpty(bizParams)) {
|
|
|
List<MsgConfigTestDto.BizData> bizDataList = BeanUtil.copyToList(bizParams, MsgConfigTestDto.BizData.class);
|
|
|
List<MsgConfigTestDto.BizData> sendList = new ArrayList<>();
|
|
|
+ /**
|
|
|
+ * {{first.DATA}}
|
|
|
+ * 设备名称:{{keyword1.DATA}}
|
|
|
+ * 告警内容:{{keyword2.DATA}}
|
|
|
+ * 发生时间:{{keyword3.DATA}}
|
|
|
+ * {{remark.DATA}}
|
|
|
+ *
|
|
|
+ */
|
|
|
+ DeviceInfo deviceInfo = deviceInfoService.getById(deviceId);
|
|
|
+ String deviceName = deviceInfo.getDeviceName();
|
|
|
+ if (StrUtil.isEmpty(deviceName)) {
|
|
|
+ deviceName = deviceId + "";
|
|
|
+ } else {
|
|
|
+ deviceName = deviceName + "(" + deviceId + ")";
|
|
|
+ }
|
|
|
+
|
|
|
+ MercDto.Vo merc = R.feignCheckData(mercFeignService.obj(new MercDto.ListDTO().setId(mercId)));
|
|
|
+ Long userInfoId = merc.getUserInfoId();
|
|
|
+ List<Long> userInfoIdList = new ArrayList<>();
|
|
|
+ userInfoIdList.add(userInfoId);
|
|
|
+ List<MercUserDeviceDto.Vo> mercUserDevices = R.feignCheckData(mercFeignService.mercDeviceUsers(
|
|
|
+ new MercUserDeviceDto.Vo().setMercId(mercId).setDeviceId(deviceId)));
|
|
|
+ if (CollUtil.isNotEmpty(mercUserDevices)) {
|
|
|
+ List<Long> uids = mercUserDevices.stream().map(MercUserDeviceDto.Vo::getUserId).collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(uids)) {
|
|
|
+ userInfoIdList.addAll(uids);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ StringBuilder sbMsg = StrUtil.builder().append("设备")
|
|
|
+ .append("【")
|
|
|
+ .append(deviceName)
|
|
|
+ .append("】")
|
|
|
+ .append("发生故障:").append(msg).append(",发生时间:")
|
|
|
+ .append(DateUtil.format(createTime, DatePattern.NORM_DATETIME_PATTERN));
|
|
|
+ //查询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(sbMsg.toString())
|
|
|
+ .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);
|
|
|
+ });
|
|
|
+
|
|
|
for (MsgConfigTestDto.BizData b : bizDataList) {
|
|
|
String channelType = b.getChannelType();
|
|
|
if (Integer.valueOf(channelType).intValue() == ChannelType.OFFICIAL_ACCOUNT.getCode().intValue()) {
|
|
|
//TODO: 暂无订阅功能。给商户管理员、以及有此设备权限的人推送消息, 查询微信公众号openID
|
|
|
- MercDto.Vo merc = R.feignCheckData(mercFeignService.obj(new MercDto.ListDTO().setId(mercId)));
|
|
|
- Long userInfoId = merc.getUserInfoId();
|
|
|
- List<Long> userInfoIdList = new ArrayList<>();
|
|
|
- userInfoIdList.add(userInfoId);
|
|
|
- List<MercUserDeviceDto.Vo> mercUserDevices = R.feignCheckData(mercFeignService.mercDeviceUsers(
|
|
|
- new MercUserDeviceDto.Vo().setMercId(mercId).setDeviceId(deviceId)));
|
|
|
- if (CollUtil.isNotEmpty(mercUserDevices)) {
|
|
|
- List<Long> uids = mercUserDevices.stream().map(MercUserDeviceDto.Vo::getUserId).collect(Collectors.toList());
|
|
|
- if (CollUtil.isNotEmpty(uids)) {
|
|
|
- userInfoIdList.addAll(uids);
|
|
|
- }
|
|
|
- }
|
|
|
- //查询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)
|
|
|
+ Set<String> mpOpenIds = userInfoList.stream().filter(u -> ObjectUtil.isNotEmpty(u.getMpOpenid()))
|
|
|
.map(UserInfoDto.Vo::getMpOpenid)
|
|
|
.collect(Collectors.toSet());
|
|
|
+
|
|
|
if (CollUtil.isEmpty(mpOpenIds)) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * {{first.DATA}}
|
|
|
- * 设备名称:{{keyword1.DATA}}
|
|
|
- * 告警内容:{{keyword2.DATA}}
|
|
|
- * 发生时间:{{keyword3.DATA}}
|
|
|
- * {{remark.DATA}}
|
|
|
- *
|
|
|
- */
|
|
|
- DeviceInfo deviceInfo = deviceInfoService.getById(deviceId);
|
|
|
- String deviceName = deviceInfo.getDeviceName();
|
|
|
- if (StrUtil.isEmpty(deviceName)) {
|
|
|
- deviceName = deviceId + "";
|
|
|
- } else {
|
|
|
- deviceName = deviceName + "(" + deviceId + ")";
|
|
|
- }
|
|
|
-
|
|
|
//微信公众号
|
|
|
//扩展参数
|
|
|
MsgConfigTestDto.BizExtraParam bizExtraParam = new MsgConfigTestDto.BizExtraParam();
|