From c9a72bc61b7752b9c9ed8a88cdd365fc52e5d94f Mon Sep 17 00:00:00 2001 From: "lenovo008\\lenovo" Date: Thu, 25 Sep 2025 15:36:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(rule):=20=E6=B7=BB=E5=8A=A0=E8=A7=84?= =?UTF-8?q?=E5=88=99=E5=90=8D=E7=A7=B0=E6=A8=A1=E7=B3=8A=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cc/iotkit/data/manager/IRuleInfoData.java | 4 +++ .../iotkit/data/dao/RuleInfoRepository.java | 4 +++ .../iotkit/data/service/RuleInfoDataImpl.java | 25 +++++++++++++++++++ .../service/impl/RuleEngineServiceImpl.java | 7 ++++++ 4 files changed, 40 insertions(+) diff --git a/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IRuleInfoData.java b/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IRuleInfoData.java index f7d3f61..b542527 100644 --- a/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IRuleInfoData.java +++ b/iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IRuleInfoData.java @@ -37,4 +37,8 @@ public interface IRuleInfoData extends IOwnedData { Paging findByType(String type, int page, int size); + Paging findByTypeAndNameLike(String type, String name, int page, int size); + + Paging findByUidAndTypeAndNameLike(String uid, String type, String name, int page, int size); + } diff --git a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/RuleInfoRepository.java b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/RuleInfoRepository.java index 69ca68d..d66fcb0 100644 --- a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/RuleInfoRepository.java +++ b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/RuleInfoRepository.java @@ -43,6 +43,10 @@ public interface RuleInfoRepository extends JpaRepository, Q Page findByType(String type, Pageable pageable); + Page findByTypeAndNameLike(String type, String name, Pageable pageable); + + Page findByUidAndTypeAndNameLike(String uid, String type, String name, Pageable pageable); + long countByUid(String uid); } diff --git a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/RuleInfoDataImpl.java b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/RuleInfoDataImpl.java index 7a913f2..53bc018 100644 --- a/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/RuleInfoDataImpl.java +++ b/iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/RuleInfoDataImpl.java @@ -110,6 +110,31 @@ public class RuleInfoDataImpl implements IRuleInfoData, IJPACommData findByTypeAndNameLike(String type, String name, int page, int size) { + Page paged = ruleInfoRepository.findByTypeAndNameLike(type, "%" + name + "%", + Pageable.ofSize(size).withPage(page - 1)); + List ruleInfoList = fromTb(paged.getContent()); + for (RuleInfo tbRule :ruleInfoList) { + if (ObjectUtil.isNotNull(tbRule.getTenantId())) { + SysTenant sysTenant = new SysTenant(); + sysTenant.setTenantId(tbRule.getTenantId()); + SysTenant sysTenant1 = isSysTenantData.findOneByCondition(sysTenant); + if (sysTenant1 != null) { + tbRule.setTenantName(sysTenant1.getCompanyName()); + } + } + } + return new Paging<>(paged.getTotalElements(), ruleInfoList); + } + + @Override + public Paging findByUidAndTypeAndNameLike(String uid, String type, String name, int page, int size) { + Page paged = ruleInfoRepository.findByUidAndTypeAndNameLike(uid, type, "%" + name + "%", + Pageable.ofSize(size).withPage(page - 1)); + return new Paging<>(paged.getTotalElements(), fromTb(paged.getContent())); + } + @Override public List findByUid(String uid) { return fromTb(ruleInfoRepository.findByUid(uid)); diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/RuleEngineServiceImpl.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/RuleEngineServiceImpl.java index ad4cd5d..11f0b9e 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/RuleEngineServiceImpl.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/RuleEngineServiceImpl.java @@ -113,11 +113,18 @@ public class RuleEngineServiceImpl implements IRuleEngineService { public Paging selectPageList(PageRequest request) { RuleInfoBo data = request.getData(); String type = data.getType(); + String name = data.getName(); Integer page = request.getPageNum(); Integer size = request.getPageSize(); if (AuthUtil.isAdmin()) { + if (StringUtils.isNotEmpty(name)) { + return MapstructUtils.convert(ruleInfoData.findByTypeAndNameLike(type, name, page, size), RuleInfoVo.class); + } return MapstructUtils.convert(ruleInfoData.findByType(type, page, size), RuleInfoVo.class); } else { + if (StringUtils.isNotEmpty(name)) { + return MapstructUtils.convert(ruleInfoData.findByUidAndTypeAndNameLike(AuthUtil.getUserId(), type, name, page, size), RuleInfoVo.class); + } return MapstructUtils.convert(ruleInfoData.findByUidAndType(AuthUtil.getUserId(), type, page, size), RuleInfoVo.class); } }