소스 검색

update:联调用户管理和字典管理

tangfudong 2 년 전
부모
커밋
8e41ad2711

+ 2 - 2
data/init/sys_dict_data.json

@@ -95,7 +95,7 @@
       "dictSort": 1,
       "dictLabel": "正常",
       "dict_value": "0",
-      "dictType": "sysNormalDisable",
+      "dictType": "sys_normal_disable",
       "cssClass": "",
       "listClass": "primary",
       "isDefault": "Y",
@@ -113,7 +113,7 @@
       "dictSort": 2,
       "dictLabel": "停用",
       "dict_value": "1",
-      "dictType": "sysNormalDisable",
+      "dictType": "sys_normal_disable",
       "cssClass": "",
       "listClass": "danger",
       "isDefault": "N",

+ 1 - 1
iot-common/iot-common-dao/iot-data-service/src/main/java/cc/iotkit/data/system/ISysDictData.java

@@ -36,7 +36,7 @@ public interface ISysDictData extends ICommonData<SysDictData, Long> {
      * @param dictType 字典类型
      * @return 字典数据集合信息
      */
-    List<SysDictType> findByDicType(String dictType);
+    List<SysDictData> findByDicType(String dictType);
 
     /**
      * 根据字典类型查询字典数据数量

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

@@ -3,6 +3,7 @@ package cc.iotkit.data.system;
 import cc.iotkit.data.ICommonData;
 import cc.iotkit.common.api.Paging;
 import cc.iotkit.model.system.SysDictType;
+import cc.iotkit.model.system.SysUser;
 
 import java.util.List;
 
@@ -39,4 +40,5 @@ public interface ISysDictTypeData extends ICommonData<SysDictType, Long> {
      */
     void updateDicType(String dictType, String newType);
 
+    boolean checkDictTypeUnique(SysDictType dictType);
 }

+ 12 - 12
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysDictDataImpl.java

@@ -1,19 +1,15 @@
 package cc.iotkit.data.service;
 
-import cc.iotkit.common.api.Paging;
 import cc.iotkit.common.constant.UserConstants;
 import cc.iotkit.common.utils.MapstructUtils;
-import cc.iotkit.common.utils.StringUtils;
 import cc.iotkit.data.dao.IJPACommData;
-import cc.iotkit.data.dao.SysDeptRepository;
-import cc.iotkit.data.model.TbSysDept;
+import cc.iotkit.data.dao.SysDictDataRepository;
 import cc.iotkit.data.model.TbSysDictData;
 import cc.iotkit.data.system.ISysDictData;
 import cc.iotkit.data.util.PredicateBuilder;
-import cc.iotkit.model.system.SysDept;
 import cc.iotkit.model.system.SysDictData;
 import cc.iotkit.model.system.SysDictType;
-import cn.hutool.core.util.ObjectUtil;
+import com.querydsl.core.types.Predicate;
 import com.querydsl.jpa.impl.JPAQueryFactory;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,10 +18,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.StreamSupport;
 
-import static cc.iotkit.data.model.QTbSysDept.tbSysDept;
+import static cc.iotkit.data.model.QTbSysDictData.tbSysDictData;
 
 /**
  * @Author:tfd
@@ -37,7 +31,7 @@ import static cc.iotkit.data.model.QTbSysDept.tbSysDept;
 public class SysDictDataImpl implements ISysDictData, IJPACommData<SysDictData, Long> {
 
     @Autowired
-    private SysDeptRepository baseRepository;
+    private SysDictDataRepository baseRepository;
 
     private final JPAQueryFactory jpaQueryFactory;
 
@@ -71,8 +65,14 @@ public class SysDictDataImpl implements ISysDictData, IJPACommData<SysDictData,
     }
 
     @Override
-    public List<SysDictType> findByDicType(String dictType) {
-        return null;
+    public List<SysDictData> findByDicType(String dictType) {
+        List<TbSysDictData> rets=jpaQueryFactory.select(tbSysDictData).from(tbSysDictData)
+                .where(PredicateBuilder.instance()
+                        .and(tbSysDictData.status.eq(UserConstants.DICT_NORMAL))
+                        .and(tbSysDictData.dictType.eq(dictType))
+                        .build()).orderBy(tbSysDictData.dictSort.asc())
+                        .fetch();
+        return MapstructUtils.convert(rets,SysDictData.class);
     }
 
     @Override

+ 39 - 1
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysDictTypeDataImpl.java

@@ -1,12 +1,24 @@
 package cc.iotkit.data.service;
 
+import cc.iotkit.common.api.PageRequest;
 import cc.iotkit.common.api.Paging;
+import cc.iotkit.common.constant.UserConstants;
+import cc.iotkit.common.utils.StreamUtils;
+import cc.iotkit.common.utils.StringUtils;
 import cc.iotkit.data.dao.IJPACommData;
 import cc.iotkit.data.dao.SysDeptRepository;
+import cc.iotkit.data.dao.SysDictTypeRepository;
 import cc.iotkit.data.model.TbSysDictType;
+import cc.iotkit.data.model.TbSysUser;
 import cc.iotkit.data.system.ISysDictTypeData;
+import cc.iotkit.data.util.PageBuilder;
+import cc.iotkit.data.util.PredicateBuilder;
+import cc.iotkit.model.system.SysDept;
 import cc.iotkit.model.system.SysDictType;
 import cc.iotkit.model.system.SysDictType;
+import cc.iotkit.model.system.SysUser;
+import cn.hutool.core.util.ObjectUtil;
+import com.querydsl.core.types.Predicate;
 import com.querydsl.jpa.impl.JPAQueryFactory;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +27,10 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Objects;
+
+import static cc.iotkit.data.model.QTbSysDictType.tbSysDictType;
+import static cc.iotkit.data.model.QTbSysUser.tbSysUser;
 
 /**
  * @Author:tfd
@@ -26,11 +42,16 @@ import java.util.List;
 public class SysDictTypeDataImpl implements ISysDictTypeData, IJPACommData<SysDictType, Long> {
 
     @Autowired
-    private SysDeptRepository baseRepository;
+    private SysDictTypeRepository baseRepository;
 
     private final JPAQueryFactory jpaQueryFactory;
 
 
+    @Override
+    public Paging<SysDictType> findAll(PageRequest<SysDictType> pageRequest) {
+        return PageBuilder.toPaging(baseRepository.findAll(buildQueryCondition(pageRequest.getData()), PageBuilder.toPageable(pageRequest))).to(SysDictType.class);
+    }
+
     @Override
     public JpaRepository getBaseRepository() {
         return baseRepository;
@@ -67,5 +88,22 @@ public class SysDictTypeDataImpl implements ISysDictTypeData, IJPACommData<SysDi
 
     }
 
+    @Override
+    public boolean checkDictTypeUnique(SysDictType dictType) {
+        final TbSysDictType ret = jpaQueryFactory.select(tbSysDictType).from(tbSysDictType)
+                .where(PredicateBuilder.instance()
+                        .and(tbSysDictType.dictType.eq(dictType.getDictType()))
+                        .and(Objects.nonNull(dictType.getId()), () -> tbSysDictType.id.ne(dictType.getId()))
+                        .build()).fetchOne();
+        return Objects.nonNull(ret);
+    }
+
+    private Predicate buildQueryCondition(SysDictType dictType) {
+        return PredicateBuilder.instance()
+                .and(StringUtils.isNotEmpty(dictType.getDictName()), () -> tbSysDictType.dictName.like(dictType.getDictName()))
+                .and(StringUtils.isNotEmpty(dictType.getDictType()), () -> tbSysDictType.dictType.like(dictType.getDictType()))
+                .and(StringUtils.isNotEmpty(dictType.getStatus()), () -> tbSysDictType.status.eq(dictType.getStatus())).build();
+    }
+
 
 }

+ 17 - 15
iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysDictTypeController.java

@@ -6,6 +6,7 @@ import cc.iotkit.common.api.Request;
 import cc.iotkit.common.excel.utils.ExcelUtil;
 import cc.iotkit.common.log.annotation.Log;
 import cc.iotkit.common.log.enums.BusinessType;
+import cc.iotkit.common.validate.QueryGroup;
 import cc.iotkit.common.web.core.BaseController;
 import cc.iotkit.system.dto.bo.SysDictTypeBo;
 import cc.iotkit.system.dto.vo.SysDictTypeVo;
@@ -39,8 +40,8 @@ public class SysDictTypeController extends BaseController {
     @ApiOperation(value = "查询字典类型列表", notes = "查询字典类型列表")
     @SaCheckPermission("system:dict:list")
     @PostMapping("/list")
-    public Paging<SysDictTypeVo> list(  PageRequest<SysDictTypeBo> query) {
-        return dictTypeService.selectPageDictTypeList( query);
+    public Paging<SysDictTypeVo> list(@RequestBody @Validated(QueryGroup.class) PageRequest<SysDictTypeBo> query) {
+        return dictTypeService.selectPageDictTypeList(query);
     }
 
     /**
@@ -50,9 +51,9 @@ public class SysDictTypeController extends BaseController {
     @Log(title = "字典类型", businessType = BusinessType.EXPORT)
     @SaCheckPermission("system:dict:export")
     @PostMapping("/export")
-    public void export(@RequestBody SysDictTypeBo dictType, HttpServletResponse response) {
+    public void export(@RequestBody @Validated(QueryGroup.class)PageRequest<SysDictTypeBo> dictType, HttpServletResponse response) {
 
-        List<SysDictTypeVo> list = dictTypeService.selectDictTypeList(dictType);
+        List<SysDictTypeVo> list = dictTypeService.selectDictTypeList(dictType.getData());
         ExcelUtil.exportExcel(list, "字典类型", SysDictTypeVo.class, response);
     }
 
@@ -64,8 +65,9 @@ public class SysDictTypeController extends BaseController {
     @ApiOperation(value = "查询字典类型详细", notes = "查询字典类型详细")
     @SaCheckPermission("system:dict:query")
     @PostMapping(value = "/getById")
-    public SysDictTypeVo getInfo(@Validated @RequestBody Request<Long> bo) {
-        return dictTypeService.selectDictTypeById(bo.getData());
+    public SysDictTypeVo getInfo(@Validated @RequestBody Request<SysDictTypeBo> bo) {
+        Long dictTypeId = bo.getData().getId();
+        return dictTypeService.selectDictTypeById(dictTypeId);
     }
 
     /**
@@ -75,11 +77,11 @@ public class SysDictTypeController extends BaseController {
     @SaCheckPermission("system:dict:add")
     @Log(title = "字典类型", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-    public void add(@Validated @RequestBody SysDictTypeBo dict) {
-        if (!dictTypeService.checkDictTypeUnique(dict)) {
-            fail("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
+    public void add(@Validated @RequestBody Request<SysDictTypeBo> dict) {
+        if (!dictTypeService.checkDictTypeUnique(dict.getData())) {
+            fail("新增字典'" + dict.getData().getDictName() + "'失败,字典类型已存在");
         }
-        dictTypeService.insertDictType(dict);
+        dictTypeService.insertDictType(dict.getData());
     }
 
     /**
@@ -87,12 +89,12 @@ public class SysDictTypeController extends BaseController {
      */
     @SaCheckPermission("system:dict:edit")
     @Log(title = "字典类型", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public void edit(@Validated @RequestBody SysDictTypeBo dict) {
-        if (!dictTypeService.checkDictTypeUnique(dict)) {
-            fail("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
+    @PostMapping("/edit")
+    public void edit(@Validated @RequestBody Request<SysDictTypeBo> dict) {
+        if (!dictTypeService.checkDictTypeUnique(dict.getData())) {
+            fail("修改字典'" + dict.getData().getDictName() + "'失败,字典类型已存在");
         }
-        dictTypeService.updateDictType(dict);
+        dictTypeService.updateDictType(dict.getData());
     }
 
     /**

+ 3 - 4
iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysUserController.java

@@ -128,8 +128,8 @@ public class SysUserController extends BaseController {
     @ApiOperation("根据用户编号获取详细信息")
     @SaCheckPermission("system:user:query")
     @PostMapping(value = {"/getDetail"})
-    public SysUserInfoVo getInfo(@Validated @RequestBody Request<Long> req) {
-        Long userId = req.getData();
+    public SysUserInfoVo getInfo(@Validated @RequestBody Request<SysUserBo> req) {
+        Long userId = req.getData().getId();
         userService.checkUserDataScope(userId);
         SysUserInfoVo userInfoVo = new SysUserInfoVo();
         List<SysRoleVo> roles = roleService.selectRoleAll();
@@ -275,8 +275,7 @@ public class SysUserController extends BaseController {
     @SaCheckPermission("system:user:list")
     @PostMapping("/deptTree")
     public List<Tree<Long>> deptTree(@RequestBody @Validated(QueryGroup.class) Request<SysDeptBo> reqDept) {
-        SysDeptBo dept=reqDept.getData();
-        return deptService.selectDeptTreeList(dept);
+        return deptService.selectDeptTreeList(reqDept.getData());
     }
 
 }

+ 1 - 1
iot-module/iot-system/src/main/java/cc/iotkit/system/service/ISysDictTypeService.java

@@ -17,7 +17,7 @@ import java.util.List;
 public interface ISysDictTypeService {
 
 
-    Paging<SysDictTypeVo> selectPageDictTypeList( PageRequest<?> query);
+    Paging<SysDictTypeVo> selectPageDictTypeList( PageRequest<SysDictTypeBo> query);
 
     /**
      * 根据条件分页查询字典类型

+ 11 - 7
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysDictTypeServiceImpl.java

@@ -13,7 +13,9 @@ import cc.iotkit.common.utils.StreamUtils;
 import cc.iotkit.common.utils.StringUtils;
 import cc.iotkit.data.system.ISysDictData;
 import cc.iotkit.data.system.ISysDictTypeData;
+import cc.iotkit.model.system.SysDictData;
 import cc.iotkit.model.system.SysDictType;
+import cc.iotkit.model.system.SysUser;
 import cc.iotkit.system.dto.bo.SysDictTypeBo;
 import cc.iotkit.system.dto.vo.SysDictDataVo;
 import cc.iotkit.system.dto.vo.SysDictTypeVo;
@@ -39,7 +41,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
     private final ISysDictData sysDictData;
 
     @Override
-    public Paging<SysDictTypeVo> selectPageDictTypeList( PageRequest<?> query) {
+    public Paging<SysDictTypeVo> selectPageDictTypeList( PageRequest<SysDictTypeBo> query) {
         return sysDictTypeData.findAll(query.to(SysDictType.class)).to(SysDictTypeVo.class);
     }
 
@@ -151,7 +153,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
     @Override
     public List<SysDictDataVo> updateDictType(SysDictTypeBo bo) {
         SysDictType oldDict = sysDictTypeData.findById(bo.getId());
-        sysDictTypeData.updateDicType(oldDict.getDictType(), bo.getDictType());
+        List<SysDictData> olds=sysDictData.findByDicType(oldDict.getDictType());
+        for (SysDictData sd:olds) {
+            sd.setDictType(bo.getDictType());
+            sysDictData.save(sd);
+        }
+        sysDictTypeData.save(bo.to(SysDictType.class));
 //            CacheUtils.evict(CacheNames.SYS_DICT, oldDict.getDictType());
         return MapstructUtils.convert(sysDictData.findByDicType(bo.getDictType()), SysDictDataVo.class);
     }
@@ -164,11 +171,8 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
      */
     @Override
     public boolean checkDictTypeUnique(SysDictTypeBo dictType) {
-//        boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysDictType>()
-//                .eq(SysDictType::getDictType, dictType.getDictType())
-//                .ne(ObjectUtil.isNotNull(dictType.getDictId()), SysDictType::getDictId, dictType.getDictId()));
-//        return !exist;
-        return false;
+        boolean exist = sysDictTypeData.checkDictTypeUnique(dictType.to(SysDictType.class));
+        return !exist;
     }
 
     /**

+ 8 - 7
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysUserServiceImpl.java

@@ -135,13 +135,14 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 
     @Override
     public void checkUserDataScope(Long userId) {
-        if (!LoginHelper.isSuperAdmin()) {
-            SysUser user = new SysUser();
-            user.setId(userId);
-            List<SysUser> users = sysUserData.findAllByCondition(user);
-            if (CollUtil.isEmpty(users)) {
-                throw new BizException(ErrCode.UNAUTHORIZED_EXCEPTION);
-            }
+        if (ObjectUtil.isNull(userId)) {
+            return;
+        }
+        if (LoginHelper.isSuperAdmin()) {
+            return;
+        }
+        if (ObjectUtil.isNull(sysUserData.findById(userId))) {
+            throw new BizException(ErrCode.UNAUTHORIZED_EXCEPTION);
         }
     }