|
@@ -14,6 +14,8 @@ package vip.xiaonuo.coldchain.modular.alarmuser.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollStreamUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.lang.Assert;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
@@ -28,6 +30,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
|
|
|
import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
|
|
|
+import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
|
|
|
import vip.xiaonuo.coldchain.modular.alarmuser.dto.ExtendUserDTO;
|
|
|
import vip.xiaonuo.coldchain.modular.alarmuser.entity.AlarmUser;
|
|
|
import vip.xiaonuo.coldchain.modular.alarmuser.mapper.AlarmUserMapper;
|
|
@@ -36,6 +39,8 @@ import vip.xiaonuo.coldchain.modular.alarmuser.param.AlarmUserEditParam;
|
|
|
import vip.xiaonuo.coldchain.modular.alarmuser.param.AlarmUserIdParam;
|
|
|
import vip.xiaonuo.coldchain.modular.alarmuser.param.AlarmUserPageParam;
|
|
|
import vip.xiaonuo.coldchain.modular.alarmuser.service.AlarmUserService;
|
|
|
+import vip.xiaonuo.coldchain.modular.monitortarget.entity.MonitorTarget;
|
|
|
+import vip.xiaonuo.coldchain.modular.monitortarget.mapper.MonitorTargetMapper;
|
|
|
import vip.xiaonuo.coldchain.modular.push.entity.WeChatUser;
|
|
|
import vip.xiaonuo.coldchain.modular.push.utils.PushUtil;
|
|
|
import vip.xiaonuo.common.enums.CommonDeleteFlagEnum;
|
|
@@ -72,6 +77,8 @@ public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser
|
|
|
private SysUserService sysUserService;
|
|
|
@Resource
|
|
|
private DevConfigApi devConfigApi;
|
|
|
+ @Resource
|
|
|
+ private MonitorTargetMapper monitorTargetMapper;
|
|
|
|
|
|
@Override
|
|
|
public Page<ExtendUserDTO> page(AlarmUserPageParam alarmUserPageParam) {
|
|
@@ -152,8 +159,26 @@ public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void delete(List<AlarmUserIdParam> alarmUserIdParamList) {
|
|
|
+ List<String> userIds = CollStreamUtil.toList(alarmUserIdParamList, AlarmUserIdParam::getId);
|
|
|
+
|
|
|
+ //检查报警接收人是否在使用
|
|
|
+ List<MonitorTarget> monitorTargets = monitorTargetMapper.selectList(new LambdaQueryWrapper<>(MonitorTarget.class)
|
|
|
+ .select(MonitorTarget::getAlarmUsers)
|
|
|
+ .eq(MonitorTarget::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE));
|
|
|
+ if (CollUtil.isNotEmpty(monitorTargets)) {
|
|
|
+ List<String> sensorAlarmUserOpenIdList = monitorTargets.stream()
|
|
|
+ .flatMap(x -> x.getAlarmUsers().stream())
|
|
|
+ .map(SensorAlarmUser::getOpenId)
|
|
|
+ .filter(StrUtil::isNotBlank)
|
|
|
+ .distinct().toList();
|
|
|
+ long usedUser = count(new LambdaQueryWrapper<>(AlarmUser.class).eq(AlarmUser::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE)
|
|
|
+ .in(AlarmUser::getOpenId, sensorAlarmUserOpenIdList)
|
|
|
+ .in(AlarmUser::getId, userIds));
|
|
|
+ Assert.isTrue(usedUser == 0, "报警接收人正在使用中,无法删除");
|
|
|
+ }
|
|
|
+
|
|
|
// 执行删除
|
|
|
- this.removeByIds(CollStreamUtil.toList(alarmUserIdParamList, AlarmUserIdParam::getId));
|
|
|
+ this.removeByIds(userIds);
|
|
|
}
|
|
|
|
|
|
@Override
|