fix: 删除账号时,同时移除设备类型设置的CQM

This commit is contained in:
曹鹏飞 2025-03-09 17:49:42 +08:00
parent 8d93dbc7c9
commit 41c958c214
1 changed files with 14 additions and 0 deletions

View File

@ -60,6 +60,9 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
@Resource @Resource
private RedisTemplate<String, String> redisTemplate; private RedisTemplate<String, String> redisTemplate;
@Resource
private ITBaseDeviceTypeService deviceTypeService;
@Override @Override
public AdminUser getUser(String userName, String password) { public AdminUser getUser(String userName, String password) {
AdminUser user = lambdaQuery() AdminUser user = lambdaQuery()
@ -314,6 +317,17 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
.set(AdminUser::getIsDel, true) .set(AdminUser::getIsDel, true)
.eq(AdminUser::getId, id) .eq(AdminUser::getId, id)
.update(); .update();
LambdaQueryWrapper<TBaseDeviceType> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.apply("FIND_IN_SET({0}, cqm_person_id)>0", id);
List<TBaseDeviceType> deviceTypes=deviceTypeService.getBaseMapper().selectList(queryWrapper);
deviceTypes.forEach(deviceType -> {
List<Integer> cqms=Arrays.stream(deviceType.getCqmPersonId().split(",")).map(Integer::parseInt).collect(Collectors.toList());
cqms.remove(id);
List<AdminUser> adminUsers=listByIds(cqms);
deviceType.setCqmPersonId(adminUsers.stream().map(u->String.valueOf(u.getId())).collect(Collectors.joining(",")));
deviceType.setCqmPersonName(adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.joining(",")));
});
deviceTypeService.updateBatchById(deviceTypes);
} }
@Override @Override