Commit 8d4d3458 by 汪志阳

fix:租户推送公众号消息

parent 600e079f
...@@ -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,12 +320,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -316,12 +320,9 @@ 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());
childrenInfoLambdaQueryWrapper.and(qw -> qw.apply("find_in_set('" + elderIds + "',elder_id)"));
List<PlatElderChildrenInfo> childrenInfoList = platElderChildrenInfoService.list(childrenInfoLambdaQueryWrapper);
if (CollectionUtils.isEmpty(childrenInfoList)) { if (CollectionUtils.isEmpty(childrenInfoList)) {
throw new BusinessException("子女端账号未绑定长者,长者id:"+elderIds); throw new BusinessException("子女端账号未绑定长者,长者id:" + elderIds);
} }
allChildInfoList.addAll(childrenInfoList); allChildInfoList.addAll(childrenInfoList);
Set<String> phoneSet = childrenInfoList.stream().map(PlatElderChildrenInfo::getPhone).collect(Collectors.toSet()); Set<String> phoneSet = childrenInfoList.stream().map(PlatElderChildrenInfo::getPhone).collect(Collectors.toSet());
...@@ -329,7 +330,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -329,7 +330,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
List<SendTypeEnum> notifyChannelList = Arrays.asList(SendTypeEnum.SMS, SendTypeEnum.VOICE_SMS, SendTypeEnum.CHILD_WECHAT); List<SendTypeEnum> notifyChannelList = Arrays.asList(SendTypeEnum.SMS, SendTypeEnum.VOICE_SMS, SendTypeEnum.CHILD_WECHAT);
List<MsgSendDTO.ReceiverInfo> receiverInfos = buildReceiverInfo(allChildInfoList, alarmRecord); List<MsgSendDTO.ReceiverInfo> receiverInfos = buildReceiverInfo(allChildInfoList, alarmRecord);
//发送消息 //发送消息
noticeByChannel(alarmConfig, alarmRecord, phoneSet,null, notifyChannelList, receiverInfos); noticeByChannel(alarmConfig, alarmRecord, phoneSet, null, notifyChannelList, receiverInfos);
String childIdJoin = allChildInfoList.stream().map(BaseEntity::getId).collect(Collectors.joining(",")); String childIdJoin = allChildInfoList.stream().map(BaseEntity::getId).collect(Collectors.joining(","));
//通知的子女 //通知的子女
...@@ -423,15 +424,19 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -423,15 +424,19 @@ 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 || !"1".equals(platTenant.getStatus())) { 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)) {
// 微信公众号 // 微信公众号
alertChannel = "6"; 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));
......
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,9 +129,16 @@ public class PlatElderChildrenInfoUserLoginWechatServiceImpl implements PlatElde ...@@ -127,9 +129,16 @@ public class PlatElderChildrenInfoUserLoginWechatServiceImpl implements PlatElde
if (childrenInfo == null) { if (childrenInfo == null) {
return; return;
} }
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()); childrenInfo.setWeChatOpenid(dto.getWeChatOpenid());
platElderChildrenInfoService.updateById(childrenInfo); platElderChildrenInfoService.updateById(childrenInfo);
} }
}
@Override @Override
public void logout() { public void logout() {
......
<?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