Ver Fonte

modify bug

lishuangjiang@potevio.com há 1 ano atrás
pai
commit
1df3fc4d73
18 ficheiros alterados com 105 adições e 11 exclusões
  1. 4 0
      iot-dao/iot-data-service/pom.xml
  2. 4 1
      iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IProductData.java
  3. 2 0
      iot-dao/iot-data-service/src/main/java/cc/iotkit/data/system/ISysDeptData.java
  4. 5 0
      iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/ProductDataCache.java
  5. 1 0
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/ProductRepository.java
  6. 6 1
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/SysDeptRepository.java
  7. 7 1
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/ProductDataImpl.java
  8. 8 0
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysDeptDataImpl.java
  9. 2 1
      iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysUserDataImpl.java
  10. 2 1
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/HomeController.java
  11. 2 0
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java
  12. 6 0
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/bo/product/ProductBo.java
  13. 2 0
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/IProductService.java
  14. 6 0
      iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/ProductServiceImpl.java
  15. 6 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysDeptController.java
  16. 2 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/ISysDeptService.java
  17. 37 3
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysDeptServiceImpl.java
  18. 3 3
      iot-starter/src/main/resources/application.yml

+ 4 - 0
iot-dao/iot-data-service/pom.xml

@@ -17,6 +17,10 @@
             <groupId>cc.iotkit</groupId>
             <artifactId>iot-data-model</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cc.iotkit</groupId>
+            <artifactId>iot-common-tenant</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 4 - 1
iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IProductData.java

@@ -13,7 +13,8 @@ import cc.iotkit.common.api.PageRequest;
 import cc.iotkit.common.api.Paging;
 import cc.iotkit.data.ICommonData;
 import cc.iotkit.model.product.Product;
-import cc.iotkit.model.system.SysConfig;
+import org.hibernate.Query;
+
 
 import java.util.List;
 
@@ -35,4 +36,6 @@ public interface IProductData extends ICommonData<Product, Long> {
     Paging<Product> findAllByConditions(PageRequest<Product> pageRequest);
 
     Paging<Product> findByConditions(String uid, String subUid, String pk, String name, Integer pageNum, Integer pageSize);
+
+    List<Product> selectProductListWithTenant(String tenantId);
 }

+ 2 - 0
iot-dao/iot-data-service/src/main/java/cc/iotkit/data/system/ISysDeptData.java

@@ -52,4 +52,6 @@ public interface ISysDeptData extends ICommonData<SysDept, Long> {
     boolean checkDeptNameUnique(String deptName, Long parentId, Long deptId);
 
     long selectNormalChildrenDeptById(Long deptId);
+
+    List<SysDept> findAllDeptsByTenant(String tenantId);
 }

+ 5 - 0
iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/ProductDataCache.java

@@ -128,4 +128,9 @@ public class ProductDataCache implements IProductData {
     public Paging<Product> findByConditions(String uid, String subUid, String pk, String name, Integer pageNum, Integer pageSize) {
         return productData.findByConditions(uid,subUid, pk, name,  pageNum, pageSize);
     }
+
+    @Override
+    public List<Product> selectProductListWithTenant(String tenantId) {
+        return productData.selectProductListWithTenant(tenantId);
+    }
 }

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

@@ -10,6 +10,7 @@
 package cc.iotkit.data.dao;
 
 import cc.iotkit.data.model.TbProduct;
+import cc.iotkit.model.product.Product;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;

+ 6 - 1
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/dao/SysDeptRepository.java

@@ -11,8 +11,13 @@ package cc.iotkit.data.dao;
 
 import cc.iotkit.data.model.TbSysDept;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.querydsl.QuerydslPredicateExecutor;
+import org.springframework.data.repository.query.Param;
 
-public interface SysDeptRepository extends JpaRepository<TbSysDept, Long>, QuerydslPredicateExecutor<TbSysDept> {
+import java.util.List;
 
+public interface SysDeptRepository extends JpaRepository<TbSysDept, Long>, QuerydslPredicateExecutor<TbSysDept> {
+    @Query(nativeQuery = true, value = "SELECT * FROM sys_dept WHERE tenant_id = :tenantId")
+    List<TbSysDept> findAllDeptsByTenant(@Param("tenantId")String tenantId);
 }

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

@@ -108,7 +108,7 @@ public class ProductDataImpl implements IProductData, IJPACommData<Product, Long
         return PredicateBuilder.instance()
                 .and(StringUtils.isNotEmpty(data.getProductKey()), () -> tbProduct.productKey.eq(data.getProductKey()))
                 .and(StringUtils.isNotEmpty(data.getName()), () -> tbProduct.name.like("%"+data.getName()+"%"))
-//                .and(StringUtils.isNotEmpty(data.getTenantId()), () -> tbSysConfig.tenantId.eq(data.getTenantId()))
+                .and(StringUtils.isNotEmpty(data.getTenantId()), () -> tbProduct.tenantId.eq(data.getTenantId()))
                 .build();
     }
 
@@ -136,4 +136,10 @@ public class ProductDataImpl implements IProductData, IJPACommData<Product, Long
         }
         return new Paging<>(total, products);
     }
+
+    @Override
+    public List<Product> selectProductListWithTenant(String tenantId) {
+        List<TbProduct> products = jpaQueryFactory.select(tbProduct).from(tbProduct).where(tbProduct.tenantId.eq(tenantId)).fetch();
+        return MapstructUtils.convert(products, Product.class);
+    }
 }

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

@@ -132,4 +132,12 @@ public class SysDeptDataImpl implements ISysDeptData, IJPACommData<SysDept, Long
 
     }
 
+    @Override
+    public List<SysDept> findAllDeptsByTenant(String tenantId) {
+        List<TbSysDept> list = deptRepository.findAllDeptsByTenant(tenantId);
+//        PredicateBuilder predicateBuilder = PredicateBuilder.instance()
+//                .and(StringUtils.isNotEmpty(tenantId), () -> tbSysDept.tenantId.eq(tenantId));
+//     List<TbSysDept> list = jpaQueryFactory.select(tbSysDept).from(tbSysDept).where(tbSysDept.tenantId.eq(tenantId)).fetch();
+     return MapstructUtils.convert(list, SysDept.class);
+    }
 }

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

@@ -173,7 +173,8 @@ public class SysUserDataImpl implements ISysUserData, IJPACommData<SysUser, Long
         TbSysUser ret = jpaQueryFactory.select(tbSysUser).from(tbSysUser)
                 .where(PredicateBuilder.instance()
                         .and(tbSysUser.userName.eq(username))
-                        .and(TenantHelper.isEnable(), () -> tbSysUser.tenantId.eq(tenantId))
+                        .and(StringUtils.isNotEmpty(tenantId), () -> tbSysUser.tenantId.eq(tenantId))
+//                        .and(TenantHelper.isEnable(), () -> tbSysUser.tenantId.eq(tenantId))
                         .build()).fetchOne();
         if (Objects.nonNull(ret)) {
             SysUser convert = MapstructUtils.convert(ret, SysUser.class);

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

@@ -9,6 +9,7 @@
  */
 package cc.iotkit.manager.controller;
 
+import cc.iotkit.common.satoken.utils.LoginHelper;
 import cc.iotkit.common.tenant.helper.TenantHelper;
 import cc.iotkit.manager.dto.vo.category.CategoryVo;
 import cc.iotkit.manager.dto.vo.product.ProductVo;
@@ -86,7 +87,7 @@ public class HomeController {
     public Map productData() {
         Map<String,Object> dataMap = new HashMap<>();
         Date todayZero = todayZeroTime();
-        List<ProductVo> productVos = productService.selectProductList();
+        List<ProductVo> productVos = productService.selectProductListWithTenant(LoginHelper.getTenantId());
         if(CollectionUtil.isNotEmpty(productVos)){
             dataMap.put("productAllNum",productVos.size());
             Integer productTodayNum = productVos.stream().filter(item->item.getCreateAt().compareTo(todayZero.getTime())>0)

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

@@ -14,6 +14,7 @@ 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.satoken.utils.LoginHelper;
 import cc.iotkit.common.validate.AddGroup;
 import cc.iotkit.common.validate.EditGroup;
 import cc.iotkit.manager.dto.bo.category.CategoryBo;
@@ -53,6 +54,7 @@ public class ProductController {
     @PostMapping("/list")
     public Paging<ProductVo> getProducts(@Validated @RequestBody
                                          PageRequest<ProductBo> request) {
+        request.getData().setTenantId(LoginHelper.getTenantId());
         return productService.selectPageList(request);
 //        return productService.getProducts(request);
     }

+ 6 - 0
iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/bo/product/ProductBo.java

@@ -59,6 +59,12 @@ public class ProductBo extends BaseDto {
     @Size(max = 255, message = "产品密钥长度不正确")
     private String productSecret;
 
+    /**
+     * 租户编号
+     */
+    @ApiModelProperty(value = "租户编号")
+    private String tenantId;
+
 
 
 }

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

@@ -59,4 +59,6 @@ public interface IProductService {
     List<ProductVo> selectProductList();
 
     Paging<ProductVo> getProducts(PageRequest<ProductBo> request);
+
+    List<ProductVo> selectProductListWithTenant(String tenantId);
 }

+ 6 - 0
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/ProductServiceImpl.java

@@ -77,6 +77,7 @@ public class ProductServiceImpl implements IProductService {
     @Autowired
     private IDeviceInfoData deviceInfoData;
 
+
     @Override
     public ProductVo addEntity(ProductBo data) {
         Product product = data.to(Product.class);
@@ -290,4 +291,9 @@ public class ProductServiceImpl implements IProductService {
         String name = query.getName();
         return productData.findByConditions(uid, subUid, pk, name, pageRequest.getPageNum(), pageRequest.getPageSize()).to(ProductVo.class);
     }
+
+    @Override
+    public List<ProductVo> selectProductListWithTenant(String tenantId) {
+        return MapstructUtils.convert(productData.selectProductListWithTenant(tenantId), ProductVo.class);
+    }
 }

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

@@ -87,6 +87,8 @@ public class SysDeptController extends BaseController {
         }
         dept.setTenantId(TenantHelper.getTenantId());
         deptService.insertDept(dept);
+        //删除后更新
+        deptService.reCacheDept(TenantHelper.getTenantId());
     }
 
     /**
@@ -107,6 +109,8 @@ public class SysDeptController extends BaseController {
             fail("该部门包含未停用的子部门!");
         }
         deptService.updateDept(dept);
+        //删除后更新
+        deptService.reCacheDept(TenantHelper.getTenantId());
     }
 
     /**
@@ -126,5 +130,7 @@ public class SysDeptController extends BaseController {
         }
         deptService.checkDeptDataScope(deptId);
         deptService.deleteDeptById(deptId);
+        //删除后更新
+        deptService.reCacheDept(TenantHelper.getTenantId());
     }
 }

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

@@ -116,4 +116,6 @@ public interface ISysDeptService {
     List<SysDeptVo> selectDeptByIds(List<Long> ids);
 
     List<SysDept> selectAllDept();
+
+    void reCacheDept(String tenantId);
 }

+ 37 - 3
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysDeptServiceImpl.java

@@ -1,8 +1,10 @@
 package cc.iotkit.system.service.impl;
 
+import cc.iotkit.common.constant.GlobalConstants;
 import cc.iotkit.common.constant.UserConstants;
 import cc.iotkit.common.enums.ErrCode;
 import cc.iotkit.common.exception.BizException;
+import cc.iotkit.common.redis.utils.RedisUtils;
 import cc.iotkit.common.satoken.utils.LoginHelper;
 import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.common.utils.SpringUtils;
@@ -23,9 +25,7 @@ import cn.hutool.core.util.ObjectUtil;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -316,4 +316,38 @@ public class SysDeptServiceImpl implements ISysDeptService {
         }
         return sysDepts;
     }
+
+    @Override
+    public void reCacheDept(String tenantId) {
+        List<SysDept> sysDepts =  sysDeptData.findAllDeptsByTenant(tenantId);
+//        List<SysDept> cacheDepts = new ArrayList<>();
+//        if(CollectionUtil.isNotEmpty(sysDepts)){
+//            cacheDepts = sysDepts.stream().filter(item->item.getTenantId().equals(tenantId)).collect(Collectors.toList());
+//        }
+        Map<String,List<String>> deptChildMap = new HashMap<>();
+        if(CollectionUtil.isNotEmpty(sysDepts)){
+            String key = null;
+            String ancestors = null;
+            String[] splits = null;
+            for (SysDept sysDept:sysDepts){
+                ancestors= sysDept.getAncestors();
+                splits= ancestors.split(",");
+                for(String split:splits ){
+                    key = GlobalConstants.DEPT_CHILD_PREFIX + sysDept.getTenantId() + ":" + String.valueOf(split);
+                    List<String> children = deptChildMap.get(key);
+                    if(CollectionUtil.isEmpty(children)){
+                        children = new ArrayList<>();
+                        children.add(String.valueOf(sysDept.getId()));
+                    }else{
+                        children.add(String.valueOf(sysDept.getId()));
+                    }
+                    deptChildMap.put(key,children);
+                }
+            }
+            //缓存到redis
+            for (Map.Entry<String, List<String>> itemMap: deptChildMap.entrySet()) {
+                RedisUtils.setCacheObject(itemMap.getKey(),String.join(",", itemMap.getValue()));
+            }
+        }
+    }
 }

+ 3 - 3
iot-starter/src/main/resources/application.yml

@@ -95,7 +95,7 @@ spring:
           type: ${spring.datasource.type}
           driverClassName: com.mysql.cj.jdbc.Driver
           # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
-          url: jdbc:mysql://192.168.56.104:3306/iotkit3?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
+          url: jdbc:mysql://192.168.8.119:13306/iotkit?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
           username: root
           password: 123456
   # ============mysql配置结束============>>
@@ -105,7 +105,7 @@ spring:
     rest:
       #使用内置es的配置
       #uris: http://elasticsearch:9200
-      uris: http://192.168.56.104:9200
+      uris: http://192.168.8.119:9200
       username:
       password:
       connection-timeout: 10s
@@ -122,7 +122,7 @@ spring:
   redis:
     #使用内置redis的配置
     #host: redis
-    host: 192.168.56.104
+    host: 192.168.8.119
     port: 6379
     database: 0
     password: mogu2018