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;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
......@@ -13,4 +16,5 @@ import com.makeit.entity.platform.elder.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;
import com.makeit.exception.BusinessException;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper;
import com.makeit.mapper.platform.elder.PlatElderChildrenInfoMapper;
import com.makeit.module.iot.service.IotDevicePropertiesOperateService;
import com.makeit.service.platform.alarm.PlatAlarmConfigService;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
......@@ -67,6 +68,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.*;
import java.util.regex.Matcher;
......@@ -113,6 +115,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
private ShengwangService shengwangService;
@Autowired
private IotDevicePropertiesOperateService iotDevicePropertiesOperateService;
@Resource
private PlatElderChildrenInfoMapper platElderChildrenInfoMapper;
@Override
......@@ -316,27 +320,24 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
List<PlatElderChildrenInfo> allChildInfoList = new ArrayList<>();
//通知每个长者的子女
LambdaQueryWrapper<PlatElderChildrenInfo> childrenInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
childrenInfoLambdaQueryWrapper.eq(BaseBusEntity::getTenantId, alarmConfig.getTenantId());
childrenInfoLambdaQueryWrapper.and(qw -> qw.apply("find_in_set('" + elderIds + "',elder_id)"));
List<PlatElderChildrenInfo> childrenInfoList = platElderChildrenInfoService.list(childrenInfoLambdaQueryWrapper);
if (CollectionUtils.isEmpty(childrenInfoList)) {
throw new BusinessException("子女端账号未绑定长者,长者id:"+elderIds);
}
allChildInfoList.addAll(childrenInfoList);
Set<String> phoneSet = childrenInfoList.stream().map(PlatElderChildrenInfo::getPhone).collect(Collectors.toSet());
//告警配置和租户告警 字典一致
List<SendTypeEnum> notifyChannelList = Arrays.asList(SendTypeEnum.SMS, SendTypeEnum.VOICE_SMS, SendTypeEnum.CHILD_WECHAT);
List<MsgSendDTO.ReceiverInfo> receiverInfos = buildReceiverInfo(allChildInfoList, alarmRecord);
//发送消息
noticeByChannel(alarmConfig, alarmRecord, phoneSet,null, notifyChannelList, receiverInfos);
String childIdJoin = allChildInfoList.stream().map(BaseEntity::getId).collect(Collectors.joining(","));
//通知的子女
alarmConfig.setNotifyRelation(childIdJoin);
alarmRecord.setNoticeStatus(CommonEnum.YES.getValue());
alarmRecord.setTenantId(alarmConfig.getTenantId());
saveOrUpdate(alarmRecord);
List<PlatElderChildrenInfo> childrenInfoList = platElderChildrenInfoMapper.list(alarmConfig.getTenantId(), elderIds);
if (CollectionUtils.isEmpty(childrenInfoList)) {
throw new BusinessException("子女端账号未绑定长者,长者id:" + elderIds);
}
allChildInfoList.addAll(childrenInfoList);
Set<String> phoneSet = childrenInfoList.stream().map(PlatElderChildrenInfo::getPhone).collect(Collectors.toSet());
//告警配置和租户告警 字典一致
List<SendTypeEnum> notifyChannelList = Arrays.asList(SendTypeEnum.SMS, SendTypeEnum.VOICE_SMS, SendTypeEnum.CHILD_WECHAT);
List<MsgSendDTO.ReceiverInfo> receiverInfos = buildReceiverInfo(allChildInfoList, alarmRecord);
//发送消息
noticeByChannel(alarmConfig, alarmRecord, phoneSet, null, notifyChannelList, receiverInfos);
String childIdJoin = allChildInfoList.stream().map(BaseEntity::getId).collect(Collectors.joining(","));
//通知的子女
alarmConfig.setNotifyRelation(childIdJoin);
alarmRecord.setNoticeStatus(CommonEnum.YES.getValue());
alarmRecord.setTenantId(alarmConfig.getTenantId());
saveOrUpdate(alarmRecord);
}
......@@ -423,19 +424,22 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
if (StringUtils.isEmpty(notifyChannel)) {
// 微信公众号
notifyChannel = "6";
}else {
notifyChannel = notifyChannel + ",6";
}
PlatTenant platTenant = platTenantService.getById(alarmConfig.getTenantId());
if(platTenant == null){
if (platTenant == null || !"1".equals(platTenant.getStatus())) {
return;
}
String alertChannel = platTenant.getAlertChannel();
if(StringUtils.isBlank(alertChannel)){
return;
if (StringUtils.isBlank(alertChannel)) {
// 微信公众号
alertChannel = "6";
} else {
alertChannel = alertChannel + ",6";
}
String[] tenantChannels = alertChannel.split(",");
List<String> tenantChannelList = Lists.newArrayList(Arrays.asList(tenantChannels));
// 微信公众号
tenantChannelList.add("6");
String[] split = notifyChannel.split(",");
for (String sendType : split) {
//租户告警渠道 没配置的 就不发送
......
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.toolkit.Wrappers;
import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
import com.makeit.entity.saas.PlatTenant;
import com.makeit.global.aspect.misc.nofill.NoFillUtil;
......@@ -127,8 +129,15 @@ public class PlatElderChildrenInfoUserLoginWechatServiceImpl implements PlatElde
if (childrenInfo == null) {
return;
}
childrenInfo.setWeChatOpenid(dto.getWeChatOpenid());
platElderChildrenInfoService.updateById(childrenInfo);
if (StrUtil.isNotBlank(childrenInfo.getOpenid())) {
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
......
<?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