From 44ed5a27b333871ef691e86f0c51a79ec11f9dad Mon Sep 17 00:00:00 2001 From: kerwincui <164770707@qq.com> Date: Thu, 9 Jun 2022 17:09:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=A7=A3=E7=BB=91=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/controller/DeviceController.java | 2 +- .../com/ruoyi/iot/mapper/DeviceLogMapper.java | 4 +- .../com/ruoyi/iot/mapper/DeviceMapper.java | 2 +- .../ruoyi/iot/mapper/DeviceUserMapper.java | 5 +- .../iot/model/UserIdAndDeviceIdModel.java | 35 ++++++++++++ .../ruoyi/iot/service/IDeviceLogService.java | 6 +- .../com/ruoyi/iot/service/IDeviceService.java | 13 +---- .../service/impl/DeviceLogServiceImpl.java | 6 +- .../iot/service/impl/DeviceServiceImpl.java | 56 +++++++++++-------- .../service/impl/DeviceUserServiceImpl.java | 3 +- .../iot/tdengine/dao/TDDeviceLogDAO.java | 4 +- .../iot/tdengine/service/ILogService.java | 4 ++ .../service/impl/MySqlLogServiceImpl.java | 13 +++++ .../service/impl/TdengineLogServiceImpl.java | 26 ++++++++- .../resources/mapper/iot/DeviceLogMapper.xml | 7 +-- .../resources/mapper/iot/DeviceMapper.xml | 17 +++--- .../resources/mapper/iot/DeviceUserMapper.xml | 8 ++- .../mapper/tdengine/TDDeviceLogMapper.xml | 22 +++++--- 18 files changed, 161 insertions(+), 72 deletions(-) create mode 100644 springboot/wumei-iot/src/main/java/com/ruoyi/iot/model/UserIdAndDeviceIdModel.java diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/controller/DeviceController.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/controller/DeviceController.java index e58147f3..d2c48a8f 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/controller/DeviceController.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/controller/DeviceController.java @@ -187,7 +187,7 @@ public class DeviceController extends BaseController @DeleteMapping("/{deviceIds}") @ApiOperation("批量删除设备") public AjaxResult remove(@PathVariable Long[] deviceIds) throws SchedulerException { - return toAjax(deviceService.deleteDeviceByDeviceIds(deviceIds)); + return toAjax(deviceService.deleteDeviceByDeviceId(deviceIds[0])); } @PreAuthorize("@ss.hasPermi('iot:device:edit')") diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceLogMapper.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceLogMapper.java index 3bd8dad5..02266647 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceLogMapper.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceLogMapper.java @@ -83,10 +83,10 @@ public interface DeviceLogMapper /** * 根据设备Ids批量删除设备日志 * - * @param deviceIds 需要删除的数据设备Ids + * @param deviceId 需要删除的数据设备Id * @return 结果 */ - public int deleteDeviceLogByDeviceIds(Long[] deviceIds); + public int deleteDeviceLogByDeviceId(Long deviceId); // List selectLogList(Long deviceId,String serialNumber,Long isMonitor,Long logType, Date beginDate, Date endDate); diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceMapper.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceMapper.java index 75230334..804f0cf1 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceMapper.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceMapper.java @@ -180,7 +180,7 @@ public interface DeviceMapper * @param deviceIds * @return */ - public int deleteDeviceGroupByDeviceIds(Long[] deviceIds); + public int deleteDeviceGroupByDeviceId(UserIdAndDeviceIdModel userIdAndDeviceIdModel); /** * 重置设备状态 diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceUserMapper.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceUserMapper.java index 7387a8e4..2f9504e2 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceUserMapper.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/mapper/DeviceUserMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.iot.mapper; import java.util.List; import com.ruoyi.iot.domain.DeviceUser; +import com.ruoyi.iot.model.UserIdAndDeviceIdModel; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -49,10 +50,10 @@ public interface DeviceUserMapper /** * 删除设备用户 * - * @param deviceId 设备用户主键 + * @param UserIdAndDeviceIdModel 用户ID和设备ID * @return 结果 */ - public int deleteDeviceUserByDeviceId(Long deviceId); + public int deleteDeviceUserByDeviceId(UserIdAndDeviceIdModel userIdAndDeviceIdModel); /** * 批量删除设备用户 diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/model/UserIdAndDeviceIdModel.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/model/UserIdAndDeviceIdModel.java new file mode 100644 index 00000000..1f06fdda --- /dev/null +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/model/UserIdAndDeviceIdModel.java @@ -0,0 +1,35 @@ +package com.ruoyi.iot.model; + +/** + * 用户ID和设备ID模型 + * + * @author kerwincui + * @date 2021-12-16 + */ +public class UserIdAndDeviceIdModel +{ + private Long userId; + + private Long deviceId; + + public UserIdAndDeviceIdModel(Long userId,Long deviceId){ + this.userId=userId; + this.deviceId=deviceId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getDeviceId() { + return deviceId; + } + + public void setDeviceId(Long deviceId) { + this.deviceId = deviceId; + } +} diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/IDeviceLogService.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/IDeviceLogService.java index f4a57b95..6e126f5c 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/IDeviceLogService.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/IDeviceLogService.java @@ -70,10 +70,10 @@ public interface IDeviceLogService public int deleteDeviceLogByLogId(Long logId); /** - * 根据设备IDs批量删除设备日志 + * 根据设备ID批量删除设备日志 * - * @param deviceIds 需要删除的设备日志IDs + * @param deviceId 需要删除的设备日志ID * @return 结果 */ - public int deleteDeviceLogByDeviceIds(Long[] deviceIds); + public int deleteDeviceLogByDeviceId(Long deviceId); } diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/IDeviceService.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/IDeviceService.java index fbb1cec5..f3225686 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/IDeviceService.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/IDeviceService.java @@ -155,20 +155,13 @@ public interface IDeviceService public int reportDevice(Device device); /** - * 批量删除设备 + * 删除设备 * - * @param deviceIds 需要删除的设备主键集合 + * @param deviceId 需要删除的设备主键集合 * @return 结果 */ - public int deleteDeviceByDeviceIds(Long[] deviceIds) throws SchedulerException; + public int deleteDeviceByDeviceId(Long deviceId) throws SchedulerException; - /** - * 删除设备信息 - * - * @param deviceId 设备主键 - * @return 结果 - */ - public int deleteDeviceByDeviceId(Long deviceId); /** * 生成设备唯一编号 diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/impl/DeviceLogServiceImpl.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/impl/DeviceLogServiceImpl.java index a86287a6..1bb5df1b 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/impl/DeviceLogServiceImpl.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/impl/DeviceLogServiceImpl.java @@ -102,13 +102,13 @@ public class DeviceLogServiceImpl implements IDeviceLogService /** * 根据设备Ids批量删除设备日志 * - * @param deviceIds 需要删除数据的设备Ids + * @param deviceId 需要删除数据的设备Ids * @return 结果 */ @Override - public int deleteDeviceLogByDeviceIds(Long[] deviceIds) + public int deleteDeviceLogByDeviceId(Long deviceId) { - return deviceLogMapper.deleteDeviceLogByDeviceIds(deviceIds); + return deviceLogMapper.deleteDeviceLogByDeviceId(deviceId); } /** diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/impl/DeviceServiceImpl.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/impl/DeviceServiceImpl.java index fdd5b660..9e3ab282 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/impl/DeviceServiceImpl.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/service/impl/DeviceServiceImpl.java @@ -796,34 +796,44 @@ public class DeviceServiceImpl implements IDeviceService { } /** - * 批量删除设备 - * @param deviceIds 需要删除的设备主键 + * 删除设备 + * @param deviceId 需要删除的设备主键 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int deleteDeviceByDeviceIds(Long[] deviceIds) throws SchedulerException { - // 删除设备分组 - deviceMapper.deleteDeviceGroupByDeviceIds(deviceIds); - // TODO 删除设备日志 td里面删除 - deviceLogMapper.deleteDeviceLogByDeviceIds(deviceIds); - // TODO 删除设备告警记录 + public int deleteDeviceByDeviceId(Long deviceId) throws SchedulerException { + SysUser user=getLoginUser().getUser(); + // 是否为普通用户,普通用户如果不是设备所有者,只能删除设备用户和用户自己的设备关联分组信息 + boolean isGeneralUser=false; + List roles=user.getRoles(); + for(int i=0;i selectLogListByPage(String dbName, Integer pageSize, Integer pageNum, String deviceNum, Date beginDate, Date endDate); + int deleteDeviceLogByDeviceId(String dbName,Long deviceId); + + // List selectLogListByPage(String dbName, Integer pageSize, Integer pageNum, String deviceNum, Date beginDate, Date endDate); List selectLogList(String dbName, Long deviceId, String serialNumber, Long isMonitor, Long logType, Date beginDate, Date endDate); diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/ILogService.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/ILogService.java index da807e23..f8e5d542 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/ILogService.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/ILogService.java @@ -18,8 +18,12 @@ import java.util.List; */ public interface ILogService { + /** 保存设备日志 **/ int saveDeviceLog(DeviceLog deviceLog); + /** 根据设备ID删除设备日志 **/ + int deleteDeviceLogByDeviceId(Long deviceId); + /** 设备属性、功能、事件总数 **/ DeviceStatistic selectCategoryLogCount(); diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/impl/MySqlLogServiceImpl.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/impl/MySqlLogServiceImpl.java index 2b93ca8a..bdf6efcd 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/impl/MySqlLogServiceImpl.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/impl/MySqlLogServiceImpl.java @@ -22,11 +22,24 @@ public class MySqlLogServiceImpl implements ILogService { this.deviceLogMapper=_deviceLogMapper; } + /*** + * 新增设备日志 + * @return + */ @Override public int saveDeviceLog(DeviceLog deviceLog) { return deviceLogMapper.insertDeviceLog(deviceLog); } + /*** + * 根据设备ID删除设备日志 + * @return + */ + @Override + public int deleteDeviceLogByDeviceId(Long deviceId) { + return deviceLogMapper.deleteDeviceLogByDeviceId(deviceId); + } + /*** * 设备属性、功能、事件和监测数据总数 * @return diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/impl/TdengineLogServiceImpl.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/impl/TdengineLogServiceImpl.java index 42e08cbe..62d97935 100644 --- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/impl/TdengineLogServiceImpl.java +++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/service/impl/TdengineLogServiceImpl.java @@ -36,6 +36,10 @@ public class TdengineLogServiceImpl implements ILogService { this.dbName=_tDengineConfig.getDbName(); } + /*** + * 新增设备日志 + * @return + */ @Override public int saveDeviceLog(DeviceLog deviceLog) { long logId = snowflakeIdWorker.nextId(); @@ -43,17 +47,37 @@ public class TdengineLogServiceImpl implements ILogService { return tdDeviceLogDAO.save(dbName,deviceLog); } - /** 设备属性、功能、事件和监测数据总数 **/ + /*** + * 根据设备ID删除设备日志 + * @return + */ + @Override + public int deleteDeviceLogByDeviceId(Long deviceId) { + return tdDeviceLogDAO.deleteDeviceLogByDeviceId(dbName,deviceId); + } + + /*** + * 设备属性、功能、事件和监测数据总数 + * @return + */ @Override public DeviceStatistic selectCategoryLogCount(){ return tdDeviceLogDAO.selectCategoryLogCount(dbName); } + /*** + * 日志列表 + * @return + */ @Override public List selectDeviceLogList(DeviceLog deviceLog) { return tdDeviceLogDAO.selectDeviceLogList(dbName,deviceLog); } + /*** + * 监测数据列表 + * @return + */ @Override public List selectMonitorList(DeviceLog deviceLog) { if(deviceLog.getIdentity()!=null){ diff --git a/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceLogMapper.xml b/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceLogMapper.xml index baa43354..65b1605f 100644 --- a/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceLogMapper.xml +++ b/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceLogMapper.xml @@ -120,10 +120,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - delete from iot_device_log where device_id in - - #{deviceId} - + + delete from iot_device_log where device_id = #{deviceId} \ No newline at end of file diff --git a/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceMapper.xml b/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceMapper.xml index 405cfc73..d8ca6ff3 100644 --- a/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceMapper.xml +++ b/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceMapper.xml @@ -151,7 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select d.device_id, d.device_name, d.product_name, d.user_name, d.serial_number, d.firmware_version, d.status,d.rssi,d.is_shadow , d.location_way, d.active_time,d.network_address,d.longitude,latitude from iot_device d - left join iot_device_user u on u.device_id = d.device_id + inner join iot_device_user u on u.device_id = d.device_id and u.user_id = #{userId} and d.device_name like concat('%', #{deviceName}, '%') @@ -169,7 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select d.device_id, d.device_name, d.product_name, d.user_name, d.serial_number, d.firmware_version, d.status,d.rssi,d.is_shadow , d.location_way, d.active_time,d.network_address,d.longitude,latitude from iot_device d - left join iot_device_user u on u.device_id = d.device_id + inner join iot_device_user u on u.device_id = d.device_id and u.user_id = #{userId} and d.tenant_id = #{tenantId} @@ -191,7 +191,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" d.firmware_version, d.status,d.rssi,d.is_shadow ,d.location_way, d.things_model_value, d.active_time,d.img_url,u.user_id from iot_device d - left join iot_device_user u on u.device_id = d.device_id + inner join iot_device_user u on u.device_id = d.device_id left join iot_device_group g on g.device_id=d.device_id and g.group_id = #{groupId} @@ -406,10 +406,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select count(*) from iot_device where serial_number = #{deviceNum} - - delete from iot_device_group where device_id in - - #{deviceId} - + + delete from iot_device_group + + and device_id = #{deviceId} + user_id = #{userId} + \ No newline at end of file diff --git a/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceUserMapper.xml b/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceUserMapper.xml index ada6430e..ad0b9f96 100644 --- a/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceUserMapper.xml +++ b/springboot/wumei-iot/src/main/resources/mapper/iot/DeviceUserMapper.xml @@ -106,8 +106,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where device_id = #{deviceId} and user_id = #{userId} - - delete from iot_device_user where device_id = #{deviceId} and is_owner !=1 + + delete from iot_device_user + + and device_id = #{deviceId} + user_id = #{userId} + diff --git a/springboot/wumei-iot/src/main/resources/mapper/tdengine/TDDeviceLogMapper.xml b/springboot/wumei-iot/src/main/resources/mapper/tdengine/TDDeviceLogMapper.xml index 1ef05040..0a3e6127 100644 --- a/springboot/wumei-iot/src/main/resources/mapper/tdengine/TDDeviceLogMapper.xml +++ b/springboot/wumei-iot/src/main/resources/mapper/tdengine/TDDeviceLogMapper.xml @@ -95,18 +95,22 @@ delete from ${database}.device_${device.serialNumber} - - log_id = #{logId} - - - device_id = #{deviceId} - - - serial_number = #{serialNumber} - + log_id = #{logId} + device_id = #{deviceId} + serial_number = #{serialNumber} + + delete from ${database}.device_${device.serialNumber} + + log_id = #{logId} + device_id = #{deviceId} + serial_number = #{serialNumber} + + + +