Procházet zdrojové kódy

数据权限-优化

lishuangjiang@potevio.com před 2 roky
rodič
revize
992f8b8e70
20 změnil soubory, kde provedl 203 přidání a 30 odebrání
  1. 5 0
      iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceInfo.java
  2. 7 0
      iot-dao/iot-data-model/src/main/java/cc/iotkit/model/notify/NotifyMessage.java
  3. 5 0
      iot-dao/iot-data-model/src/main/java/cc/iotkit/model/rule/RuleInfo.java
  4. 5 0
      iot-dao/iot-data-model/src/main/java/cc/iotkit/model/rule/TaskInfo.java
  5. 3 1
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/NotifyMessageRepository.java
  6. 3 1
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/RuleInfoRepository.java
  7. 3 1
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/TaskInfoRepository.java
  8. 17 5
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbDeviceInfo.java
  9. 16 1
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbRuleInfo.java
  10. 14 1
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbTaskInfo.java
  11. 16 2
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceInfoDataImpl.java
  12. 23 0
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/NotifyMessageDataImpl.java
  13. 23 5
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/RuleInfoDataImpl.java
  14. 22 5
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/TaskInfoDataImpl.java
  15. 1 0
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java
  16. 11 0
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/RuleEngineController.java
  17. 5 0
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/bo/device/DeviceInfoBo.java
  18. 4 1
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/NotifyService.java
  19. 2 0
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceManagerServiceImpl.java
  20. 18 7
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/RuleEngineServiceImpl.java

+ 5 - 0
iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceInfo.java

@@ -28,6 +28,11 @@ public class DeviceInfo implements Owned<String> {
 
     private String id;
 
+    /**
+     * 租户编号
+     */
+    private String tenantId;
+
     private String deviceId;
 
     /**

+ 7 - 0
iot-dao/iot-data-model/src/main/java/cc/iotkit/model/notify/NotifyMessage.java

@@ -19,6 +19,13 @@ public class NotifyMessage implements Id<Long> {
 
     private Long id;
 
+    /**
+     * 租户编号
+     */
+    private String tenantId;
+
+    private Long deptId;
+
     private String content;
 
     private String messageType;

+ 5 - 0
iot-dao/iot-data-model/src/main/java/cc/iotkit/model/rule/RuleInfo.java

@@ -30,6 +30,11 @@ public class RuleInfo implements Owned<String> {
 
     private String id;
 
+    /**
+     * 租户编号
+     */
+    private String tenantId;
+
     private String name;
 
     private String type;

+ 5 - 0
iot-dao/iot-data-model/src/main/java/cc/iotkit/model/rule/TaskInfo.java

@@ -34,6 +34,11 @@ public class TaskInfo implements Owned<String> {
 
     private String id;
 
+    /**
+     * 租户编号
+     */
+    private String tenantId;
+
     private String name;
 
     /**

+ 3 - 1
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/NotifyMessageRepository.java

@@ -1,13 +1,15 @@
 package cc.iotkit.data.dao;
 
 import cc.iotkit.data.model.TbNotifyMessage;
+import cc.iotkit.data.model.TbTaskInfo;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.querydsl.QuerydslPredicateExecutor;
 
 /**
  * @Author: 石恒
  * @Date: 2023/5/13 18:36
  * @Description:
  */
-public interface NotifyMessageRepository extends JpaRepository<TbNotifyMessage, String> {
+public interface NotifyMessageRepository extends JpaRepository<TbNotifyMessage, String>, QuerydslPredicateExecutor<TbNotifyMessage> {
 
 }

+ 3 - 1
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/RuleInfoRepository.java

@@ -10,13 +10,15 @@
 package cc.iotkit.data.dao;
 
 import cc.iotkit.data.model.TbRuleInfo;
+import cc.iotkit.data.model.TbTaskInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.querydsl.QuerydslPredicateExecutor;
 
 import java.util.List;
 
-public interface RuleInfoRepository extends JpaRepository<TbRuleInfo, String> {
+public interface RuleInfoRepository extends JpaRepository<TbRuleInfo, String>, QuerydslPredicateExecutor<TbRuleInfo> {
 
     List<TbRuleInfo> findByUid(String uid);
 

+ 3 - 1
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/TaskInfoRepository.java

@@ -9,14 +9,16 @@
  */
 package cc.iotkit.data.dao;
 
+import cc.iotkit.data.model.TbSysOperLog;
 import cc.iotkit.data.model.TbTaskInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.querydsl.QuerydslPredicateExecutor;
 
 import java.util.List;
 
-public interface TaskInfoRepository extends JpaRepository<TbTaskInfo, String> {
+public interface TaskInfoRepository extends JpaRepository<TbTaskInfo, String>, QuerydslPredicateExecutor<TbTaskInfo> {
 
     List<TbTaskInfo> findByUid(String uid);
 

+ 17 - 5
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbDeviceInfo.java

@@ -1,5 +1,7 @@
 package cc.iotkit.data.model;
 
+import cc.iotkit.common.tenant.dao.TenantAware;
+import cc.iotkit.common.tenant.listener.TenantListener;
 import cc.iotkit.model.device.DeviceInfo;
 import io.github.linpeilie.annotations.AutoMapper;
 import io.github.linpeilie.annotations.AutoMapping;
@@ -7,25 +9,35 @@ import io.github.linpeilie.annotations.ReverseAutoMapping;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.hibernate.annotations.Filter;
+import org.hibernate.annotations.FilterDef;
 import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.ParamDef;
 
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import javax.persistence.*;
 
 @Data
 @Entity
 @Table(name = "device_info")
 @ApiModel(value = "设备信息")
 @AutoMapper(target = DeviceInfo.class)
-public class TbDeviceInfo {
+@FilterDef(name = "tenantFilter", parameters = {@ParamDef(name = "tenantId", type = "string")})
+@Filter(name = "tenantFilter", condition = "tenant_id = :tenantId")
+@EntityListeners(TenantListener.class)
+public class TbDeviceInfo extends BaseEntity implements TenantAware {
 
     @Id
     @GeneratedValue(generator = "SnowflakeIdGenerator")
     @GenericGenerator(name = "SnowflakeIdGenerator", strategy = "cc.iotkit.data.config.id.SnowflakeIdGenerator")
     private String id;
 
+    /**
+     * 租户编号
+     */
+    @ApiModelProperty(value = "租户编号")
+    private String tenantId;
+
+
     @ApiModelProperty(value = "设备id")
     private String deviceId;
 

+ 16 - 1
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbRuleInfo.java

@@ -9,6 +9,8 @@
  */
 package cc.iotkit.data.model;
 
+import cc.iotkit.common.tenant.dao.TenantAware;
+import cc.iotkit.common.tenant.listener.TenantListener;
 import cc.iotkit.model.rule.RuleInfo;
 import io.github.linpeilie.annotations.AutoMapper;
 import io.github.linpeilie.annotations.AutoMapping;
@@ -16,7 +18,10 @@ import io.github.linpeilie.annotations.ReverseAutoMapping;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.hibernate.annotations.Filter;
+import org.hibernate.annotations.FilterDef;
 import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.ParamDef;
 
 import javax.persistence.*;
 
@@ -25,7 +30,10 @@ import javax.persistence.*;
 @Table(name = "rule_info")
 @ApiModel(value = "规则")
 @AutoMapper(target = RuleInfo.class)
-public class TbRuleInfo {
+@FilterDef(name = "tenantFilter", parameters = {@ParamDef(name = "tenantId", type = "string")})
+@Filter(name = "tenantFilter", condition = "tenant_id = :tenantId")
+@EntityListeners(TenantListener.class)
+public class TbRuleInfo  extends BaseEntity implements TenantAware{
 
     @Id
     @GeneratedValue(generator = "SnowflakeIdGenerator")
@@ -33,6 +41,13 @@ public class TbRuleInfo {
     @ApiModelProperty(value = "规则id")
     private String id;
 
+    /**
+     * 租户编号
+     */
+    @ApiModelProperty(value = "租户编号")
+    private String tenantId;
+
+
     @ApiModelProperty(value = "规则名称")
     private String name;
 

+ 14 - 1
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbTaskInfo.java

@@ -9,13 +9,18 @@
  */
 package cc.iotkit.data.model;
 
+import cc.iotkit.common.tenant.dao.TenantAware;
+import cc.iotkit.common.tenant.listener.TenantListener;
 import cc.iotkit.model.rule.TaskInfo;
 import io.github.linpeilie.annotations.AutoMapper;
 import io.github.linpeilie.annotations.AutoMapping;
 import io.github.linpeilie.annotations.ReverseAutoMapping;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.hibernate.annotations.Filter;
+import org.hibernate.annotations.FilterDef;
 import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.ParamDef;
 
 import javax.persistence.*;
 
@@ -23,7 +28,10 @@ import javax.persistence.*;
 @Entity
 @Table(name = "task_info")
 @AutoMapper(target = TaskInfo.class)
-public class TbTaskInfo {
+@FilterDef(name = "tenantFilter", parameters = {@ParamDef(name = "tenantId", type = "string")})
+@Filter(name = "tenantFilter", condition = "tenant_id = :tenantId")
+@EntityListeners(TenantListener.class)
+public class TbTaskInfo  extends BaseEntity implements TenantAware {
 
     @Id
     @GeneratedValue(generator = "SnowflakeIdGenerator")
@@ -34,6 +42,11 @@ public class TbTaskInfo {
     @ApiModelProperty(value = "任务名称")
     private String name;
 
+    /**
+     * 租户编号
+     */
+    @ApiModelProperty(value = "租户编号")
+    private String tenantId;
     /**
      * 任务类型
      */

+ 16 - 2
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceInfoDataImpl.java

@@ -10,11 +10,13 @@ import cc.iotkit.data.manager.IDeviceInfoData;
 import cc.iotkit.data.manager.IProductData;
 import cc.iotkit.data.model.*;
 import cc.iotkit.data.util.PageBuilder;
+import cc.iotkit.data.util.PredicateBuilder;
 import cc.iotkit.model.device.DeviceInfo;
 import cc.iotkit.model.device.message.DevicePropertyCache;
 import cc.iotkit.model.product.Category;
 import cc.iotkit.model.product.Product;
 import cc.iotkit.model.stats.DataItem;
+import cn.hutool.core.collection.CollectionUtil;
 import com.querydsl.core.Tuple;
 import com.querydsl.core.types.Projections;
 import com.querydsl.jpa.impl.JPAQuery;
@@ -541,6 +543,9 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
 
     @Override
     public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String productKey, String group, String state, String keyword, Integer page, Integer size, String tenantId) {
+        if(StringUtils.isBlank(tenantId)){
+            return new Paging<>(0, Collections.emptyList());
+        }
         JPAQuery<TbDeviceInfo> query = jpaQueryFactory.selectFrom(tbDeviceInfo);
 
         if (StringUtils.isNotBlank(uid)) {
@@ -564,8 +569,15 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
             query.where(tbDeviceInfo.deviceId.like("%" + keyword + "%")
                     .or(tbDeviceInfo.deviceName.like("%" + keyword + "%")));
         }
-        if (tenantId != null && !tenantId.equals("000000")) {
-            query.leftJoin(tbProduct).on(tbProduct.productKey.eq(tbDeviceInfo.productKey)).where(tbProduct.tenantId.eq(tenantId));
+//        if (tenantId != null && !tenantId.equals("000000")) {
+//            query.leftJoin(tbProduct).on(tbProduct.productKey.eq(tbDeviceInfo.productKey)).where(tbProduct.tenantId.eq(tenantId));
+//        }
+        if (StringUtils.isNotBlank(tenantId)){
+            query.where(tbDeviceInfo.tenantId.eq(tenantId));
+            List<Long> finalDeptList = PredicateBuilder.queryCacheChildDeptIds(tenantId);
+            if(CollectionUtil.isNotEmpty(finalDeptList)){
+                query.where(tbDeviceInfo.createDept.in(finalDeptList));
+            }
         }
         query.orderBy(tbDeviceInfo.createAt.desc());
         query.offset((page - 1) * size).limit(size);
@@ -596,4 +608,6 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
         }
 
     }
+
+
 }

+ 23 - 0
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/NotifyMessageDataImpl.java

@@ -1,16 +1,26 @@
 package cc.iotkit.data.service;
 
+import cc.iotkit.common.api.PageRequest;
+import cc.iotkit.common.api.Paging;
 import cc.iotkit.data.dao.IJPACommData;
 import cc.iotkit.data.dao.NotifyMessageRepository;
 import cc.iotkit.data.manager.INotifyMessageData;
 import cc.iotkit.data.model.TbNotifyMessage;
+import cc.iotkit.data.util.PageBuilder;
+import cc.iotkit.data.util.PredicateBuilder;
 import cc.iotkit.model.notify.NotifyMessage;
+import cc.iotkit.model.rule.TaskInfo;
+import com.querydsl.core.types.Predicate;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.context.annotation.Primary;
+import org.springframework.data.domain.Example;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 
+import static cc.iotkit.data.model.QTbTaskInfo.tbTaskInfo;
+
 /**
  * @Author: 石恒
  * @Date: 2023/5/13 18:35
@@ -39,4 +49,17 @@ public class NotifyMessageDataImpl implements INotifyMessageData, IJPACommData<N
         return NotifyMessage.class;
     }
 
+    @Override
+    public Paging<NotifyMessage> findAll(PageRequest<NotifyMessage> pageRequest) {
+        return PageBuilder.toPaging(
+                notifyMessageRepository.findAll(
+                        buildQueryCondition(pageRequest.getData()),
+                        PageBuilder.toPageable(pageRequest)), NotifyMessage.class);
+    }
+
+    private Predicate buildQueryCondition(NotifyMessage data) {
+        PredicateBuilder predicateBuilder = PredicateBuilder.instance()
+                .and(StringUtils.isNotBlank(data.getTenantId()), () -> tbTaskInfo.tenantId.eq(data.getTenantId()));
+        return predicateBuilder.build();
+    }
 }

+ 23 - 5
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/RuleInfoDataImpl.java

@@ -10,18 +10,21 @@
 package cc.iotkit.data.service;
 
 import cc.iotkit.common.api.PageRequest;
+import cc.iotkit.common.api.Paging;
 import cc.iotkit.common.utils.JsonUtils;
 import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.data.dao.IJPACommData;
-import cc.iotkit.data.manager.IRuleInfoData;
 import cc.iotkit.data.dao.RuleInfoRepository;
+import cc.iotkit.data.manager.IRuleInfoData;
+import cc.iotkit.data.model.QTbRuleInfo;
+import cc.iotkit.data.model.QTbTaskInfo;
 import cc.iotkit.data.model.TbRuleInfo;
-import cc.iotkit.common.api.Paging;
-import cc.iotkit.data.model.TbTaskInfo;
 import cc.iotkit.data.util.PageBuilder;
+import cc.iotkit.data.util.PredicateBuilder;
 import cc.iotkit.model.rule.FilterConfig;
 import cc.iotkit.model.rule.RuleAction;
 import cc.iotkit.model.rule.RuleInfo;
+import com.querydsl.core.types.Predicate;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Primary;
@@ -36,6 +39,9 @@ import java.util.List;
 import java.util.UUID;
 import java.util.stream.Collectors;
 
+
+import static cc.iotkit.data.model.QTbRuleInfo.tbRuleInfo;
+
 @Primary
 @Service
 public class RuleInfoDataImpl implements IRuleInfoData, IJPACommData<RuleInfo, String> {
@@ -110,8 +116,20 @@ public class RuleInfoDataImpl implements IRuleInfoData, IJPACommData<RuleInfo, S
 
     @Override
     public Paging<RuleInfo> findAll(PageRequest<RuleInfo> pageRequest) {
-        Page<TbRuleInfo> ret = ruleInfoRepository.findAll(PageBuilder.toPageable(pageRequest));
-        return new Paging<>(ret.getTotalElements(), fromTb(ret.getContent()));
+//        Page<TbRuleInfo> ret = ruleInfoRepository.findAll(PageBuilder.toPageable(pageRequest));
+//        return new Paging<>(ret.getTotalElements(), fromTb(ret.getContent()));
+        return PageBuilder.toPaging(
+                ruleInfoRepository.findAll(
+                        buildQueryCondition(pageRequest.getData()),
+                        PageBuilder.toPageable(pageRequest)), RuleInfo.class);
+    }
+
+    private Predicate buildQueryCondition(RuleInfo data) {
+        PredicateBuilder predicateBuilder = PredicateBuilder.instance()
+                .and(StringUtils.isNotBlank(data.getTenantId()), () -> tbRuleInfo.tenantId.eq(data.getTenantId()))
+                .and(StringUtils.isNotBlank(data.getUid()), () -> tbRuleInfo.uid.eq(data.getUid()))
+                .and(StringUtils.isNotBlank(data.getType()), () -> tbRuleInfo.type.eq(data.getType()));
+        return predicateBuilder.build();
     }
 
     @Override

+ 22 - 5
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/TaskInfoDataImpl.java

@@ -16,10 +16,13 @@ import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.data.dao.IJPACommData;
 import cc.iotkit.data.dao.TaskInfoRepository;
 import cc.iotkit.data.manager.ITaskInfoData;
+import cc.iotkit.data.model.QTbTaskInfo;
 import cc.iotkit.data.model.TbTaskInfo;
 import cc.iotkit.data.util.PageBuilder;
+import cc.iotkit.data.util.PredicateBuilder;
 import cc.iotkit.model.rule.RuleAction;
 import cc.iotkit.model.rule.TaskInfo;
+import com.querydsl.core.types.Predicate;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +36,8 @@ import java.util.List;
 import java.util.UUID;
 import java.util.stream.Collectors;
 
+import static cc.iotkit.data.model.QTbTaskInfo.tbTaskInfo;
+
 @Primary
 @Service
 @RequiredArgsConstructor
@@ -84,11 +89,23 @@ public class TaskInfoDataImpl implements ITaskInfoData, IJPACommData<TaskInfo, S
 
     @Override
     public Paging<TaskInfo> findAll(PageRequest<TaskInfo> pageRequest) {
-        Page<TbTaskInfo> ret = taskInfoRepository.findAll(PageBuilder.toPageable(pageRequest));
-        return new Paging<>(ret.getTotalElements(),
-                ret.getContent().stream().map(this::to)
-                        .collect(Collectors.toList())
-        );
+        return PageBuilder.toPaging(
+            taskInfoRepository.findAll(
+                buildQueryCondition(pageRequest.getData()),
+                PageBuilder.toPageable(pageRequest)),TaskInfo.class);
+//        Page<TbTaskInfo> ret = taskInfoRepository.findAll(PageBuilder.toPageable(pageRequest));
+//        return new Paging<>(ret.getTotalElements(),
+//                ret.getContent().stream().map(this::to)
+//                        .collect(Collectors.toList())
+//        );
+    }
+
+    private Predicate buildQueryCondition(TaskInfo data) {
+        PredicateBuilder predicateBuilder = PredicateBuilder.instance()
+                .and(StringUtils.isNotBlank(data.getTenantId()), () -> tbTaskInfo.tenantId.eq(data.getTenantId()))
+                .and(StringUtils.isNotBlank(data.getUid()), () -> tbTaskInfo.uid.eq(data.getUid()))
+                .and(StringUtils.isNotBlank(data.getType()), () -> tbTaskInfo.type.eq(data.getType()));
+        return predicateBuilder.build();
     }
 
     @Override

+ 1 - 0
iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java

@@ -97,6 +97,7 @@ public class DeviceController {
     @SaCheckPermission("iot:device:add")
     @PostMapping("/add")
     public boolean createDevice(@RequestBody @Validated Request<DeviceInfoBo> bo) {
+
         return deviceServiceImpl.addDevice(bo.getData());
     }
 

+ 11 - 0
iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/RuleEngineController.java

@@ -32,6 +32,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.HashMap;
+import java.util.Map;
+
 @Api(tags = {"规则引擎"})
 @Slf4j
 @RestController
@@ -48,6 +51,10 @@ public class RuleEngineController {
             @Validated @RequestBody
                     PageRequest<RuleInfoBo> request
     ) {
+        //排序
+        Map<String,String> sortMap = new HashMap<>();
+        sortMap.put("createTime","desc");
+        request.setSortMap(sortMap);
         return ruleEngineService.selectPageList(request);
     }
 
@@ -104,6 +111,10 @@ public class RuleEngineController {
     @SaCheckPermission("iot:task:query")
     @PostMapping("/tasks/list")
     public Paging<TaskInfoVo> tasks(@Validated @RequestBody PageRequest<TaskInfoBo> request) {
+        //排序
+        Map<String,String> sortMap = new HashMap<>();
+        sortMap.put("createTime","desc");
+        request.setSortMap(sortMap);
         return ruleEngineService.selectTaskPageList(request);
     }
 

+ 5 - 0
iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/bo/device/DeviceInfoBo.java

@@ -25,6 +25,11 @@ public class DeviceInfoBo extends BaseDto {
     @ApiModelProperty(value = "创建时间")
     private Long createAt;
 
+    /**
+     * 租户编号
+     */
+    private String tenantId;
+
     @ApiModelProperty(value = "设备id")
     @Size(max = 255, message = "设备id长度不正确")
     private String deviceId;

+ 4 - 1
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/NotifyService.java

@@ -11,10 +11,12 @@ import cc.iotkit.manager.dto.bo.channel.ChannelConfigBo;
 import cc.iotkit.manager.dto.bo.channel.ChannelTemplateBo;
 import cc.iotkit.manager.dto.vo.channel.ChannelConfigVo;
 import cc.iotkit.manager.dto.vo.channel.ChannelTemplateVo;
+import cc.iotkit.manager.dto.vo.taskinfo.TaskInfoVo;
 import cc.iotkit.model.notify.Channel;
 import cc.iotkit.model.notify.ChannelConfig;
 import cc.iotkit.model.notify.ChannelTemplate;
 import cc.iotkit.model.notify.NotifyMessage;
+import cc.iotkit.model.rule.TaskInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -93,6 +95,7 @@ public class NotifyService {
     }
 
     public Paging<NotifyMessage> getNotifyMessageList(PageRequest<NotifyMessage> request) {
-        return iNotifyMessageData.findAll(request);
+        return iNotifyMessageData.findAll(request.to(NotifyMessage.class));
+//        return iNotifyMessageData.findAll(request);
     }
 }

+ 2 - 0
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceManagerServiceImpl.java

@@ -6,6 +6,7 @@ import cc.iotkit.common.constant.Constants;
 import cc.iotkit.common.enums.ErrCode;
 import cc.iotkit.common.exception.BizException;
 import cc.iotkit.common.satoken.utils.AuthUtil;
+import cc.iotkit.common.satoken.utils.LoginHelper;
 import cc.iotkit.common.tenant.helper.TenantHelper;
 import cc.iotkit.common.thing.ThingModelMessage;
 import cc.iotkit.common.utils.*;
@@ -137,6 +138,7 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService {
         }
 
         DeviceInfo device = new DeviceInfo();
+        device.setTenantId(LoginHelper.getTenantId());
         device.setId(DeviceUtil.newDeviceId(deviceName));
         device.setUid(product.getUid());
         device.setDeviceId(device.getId());

+ 18 - 7
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/RuleEngineServiceImpl.java

@@ -5,6 +5,7 @@ import cc.iotkit.common.api.Paging;
 import cc.iotkit.common.enums.ErrCode;
 import cc.iotkit.common.exception.BizException;
 import cc.iotkit.common.satoken.utils.AuthUtil;
+import cc.iotkit.common.satoken.utils.LoginHelper;
 import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.common.utils.ReflectUtil;
 import cc.iotkit.data.manager.IRuleInfoData;
@@ -36,6 +37,8 @@ import org.springframework.stereotype.Service;
 
 import java.util.UUID;
 
+//import static cc.iotkit.data.model.QTbRuleInfo;
+
 /**
  * @Author: jay
  * @Date: 2023/5/30 18:15
@@ -70,14 +73,18 @@ public class RuleEngineServiceImpl implements IRuleEngineService {
 
     @Override
     public Paging<RuleInfoVo> selectPageList(PageRequest<RuleInfoBo> request) {
-        RuleInfoBo data = request.getData();
-        String type = data.getType();
-        Integer page = request.getPageNum();
-        Integer size = request.getPageSize();
+//        RuleInfoBo data = request.getData();
+//        String type = data.getType();
+//        Integer page = request.getPageNum();
+//        Integer size = request.getPageSize();
         if (AuthUtil.isAdmin()) {
-            return MapstructUtils.convert(ruleInfoData.findByType(type, page, size), RuleInfoVo.class);
+            return ruleInfoData.findAll(request.to(RuleInfo.class)).to(RuleInfoVo.class);
+//            return MapstructUtils.convert(ruleInfoData.findByType(type, page, size), RuleInfoVo.class);
         } else {
-            return MapstructUtils.convert(ruleInfoData.findByUidAndType(AuthUtil.getUserId(), type, page, size), RuleInfoVo.class);
+            request.getData().setUid(AuthUtil.getUserId());
+            return ruleInfoData.findAll(request.to(RuleInfo.class)).to(RuleInfoVo.class);
+//            return MapstructUtils.convert(ruleInfoData.findByUidAndType(AuthUtil.getUserId(),
+//                    request.getData().getType(), request.getPageNum(), request.getPageSize()), RuleInfoVo.class);
         }
     }
 
@@ -85,6 +92,7 @@ public class RuleEngineServiceImpl implements IRuleEngineService {
     public boolean saveRule(RuleInfoBo ruleInfoBo) {
         RuleInfo rule = ruleInfoBo.to(RuleInfo.class);
         if (StringUtils.isBlank(rule.getId())) {
+            rule.setTenantId(LoginHelper.getTenantId());
             rule.setId(UUID.randomUUID().toString());
             rule.setState(RuleInfo.STATE_STOPPED);
             rule.setCreateAt(System.currentTimeMillis());
@@ -174,13 +182,16 @@ public class RuleEngineServiceImpl implements IRuleEngineService {
         if (AuthUtil.isAdmin()) {
             return taskInfoData.findAll(request.to(TaskInfo.class)).to(TaskInfoVo.class);
         }
-        return taskInfoData.findByUid(AuthUtil.getUserId(), request.getPageNum(), request.getPageSize()).to(TaskInfoVo.class);
+        request.getData().setUid(AuthUtil.getUserId());
+        return taskInfoData.findAll(request.to(TaskInfo.class)).to(TaskInfoVo.class);
+//        return taskInfoData.findByUid(AuthUtil.getUserId(), request.getPageNum(), request.getPageSize()).to(TaskInfoVo.class);
     }
 
     @Override
     public boolean saveTask(TaskInfoBo bo) {
         TaskInfo taskInfo = bo.to(TaskInfo.class);
         if (StringUtils.isBlank(taskInfo.getId())) {
+            taskInfo.setTenantId(LoginHelper.getTenantId());
             taskInfo.setId(UUID.randomUUID().toString());
             taskInfo.setUid(AuthUtil.getUserId());
             taskInfo.setCreateAt(System.currentTimeMillis());