lishuangjiang@potevio.com 2 anni fa
parent
commit
149cabc363
21 ha cambiato i file con 236 aggiunte e 75 eliminazioni
  1. 6 2
      iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceInfoData.java
  2. 14 4
      iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoDataCache.java
  3. 14 4
      iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoPropertyDataCache.java
  4. 127 22
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceInfoDataImpl.java
  5. 3 3
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/ProductDataImpl.java
  6. 1 0
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysConfigDataImpl.java
  7. 18 22
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/HomeController.java
  8. 2 2
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java
  9. 2 2
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/IDeviceManagerService.java
  10. 11 8
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceManagerServiceImpl.java
  11. 11 2
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/ProductServiceImpl.java
  12. 1 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysDeptController.java
  13. 1 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysRoleController.java
  14. 1 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysUserController.java
  15. 2 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/dto/bo/SysTenantBo.java
  16. 6 1
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysConfigServiceImpl.java
  17. 2 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysDictDataServiceImpl.java
  18. 2 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysNoticeServiceImpl.java
  19. 2 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysPostServiceImpl.java
  20. 4 1
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysRoleServiceImpl.java
  21. 6 2
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysTenantServiceImpl.java

+ 6 - 2
iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceInfoData.java

@@ -143,7 +143,11 @@ public interface IDeviceInfoData extends IOwnedData<DeviceInfo, String> {
 
     Map countCategoryMap();
 
-    Map countStateMap();
+    Map countStateMap(String tenantId);
 
-    Long countTodayAdd();
+    Long countTodayAdd(String tenantId);
+
+    Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String pk, String group, String state, String keyword, Integer pageNum, Integer pageSize, String tenantId);
+
+    Long countByTenantId(String tenantId);
 }

+ 14 - 4
iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoDataCache.java

@@ -324,12 +324,22 @@ public class DeviceInfoDataCache implements IDeviceInfoData, SmartInitializingSi
     }
 
     @Override
-    public Map countStateMap() {
-        return deviceInfoData.countStateMap();
+    public Map countStateMap(String tenantId) {
+        return deviceInfoData.countStateMap(tenantId);
     }
 
     @Override
-    public Long countTodayAdd() {
-        return deviceInfoData.countTodayAdd();
+    public Long countTodayAdd(String tenantId) {
+        return deviceInfoData.countTodayAdd(tenantId);
+    }
+
+    @Override
+    public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String pk, String group, String state, String keyword, Integer pageNum, Integer pageSize, String tenantId) {
+        return deviceInfoData.findByConditionsAndTenantId(uid, subUid, pk, group, state, keyword, pageNum, pageSize, tenantId);
+    }
+
+    @Override
+    public Long countByTenantId(String tenantId) {
+        return deviceInfoData.countByTenantId(tenantId);
     }
 }

+ 14 - 4
iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoPropertyDataCache.java

@@ -198,12 +198,22 @@ public class DeviceInfoPropertyDataCache implements IDeviceInfoData {
     }
 
     @Override
-    public Map countStateMap() {
-        return deviceInfoData.countStateMap();
+    public Map countStateMap(String tenantId) {
+        return deviceInfoData.countStateMap(tenantId);
     }
 
     @Override
-    public Long countTodayAdd() {
-        return deviceInfoData.countTodayAdd();
+    public Long countTodayAdd(String tenantId) {
+        return deviceInfoData.countTodayAdd(tenantId);
+    }
+
+    @Override
+    public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String pk, String group, String state, String keyword, Integer pageNum, Integer pageSize, String tenantId) {
+        return deviceInfoData.findByConditionsAndTenantId(uid, subUid, pk, group, state, keyword, pageNum, pageSize, tenantId);
+    }
+
+    @Override
+    public Long countByTenantId(String tenantId) {
+        return deviceInfoData.countByTenantId(tenantId);
     }
 }

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

@@ -61,6 +61,8 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
 
     private final JPAQueryFactory jpaQueryFactory;
 
+    private List<String> deviceStateList = Arrays.asList("online", "offline", "unactivated");
+
     @Override
     public JpaRepository getBaseRepository() {
         return deviceInfoRepository;
@@ -233,7 +235,6 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
             query.where(tbDeviceInfo.deviceId.like("%" + keyword + "%")
                     .or(tbDeviceInfo.deviceName.like("%" + keyword + "%")));
         }
-
         query.orderBy(tbDeviceInfo.createAt.desc());
         query.offset((page - 1) * size).limit(size);
 
@@ -273,8 +274,8 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
     public List<DataItem> getDeviceStatsByCategory(String uid) {
         //先按产品统计设备数量
         JPAQuery<DataItem> query = jpaQueryFactory.select(Projections.bean(DataItem.class,
-                        tbDeviceInfo.productKey,
-                        tbDeviceInfo.count()))
+                tbDeviceInfo.productKey,
+                tbDeviceInfo.count()))
                 .from(tbDeviceInfo)
                 .groupBy(tbDeviceInfo.productKey);
 
@@ -299,7 +300,7 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
 
         //按品类分组求合
         rst.stream().collect(Collectors.groupingBy(DataItem::getName,
-                        Collectors.summarizingLong(item -> (long) item.getValue())))
+                Collectors.summarizingLong(item -> (long) item.getValue())))
                 .forEach((key, sum) -> stats.add(new DataItem(key, sum.getSum())));
 
         return stats;
@@ -379,7 +380,7 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
 
     @Override
     public List<DeviceInfo> findByIds(Collection<String> ids) {
-        return MapstructUtils.convert(deviceInfoRepository.findAllById(ids),DeviceInfo.class);
+        return MapstructUtils.convert(deviceInfoRepository.findAllById(ids), DeviceInfo.class);
     }
 
     @Override
@@ -459,36 +460,140 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
     }
 
     @Override
-    public Map countStateMap() {
-        Map<String,Long> resultMap = new HashMap();
-       List<Tuple> result =  jpaQueryFactory.select(tbDeviceInfo.id.count(),tbDeviceInfo.state).from(tbDeviceInfo).groupBy(tbDeviceInfo.state).fetch();
-       for(Tuple tuple: result){ resultMap.put(tuple.get(1,String.class),tuple.get(0,Long.class)); }
-       Long noRegistResult =  jpaQueryFactory.select(tbDeviceInfo.id.count()).from(tbDeviceInfo).where(tbDeviceInfo.state.eq("offline")
+    public Map countStateMap(String tenantId) {
+        Map<String, Long> resultMap = new HashMap();
+        if (StringUtils.isNotBlank(tenantId) && tenantId.equals("000000")) {
+            resultMap = countStateMapWithoutTenantId();
+        } else {
+            if (StringUtils.isNotBlank(tenantId)) {
+                resultMap = countStateMapWithTenantId(tenantId);
+            }
+        }
+        for(String item : deviceStateList){
+            Long itemData = resultMap.get(item);
+            if(Objects.isNull(itemData)){
+                resultMap.put(item,0L);
+            }
+        }
+        return resultMap;
+    }
+
+    private Map<String, Long> countStateMapWithTenantId(String tenantId) {
+        Map<String, Long> resultMap = new HashMap();
+        List<Tuple> result = jpaQueryFactory.select(tbDeviceInfo.id.count(), tbDeviceInfo.state).from(tbDeviceInfo)
+                .leftJoin(tbProduct).on(tbProduct.productKey.eq(tbDeviceInfo.productKey))
+                .where(tbProduct.tenantId.eq(tenantId))
+                .groupBy(tbDeviceInfo.state).fetch();
+        for (Tuple tuple : result) {
+            resultMap.put(tuple.get(1, String.class), tuple.get(0, Long.class));
+        }
+        Long noRegistResult = jpaQueryFactory.select(tbDeviceInfo.id.count()).from(tbDeviceInfo).where(tbDeviceInfo.state.eq("offline")
+                .and(tbDeviceInfo.onlineTime.isNull()))
+                .leftJoin(tbProduct).on(tbProduct.productKey.eq(tbDeviceInfo.productKey))
+                .where(tbProduct.tenantId.eq(tenantId))
+                .fetchOne();
+        resultMap.put("unactivated", noRegistResult);
+        //
+        Long offlineNum = resultMap.get("offline");
+        if (Objects.nonNull(offlineNum)) {
+            resultMap.put("offline", offlineNum - noRegistResult);
+        }
+        return resultMap;
+    }
+
+    private Map<String, Long> countStateMapWithoutTenantId() {
+        Map<String, Long> resultMap = new HashMap();
+        List<Tuple> result = jpaQueryFactory.select(tbDeviceInfo.id.count(), tbDeviceInfo.state).from(tbDeviceInfo).groupBy(tbDeviceInfo.state).fetch();
+        for (Tuple tuple : result) {
+            resultMap.put(tuple.get(1, String.class), tuple.get(0, Long.class));
+        }
+        Long noRegistResult = jpaQueryFactory.select(tbDeviceInfo.id.count()).from(tbDeviceInfo).where(tbDeviceInfo.state.eq("offline")
                 .and(tbDeviceInfo.onlineTime.isNull())).fetchOne();
-        resultMap.put("unactivated",noRegistResult);
+        resultMap.put("unactivated", noRegistResult);
         //
         Long offlineNum = resultMap.get("offline");
-        if(Objects.nonNull(offlineNum)){
-            resultMap.put("offline",offlineNum-noRegistResult);
+        if (Objects.nonNull(offlineNum)) {
+            resultMap.put("offline", offlineNum - noRegistResult);
         }
-       return resultMap;
+        return resultMap;
     }
 
     @Override
     public Map countCategoryMap() {
-        Map<String,Long> resultMap = new HashMap();
-        List<Tuple> result =  jpaQueryFactory.select(tbDeviceInfo.id.count(),tbDeviceInfo.productKey).from(tbDeviceInfo).groupBy(tbDeviceInfo.productKey).fetch();
-        for(Tuple tuple: result){ resultMap.put(tuple.get(1,String.class),tuple.get(0,Long.class)); }
+        Map<String, Long> resultMap = new HashMap();
+        List<Tuple> result = jpaQueryFactory.select(tbDeviceInfo.id.count(), tbDeviceInfo.productKey).from(tbDeviceInfo).groupBy(tbDeviceInfo.productKey).fetch();
+        for (Tuple tuple : result) {
+            resultMap.put(tuple.get(1, String.class), tuple.get(0, Long.class));
+        }
         return resultMap;
     }
 
     @Override
-    public Long countTodayAdd() {
+    public Long countTodayAdd(String tenantId) {
         Calendar calendar = Calendar.getInstance();
-        calendar.set(Calendar.HOUR_OF_DAY,0);
-        calendar.set(Calendar.MINUTE,0);
-        calendar.set(Calendar.HOUR,0);
-        calendar.set(Calendar.MILLISECOND,0);
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.HOUR, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
         return jpaQueryFactory.select(tbDeviceInfo.id.count()).from(tbDeviceInfo).where(tbDeviceInfo.createAt.gt(calendar.getTime().getTime())).fetchOne();
     }
+
+
+    @Override
+    public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String productKey, String group, String state, String keyword, Integer page, Integer size, String tenantId) {
+        JPAQuery<TbDeviceInfo> query = jpaQueryFactory.selectFrom(tbDeviceInfo);
+
+        if (StringUtils.isNotBlank(uid)) {
+            query.where(tbDeviceInfo.uid.eq(uid));
+        }
+
+        if (StringUtils.isNotBlank(subUid)) {
+            query.join(tbDeviceSubUser).on(tbDeviceSubUser.deviceId.eq(tbDeviceInfo.deviceId));
+            query.where(tbDeviceSubUser.uid.eq(subUid));
+        }
+
+        if (StringUtils.isNotBlank(productKey)) {
+            query.where(tbDeviceInfo.productKey.eq(productKey));
+        }
+
+        if (StringUtils.isNotBlank(state)) {
+            query.where(tbDeviceInfo.state.eq(state));
+        }
+
+        if (StringUtils.isNotBlank(keyword)) {
+            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));
+        }
+        query.orderBy(tbDeviceInfo.createAt.desc());
+        query.offset((page - 1) * size).limit(size);
+
+        List<TbDeviceInfo> tbDeviceInfos = query.fetch();
+        long total = query.fetchCount();
+        List<DeviceInfo> deviceInfos = new ArrayList<>(tbDeviceInfos.size());
+        for (TbDeviceInfo tbDeviceInfo : tbDeviceInfos) {
+            DeviceInfo deviceInfo = MapstructUtils.convert(tbDeviceInfo, DeviceInfo.class);
+            fillDeviceInfo(tbDeviceInfo.getDeviceId(), tbDeviceInfo, deviceInfo);
+            deviceInfos.add(deviceInfo);
+        }
+        return new Paging<>(total, deviceInfos);
+    }
+
+    @Override
+    public Long countByTenantId(String tenantId) {
+        if (StringUtils.isNotBlank(tenantId) && tenantId.equals("000000")) {
+            return this.count();
+        } else {
+            if (StringUtils.isNotBlank(tenantId)) {
+                return jpaQueryFactory.select(tbDeviceInfo.id.count()).from(tbDeviceInfo).leftJoin(tbProduct)
+                        .on(tbDeviceInfo.productKey.eq(tbProduct.productKey)).where(tbProduct.tenantId.eq(tenantId)
+                        ).fetchOne();
+            } else {
+                return 0L;
+            }
+        }
+
+    }
 }

+ 3 - 3
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/ProductDataImpl.java

@@ -99,8 +99,8 @@ public class ProductDataImpl implements IProductData, IJPACommData<Product, Long
     public Paging<Product> findAllByConditions(PageRequest<Product> pageRequest) {
         Product data = pageRequest.getData();
         Predicate predicate = buildPredicate(data);
-        QueryResults<TbProduct> tbSysConfigQueryResults = jpaQueryFactory.select(tbProduct).from(tbProduct).where(predicate).limit(pageRequest.getPageSize()).offset(pageRequest.getOffset()).fetchResults();
-        return PageBuilder.queryResults2Page(tbSysConfigQueryResults, SysConfig.class);
+        QueryResults<TbProduct> tbProductgQueryResults = jpaQueryFactory.select(tbProduct).from(tbProduct).where(predicate).limit(pageRequest.getPageSize()).offset(pageRequest.getOffset()).fetchResults();
+        return PageBuilder.queryResults2Page(tbProductgQueryResults, Product.class);
 
     }
 
@@ -124,7 +124,7 @@ public class ProductDataImpl implements IProductData, IJPACommData<Product, Long
         if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
             query.where(tbProduct.name.like("%" + name + "%"));
         }
-        query.orderBy(tbDeviceInfo.createAt.desc());
+        query.orderBy(tbProduct.createAt.desc());
         query.offset((page - 1) * size).limit(size);
 
         List<TbProduct> tbProducts = query.fetch();

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

@@ -106,6 +106,7 @@ public class SysConfigDataImpl implements ISysConfigData, IJPACommData<SysConfig
     public SysConfig findOneByCondition(SysConfig data) {
         Predicate predicate = PredicateBuilder.instance()
                 .and(StringUtils.isNotBlank(data.getConfigKey()), () -> tbSysConfig.configKey.eq(data.getConfigKey()))
+                .and(StringUtils.isNotBlank(data.getTenantId()),()-> tbSysConfig.tenantId.eq(data.getTenantId()))
                 .build();
         TbSysConfig tbSysConfig = baseRepository.findOne(predicate).orElse(null);
         if(Objects.isNull(tbSysConfig)){

+ 18 - 22
iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/HomeController.java

@@ -9,36 +9,21 @@
  */
 package cc.iotkit.manager.controller;
 
-import antlr.StringUtils;
-import cc.iotkit.common.api.PageRequest;
-import cc.iotkit.common.api.Paging;
-import cc.iotkit.common.api.Request;
-import cc.iotkit.common.log.annotation.Log;
-import cc.iotkit.common.log.enums.BusinessType;
-import cc.iotkit.common.validate.AddGroup;
-import cc.iotkit.common.validate.EditGroup;
-import cc.iotkit.manager.dto.bo.category.CategoryBo;
-import cc.iotkit.manager.dto.bo.product.ProductBo;
-import cc.iotkit.manager.dto.bo.productmodel.ProductModelBo;
-import cc.iotkit.manager.dto.bo.thingmodel.ThingModelBo;
+import cc.iotkit.common.tenant.helper.TenantHelper;
 import cc.iotkit.manager.dto.vo.category.CategoryVo;
 import cc.iotkit.manager.dto.vo.product.ProductVo;
-import cc.iotkit.manager.dto.vo.productmodel.ProductModelVo;
-import cc.iotkit.manager.dto.vo.thingmodel.ThingModelVo;
 import cc.iotkit.manager.service.IDeviceManagerService;
 import cc.iotkit.manager.service.IProductService;
-import cc.iotkit.model.product.Category;
-import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.collection.CollectionUtil;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -89,6 +74,9 @@ public class HomeController {
             Integer categoryTodayNum = categoryVos.stream().filter(item->item.getCreateAt().compareTo(todayZero.getTime())>0)
                     .collect(Collectors.toList()).size();
             dataMap.put("categoryTodayNum",categoryTodayNum);
+        }else{
+            dataMap.put("categoryAllNum",0);
+            dataMap.put("categoryTodayNum",0);
         }
         return  dataMap;
     }
@@ -104,6 +92,9 @@ public class HomeController {
             Integer productTodayNum = productVos.stream().filter(item->item.getCreateAt().compareTo(todayZero.getTime())>0)
                     .collect(Collectors.toList()).size();
             dataMap.put("productTodayNum",productTodayNum);
+        }else{
+            dataMap.put("productAllNum",0);
+            dataMap.put("productTodayNum",0);
         }
         return  dataMap;
     }
@@ -111,14 +102,16 @@ public class HomeController {
     @ApiOperation("设备")
     @PostMapping("/device")
     public Map deviceData() {
-        Map statisMap = deviceServiceImpl.countMap();
+        String tenantId = TenantHelper.getTenantId();
+        Map statisMap = deviceServiceImpl.countMap(tenantId);
         return  statisMap;
     }
 
     @ApiOperation("设备状态")
     @PostMapping("/deviceStates")
     public Map deviceStates() {
-        Map statisMap = deviceServiceImpl.countStateMap();
+        String tenantId = TenantHelper.getTenantId();
+        Map statisMap = deviceServiceImpl.countStateMap(tenantId);
         return  statisMap;
     }
 
@@ -144,6 +137,9 @@ public class HomeController {
             allNum = allNum+tmpNum;
             if(Strings.isNotEmpty(category)){
                 String categoryName = categoryMap.get(category);
+                if(StringUtils.isEmpty(categoryName)){
+                    categoryName = "其他";
+                }
                 Long num = dataMap.get(categoryName);
               if(Objects.nonNull(num)){
                     dataMap.put(categoryName,num+tmpNum);

+ 2 - 2
iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java

@@ -53,8 +53,8 @@ public class ProductController {
     @PostMapping("/list")
     public Paging<ProductVo> getProducts(@Validated @RequestBody
                                          PageRequest<ProductBo> request) {
-//        return productService.selectPageList(request);
-        return productService.getProducts(request);
+        return productService.selectPageList(request);
+//        return productService.getProducts(request);
     }
 
     @ApiOperation("新建")

+ 2 - 2
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/IDeviceManagerService.java

@@ -77,9 +77,9 @@ public interface IDeviceManagerService {
 
     boolean saveDevice(DeviceInfoBo data);
 
-    Map countMap();
+    Map countMap( String tenantId);
 
     Map countCategoryMap();
 
-    Map countStateMap();
+    Map countStateMap( String tenantId);
 }

+ 11 - 8
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.tenant.helper.TenantHelper;
 import cc.iotkit.common.thing.ThingModelMessage;
 import cc.iotkit.common.utils.*;
 import cc.iotkit.data.manager.IDeviceConfigData;
@@ -104,9 +105,11 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService {
         String keyword = query.getKeyword();
         String group = query.getGroup();
         String state = query.getState();
-
-        return deviceInfoData.findByConditions(uid, subUid, pk, group,
-                state, keyword, pageRequest.getPageNum(), pageRequest.getPageSize());
+        String tenantId = TenantHelper.getTenantId();
+        return deviceInfoData.findByConditionsAndTenantId(uid, subUid, pk, group,
+                state, keyword, pageRequest.getPageNum(), pageRequest.getPageSize(),tenantId);
+//        return deviceInfoData.findByConditions(uid, subUid, pk, group,
+//                state, keyword, pageRequest.getPageNum(), pageRequest.getPageSize());
     }
 
     @Override
@@ -427,11 +430,11 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService {
     }
 
     @Override
-    public Map countMap() {
+    public Map countMap( String tenantId) {
         Map<String,Object> dataMap = new HashMap<>();
-        Long allNum = deviceInfoData.count();
+        Long allNum = deviceInfoData.countByTenantId(tenantId);
         dataMap.put("viceAllNum",allNum);
-        Long todayNum =  deviceInfoData.countTodayAdd();
+        Long todayNum =  deviceInfoData.countTodayAdd(tenantId);
         dataMap.put("deviceTodayNum",todayNum);
         return dataMap;
     }
@@ -442,7 +445,7 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService {
     }
 
     @Override
-    public Map countStateMap() {
-        return deviceInfoData.countStateMap();
+    public Map countStateMap( String tenantId) {
+        return deviceInfoData.countStateMap(tenantId);
     }
 }

+ 11 - 2
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/ProductServiceImpl.java

@@ -4,6 +4,7 @@ import cc.iotkit.common.api.PageRequest;
 import cc.iotkit.common.api.Paging;
 import cc.iotkit.common.enums.ErrCode;
 import cc.iotkit.common.exception.BizException;
+import cc.iotkit.common.tenant.helper.TenantHelper;
 import cc.iotkit.common.utils.JsonUtils;
 import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.data.manager.*;
@@ -25,6 +26,7 @@ import cc.iotkit.model.product.ProductModel;
 import cc.iotkit.model.product.ThingModel;
 import cc.iotkit.model.system.SysConfig;
 import cc.iotkit.temporal.IDbStructureData;
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.UUID;
 import com.github.yitter.idgen.YitIdHelper;
 import lombok.RequiredArgsConstructor;
@@ -89,7 +91,7 @@ public class ProductServiceImpl implements IProductService {
         if(oldProduct != null){
             throw new BizException(ErrCode.PRODUCT_KEY_EXIST);
         }
-
+        product.setTenantId(TenantHelper.getTenantId());
         productData.save(product);
         return MapstructUtils.convert(product, ProductVo.class);
     }
@@ -97,7 +99,6 @@ public class ProductServiceImpl implements IProductService {
     @Override
     public boolean updateEntity(ProductBo productBo) {
         Product product = productBo.to(Product.class);
-
         if (product.getCreateAt() == null) {
             product.setCreateAt(System.currentTimeMillis());
         }
@@ -174,6 +175,14 @@ public class ProductServiceImpl implements IProductService {
 
     @Override
     public boolean deleteCategory(String id) {
+        Category category = categoryData.findById(id);
+        if(Objects.isNull(category)){
+            throw new BizException(ErrCode.DATA_NOT_EXIST);
+        }
+        List<Product> products = productData.findByCategory(category.getId());
+        if(CollectionUtil.isNotEmpty(products)){
+            throw new BizException(ErrCode.DEVICE_HAS_ASSOCIATED);
+        }
         categoryData.deleteById(id);
         return true;
     }

+ 1 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysDeptController.java

@@ -85,6 +85,7 @@ public class SysDeptController extends BaseController {
         if (!deptService.checkDeptNameUnique(dept)) {
             fail("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
         }
+        dept.setTenantId(TenantHelper.getTenantId());
         deptService.insertDept(dept);
     }
 

+ 1 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysRoleController.java

@@ -96,6 +96,7 @@ public class SysRoleController extends BaseController {
         } else if (!roleService.checkRoleKeyUnique(role)) {
             fail("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
         }
+        role.setTenantId(TenantHelper.getTenantId());
         roleService.insertRole(role);
 
     }

+ 1 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysUserController.java

@@ -174,6 +174,7 @@ public class SysUserController extends BaseController {
         }
         user.setPassword(BCrypt.hashpw(user.getPassword()));
         user.setUserType("sys_user");
+        user.setTenantId(TenantHelper.getTenantId());
         userService.insertUser(user);
     }
 

+ 2 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/dto/bo/SysTenantBo.java

@@ -4,6 +4,7 @@ import cc.iotkit.common.api.BaseDto;
 import cc.iotkit.common.validate.AddGroup;
 import cc.iotkit.common.validate.EditGroup;
 import cc.iotkit.model.system.SysTenant;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.github.linpeilie.annotations.AutoMapper;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
@@ -97,6 +98,7 @@ public class SysTenantBo extends BaseDto {
     /**
      * 过期时间
      */
+    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     private Date expireTime;
 
     /**

+ 6 - 1
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysConfigServiceImpl.java

@@ -6,6 +6,7 @@ import cc.iotkit.common.constant.CacheNames;
 import cc.iotkit.common.constant.UserConstants;
 import cc.iotkit.common.exception.BizException;
 import cc.iotkit.common.redis.utils.CacheUtils;
+import cc.iotkit.common.satoken.utils.LoginHelper;
 import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.common.utils.SpringUtils;
 import cc.iotkit.common.utils.StringUtils;
@@ -58,7 +59,11 @@ public class SysConfigServiceImpl implements ISysConfigService {
      */
     @Override
     public String selectConfigByKey(String configKey) {
-        SysConfig sysConfig = sysConfigData.findByConfigKey(configKey);
+//        SysConfig sysConfig = sysConfigData.findByConfigKey(configKey);
+        SysConfig data = new SysConfig();
+        data.setConfigKey(configKey);
+        data.setTenantId(LoginHelper.getTenantId());
+        SysConfig sysConfig = sysConfigData.findOneByCondition(data);
         if (ObjectUtil.isNotNull(sysConfig)) {
             return sysConfig.getConfigValue();
         }

+ 2 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysDictDataServiceImpl.java

@@ -3,6 +3,7 @@ package cc.iotkit.system.service.impl;
 import cc.iotkit.common.api.PageRequest;
 import cc.iotkit.common.api.Paging;
 import cc.iotkit.common.constant.CacheNames;
+import cc.iotkit.common.tenant.helper.TenantHelper;
 import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.data.system.ISysDictData;
 import cc.iotkit.model.system.SysDictData;
@@ -92,6 +93,7 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
     @Override
     public List<SysDictDataVo> insertDictData(SysDictDataBo bo) {
         SysDictData data = MapstructUtils.convert(bo, SysDictData.class);
+        data.setTenantId(TenantHelper.getTenantId());
         sysDictData.save(data);
         return MapstructUtils.convert(sysDictData.findByDicType(data.getDictType()), SysDictDataVo.class);
     }

+ 2 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysNoticeServiceImpl.java

@@ -2,6 +2,7 @@ package cc.iotkit.system.service.impl;
 
 import cc.iotkit.common.api.PageRequest;
 import cc.iotkit.common.api.Paging;
+import cc.iotkit.common.tenant.helper.TenantHelper;
 import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.data.system.ISysNoticeData;
 import cc.iotkit.model.system.SysNotice;
@@ -61,6 +62,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService {
      */
     @Override
     public Long insertNotice(SysNoticeBo bo) {
+        bo.setTenantId(TenantHelper.getTenantId());
         return sysNoticeData.save(bo.to(SysNotice.class)).getId();
     }
 

+ 2 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysPostServiceImpl.java

@@ -2,6 +2,7 @@ package cc.iotkit.system.service.impl;
 
 import cc.iotkit.common.api.PageRequest;
 import cc.iotkit.common.api.Paging;
+import cc.iotkit.common.tenant.helper.TenantHelper;
 import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.data.system.ISysPostData;
 import cc.iotkit.model.system.SysPost;
@@ -136,6 +137,7 @@ public class SysPostServiceImpl implements ISysPostService {
      */
     @Override
     public void insertPost(SysPostBo bo) {
+        bo.setTenantId(TenantHelper.getTenantId());
         sysPostData.save(bo.to(SysPost.class));
     }
 

+ 4 - 1
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysRoleServiceImpl.java

@@ -5,6 +5,7 @@ import cc.iotkit.common.api.Paging;
 import cc.iotkit.common.exception.BizException;
 import cc.iotkit.common.model.LoginUser;
 import cc.iotkit.common.satoken.utils.LoginHelper;
+import cc.iotkit.common.tenant.helper.TenantHelper;
 import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.common.utils.StreamUtils;
 import cc.iotkit.common.utils.StringUtils;
@@ -107,7 +108,9 @@ public class SysRoleServiceImpl implements ISysRoleService {
      */
     @Override
     public List<SysRoleVo> selectRoleAll() {
-        return this.selectRoleList(new SysRoleBo());
+        SysRoleBo sysRoleBo = new SysRoleBo();
+        sysRoleBo.setTenantId(TenantHelper.getTenantId());
+        return this.selectRoleList(sysRoleBo);
     }
 
     /**

+ 6 - 2
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysTenantServiceImpl.java

@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -224,10 +225,13 @@ public class SysTenantServiceImpl implements ISysTenantService {
 
     @Override
     public void deleteById(Long id) {
-        String tenantId=LoginHelper.getTenantId();
+        SysTenant tenant= sysTenantData.findById(id);
+        if(Objects.isNull(tenant)){
+            return;
+        }
         //删除角色
         SysRole querySysRole=new SysRole();
-        querySysRole.setTenantId(tenantId);
+        querySysRole.setTenantId(tenant.getTenantId());
         List<SysRole> roles =sysRoleData.selectRoleList(querySysRole);
         sysRoleData.deleteByIds(roles.stream().map(SysRole::getId).collect(Collectors.toList()));
         //删除部门