Commit 3ee918b4 by 汪志阳

Merge branch 'dev' into fix_sleep

parents 8420434a 8d4d3458
INSERT INTO dev_iot_yanglao_platform.sys_dictionary (id, code, name, value, sort, description, category_id, create_date,
INSERT INTO dev_iot_yanglao_platform.sys_dictionary (id, code, name, value, sort, description, category_id, create_date,
update_date, del_flag, create_by, update_by, eng_name)
VALUES ('213', 'alarm.sendType.childWechat', '子女端小程序', '6', 4, '', '201', '2022-05-16 17:13:23',
'2022-05-16 17:13:27', '0', null, null, null);
\ No newline at end of file
...@@ -2,6 +2,9 @@ package com.makeit.mapper.platform.elder; ...@@ -2,6 +2,9 @@ package com.makeit.mapper.platform.elder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo; import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* <p> * <p>
...@@ -13,4 +16,5 @@ import com.makeit.entity.platform.elder.PlatElderChildrenInfo; ...@@ -13,4 +16,5 @@ import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
*/ */
public interface PlatElderChildrenInfoMapper extends BaseMapper<PlatElderChildrenInfo> { public interface PlatElderChildrenInfoMapper extends BaseMapper<PlatElderChildrenInfo> {
List<PlatElderChildrenInfo> list(@Param("tenantId") String tenantId, @Param("elderIds") String elderIds);
} }
...@@ -33,6 +33,7 @@ import com.makeit.enums.report.PlatformTypeEnum; ...@@ -33,6 +33,7 @@ import com.makeit.enums.report.PlatformTypeEnum;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.global.aspect.tenant.TenantIdIgnore; import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper; import com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper;
import com.makeit.mapper.platform.elder.PlatElderChildrenInfoMapper;
import com.makeit.module.iot.service.IotDevicePropertiesOperateService; import com.makeit.module.iot.service.IotDevicePropertiesOperateService;
import com.makeit.service.platform.alarm.PlatAlarmConfigService; import com.makeit.service.platform.alarm.PlatAlarmConfigService;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
...@@ -67,6 +68,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -67,6 +68,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
...@@ -113,6 +115,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -113,6 +115,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
private ShengwangService shengwangService; private ShengwangService shengwangService;
@Autowired @Autowired
private IotDevicePropertiesOperateService iotDevicePropertiesOperateService; private IotDevicePropertiesOperateService iotDevicePropertiesOperateService;
@Resource
private PlatElderChildrenInfoMapper platElderChildrenInfoMapper;
@Override @Override
...@@ -316,27 +320,24 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -316,27 +320,24 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
List<PlatElderChildrenInfo> allChildInfoList = new ArrayList<>(); List<PlatElderChildrenInfo> allChildInfoList = new ArrayList<>();
//通知每个长者的子女 //通知每个长者的子女
LambdaQueryWrapper<PlatElderChildrenInfo> childrenInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); List<PlatElderChildrenInfo> childrenInfoList = platElderChildrenInfoMapper.list(alarmConfig.getTenantId(), elderIds);
childrenInfoLambdaQueryWrapper.eq(BaseBusEntity::getTenantId, alarmConfig.getTenantId()); if (CollectionUtils.isEmpty(childrenInfoList)) {
childrenInfoLambdaQueryWrapper.and(qw -> qw.apply("find_in_set('" + elderIds + "',elder_id)")); throw new BusinessException("子女端账号未绑定长者,长者id:" + elderIds);
List<PlatElderChildrenInfo> childrenInfoList = platElderChildrenInfoService.list(childrenInfoLambdaQueryWrapper); }
if (CollectionUtils.isEmpty(childrenInfoList)) { allChildInfoList.addAll(childrenInfoList);
throw new BusinessException("子女端账号未绑定长者,长者id:"+elderIds); Set<String> phoneSet = childrenInfoList.stream().map(PlatElderChildrenInfo::getPhone).collect(Collectors.toSet());
} //告警配置和租户告警 字典一致
allChildInfoList.addAll(childrenInfoList); List<SendTypeEnum> notifyChannelList = Arrays.asList(SendTypeEnum.SMS, SendTypeEnum.VOICE_SMS, SendTypeEnum.CHILD_WECHAT);
Set<String> phoneSet = childrenInfoList.stream().map(PlatElderChildrenInfo::getPhone).collect(Collectors.toSet()); List<MsgSendDTO.ReceiverInfo> receiverInfos = buildReceiverInfo(allChildInfoList, alarmRecord);
//告警配置和租户告警 字典一致 //发送消息
List<SendTypeEnum> notifyChannelList = Arrays.asList(SendTypeEnum.SMS, SendTypeEnum.VOICE_SMS, SendTypeEnum.CHILD_WECHAT); noticeByChannel(alarmConfig, alarmRecord, phoneSet, null, notifyChannelList, receiverInfos);
List<MsgSendDTO.ReceiverInfo> receiverInfos = buildReceiverInfo(allChildInfoList, alarmRecord);
//发送消息 String childIdJoin = allChildInfoList.stream().map(BaseEntity::getId).collect(Collectors.joining(","));
noticeByChannel(alarmConfig, alarmRecord, phoneSet,null, notifyChannelList, receiverInfos); //通知的子女
alarmConfig.setNotifyRelation(childIdJoin);
String childIdJoin = allChildInfoList.stream().map(BaseEntity::getId).collect(Collectors.joining(",")); alarmRecord.setNoticeStatus(CommonEnum.YES.getValue());
//通知的子女 alarmRecord.setTenantId(alarmConfig.getTenantId());
alarmConfig.setNotifyRelation(childIdJoin); saveOrUpdate(alarmRecord);
alarmRecord.setNoticeStatus(CommonEnum.YES.getValue());
alarmRecord.setTenantId(alarmConfig.getTenantId());
saveOrUpdate(alarmRecord);
} }
...@@ -423,19 +424,22 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -423,19 +424,22 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
if (StringUtils.isEmpty(notifyChannel)) { if (StringUtils.isEmpty(notifyChannel)) {
// 微信公众号 // 微信公众号
notifyChannel = "6"; notifyChannel = "6";
}else {
notifyChannel = notifyChannel + ",6";
} }
PlatTenant platTenant = platTenantService.getById(alarmConfig.getTenantId()); PlatTenant platTenant = platTenantService.getById(alarmConfig.getTenantId());
if(platTenant == null){ if (platTenant == null || !"1".equals(platTenant.getStatus())) {
return; return;
} }
String alertChannel = platTenant.getAlertChannel(); String alertChannel = platTenant.getAlertChannel();
if(StringUtils.isBlank(alertChannel)){ if (StringUtils.isBlank(alertChannel)) {
return; // 微信公众号
alertChannel = "6";
} else {
alertChannel = alertChannel + ",6";
} }
String[] tenantChannels = alertChannel.split(","); String[] tenantChannels = alertChannel.split(",");
List<String> tenantChannelList = Lists.newArrayList(Arrays.asList(tenantChannels)); List<String> tenantChannelList = Lists.newArrayList(Arrays.asList(tenantChannels));
// 微信公众号
tenantChannelList.add("6");
String[] split = notifyChannel.split(","); String[] split = notifyChannel.split(",");
for (String sendType : split) { for (String sendType : split) {
//租户告警渠道 没配置的 就不发送 //租户告警渠道 没配置的 就不发送
......
package com.makeit.service.wechat.impl; package com.makeit.service.wechat.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo; import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
import com.makeit.entity.saas.PlatTenant; import com.makeit.entity.saas.PlatTenant;
import com.makeit.global.aspect.misc.nofill.NoFillUtil; import com.makeit.global.aspect.misc.nofill.NoFillUtil;
...@@ -127,8 +129,15 @@ public class PlatElderChildrenInfoUserLoginWechatServiceImpl implements PlatElde ...@@ -127,8 +129,15 @@ public class PlatElderChildrenInfoUserLoginWechatServiceImpl implements PlatElde
if (childrenInfo == null) { if (childrenInfo == null) {
return; return;
} }
childrenInfo.setWeChatOpenid(dto.getWeChatOpenid()); if (StrUtil.isNotBlank(childrenInfo.getOpenid())) {
platElderChildrenInfoService.updateById(childrenInfo); List<PlatElderChildrenInfo> infoList = platElderChildrenInfoService.list(Wrappers.<PlatElderChildrenInfo>lambdaQuery()
.in(PlatElderChildrenInfo::getOpenid, childrenInfo.getOpenid()));
infoList.forEach(i -> i.setWeChatOpenid(dto.getWeChatOpenid()));
platElderChildrenInfoService.updateBatchById(infoList);
} else {
childrenInfo.setWeChatOpenid(dto.getWeChatOpenid());
platElderChildrenInfoService.updateById(childrenInfo);
}
} }
@Override @Override
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.makeit.mapper.platform.elder.PlatElderChildrenInfoMapper">
<select id="list" parameterType="String" resultType="com.makeit.entity.platform.elder.PlatElderChildrenInfo">
select *
from plat_elder_children_info
where tenant_id = #{tenantId}
and find_in_set(#{elderIds},elder_id)
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment