修改 前端菜单 管理菜单,角色前后端分配 及通道创建失败的问题

This commit is contained in:
LEED
2025-07-07 22:26:26 +08:00
parent b2cee8aeb7
commit ac40c5e5ec
29 changed files with 899 additions and 81 deletions

View File

@@ -202,7 +202,7 @@ public interface IDeviceService
* @return 结果
*/
public AjaxResult deleteDeviceByDeviceId(Long deviceId) throws SchedulerException;
public void deleteDeviceById(Long deviceId) ;
/**
* 生成设备唯一编号
* @return 结果

View File

@@ -1370,6 +1370,67 @@ public class DeviceServiceImpl implements IDeviceService {
return AjaxResult.success();
}
/**
* 删除设备
*
* @param deviceId 需要删除的设备主键
* @return 结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteDeviceById(Long deviceId){
//查询设备
Device device = deviceMapper.selectDeviceByDeviceId(deviceId);
// 2.3版本更改 设备管理者和设备拥有者为true普通用户如果不是设备所有者只能删除设备用户和用户自己的设备关联分组信息
// 查绑定用户被分享用户配置的场景,需要把场景删掉
DeviceUser deviceUser = deviceUserMapper.selectDeviceUserByDeviceId(deviceId);
List<Long> userIdSceneList = new ArrayList<>();
if (null != deviceUser) {
userIdSceneList.add(deviceUser.getUserId());
}
Long[] shareSceneIds = null;
List<DeviceShare> deviceShares = deviceShareService.selectDeviceShareByDeviceId(deviceId);
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(deviceShares)) {
List<Long> userIdList = deviceShares.stream().map(DeviceShare::getUserId).collect(Collectors.toList());
userIdSceneList.addAll(userIdList);
}
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(userIdSceneList)) {
shareSceneIds = sceneDeviceMapper.listSceneIdByDeviceIdAndUserId(device.getSerialNumber(), userIdSceneList);
}
if (null != shareSceneIds && shareSceneIds.length > 0) {
sceneService.deleteSceneBySceneIds(shareSceneIds);
}
// 删除设备分组。 租户、管理员和设备所有者
deviceMapper.deleteDeviceGroupByDeviceId(new UserIdDeviceIdModel(null, deviceId));
// 删除设备用户。
deviceUserMapper.deleteDeviceUserByDeviceId(new UserIdDeviceIdModel(null, deviceId));
deviceShareService.deleteDeviceShareByDeviceId(deviceId);
// 删除定时任务 TODO - emq兼容
// deviceJobService.deleteJobByDeviceIds(new Long[]{deviceId});
// 批量删除设备监测日志
logService.deleteDeviceLogByDeviceNumber(device.getSerialNumber());
// 批量删除设备事件日志 DeviceNumber
eventLogService.deleteEventLogByDeviceNumber(device.getSerialNumber());
// 批量删除设备功能日志
functionLogService.deleteFunctionLogByDeviceNumber(device.getSerialNumber());
// 批量删除设备告警记录
alertLogService.deleteAlertLogBySerialNumber(device.getSerialNumber());
// redis中删除设备物模型状态
String key = RedisKeyBuilder.buildTSLVCacheKey(device.getProductId(), device.getSerialNumber());
redisCache.deleteObject(key);
// 删除设备
deviceMapper.deleteDeviceByDeviceIds(new Long[]{deviceId});
// redis中删除规则脚本
String cacheKey = RedisKeyBuilder.buildDeviceMsgCacheKey(device.getSerialNumber());
redisCache.deleteObject(cacheKey);
// 删除设备
deviceMapper.deleteDeviceByDeviceIds(new Long[]{deviceId});
}
/**
* 根据设备编号查询协议编码