diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/controller/LovController.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/controller/LovController.java index d26607e0..10ac5642 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/controller/LovController.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/controller/LovController.java @@ -1,9 +1,13 @@ package com.hccake.ballcat.admin.modules.lov.controller; +import com.hccake.ballcat.admin.modules.lov.model.converter.LovConverter; import com.hccake.ballcat.admin.modules.lov.model.dto.LovDTO; +import com.hccake.ballcat.admin.modules.lov.model.entity.Lov; import com.hccake.ballcat.admin.modules.lov.model.qo.LovQO; import com.hccake.ballcat.admin.modules.lov.model.vo.LovInfoVO; import com.hccake.ballcat.admin.modules.lov.model.vo.LovVO; +import com.hccake.ballcat.admin.modules.lov.service.LovBodyService; +import com.hccake.ballcat.admin.modules.lov.service.LovSearchService; import com.hccake.ballcat.admin.modules.lov.service.LovService; import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging; import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging; @@ -29,6 +33,10 @@ public class LovController { private final LovService lovService; + private final LovBodyService bodyService; + + private final LovSearchService searchService; + /** * 分页查询 * @param pageParam 分页参数 @@ -45,8 +53,17 @@ public class LovController { @ApiOperation("根据keyword获取lov数据") @GetMapping("/data/{keyword}") public R getDataByKeyword(@PathVariable("keyword") String keyword) { - LovInfoVO vo = lovService.getDataByKeyword(keyword); - return vo == null ? R.failed(BaseResultCode.UNKNOWN_ERROR, "获取失败!") : R.ok(vo); + + Lov lov = lovService.getByKeyword(keyword); + if (lov == null) { + return R.failed(BaseResultCode.UNKNOWN_ERROR, "获取失败!"); + } + // 封装VO + LovInfoVO lovInfoVO = LovConverter.INSTANCE.poToInfoVO(lov); + lovInfoVO.setBodyList(bodyService.listByKeyword(keyword)); + lovInfoVO.setSearchList(searchService.listByKeyword(keyword)); + + return R.ok(lovInfoVO); } /** diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovBodyMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovBodyMapper.java index c3d0ff18..34f59c32 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovBodyMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovBodyMapper.java @@ -1,11 +1,34 @@ package com.hccake.ballcat.admin.modules.lov.mapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.lov.model.entity.LovBody; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; +import java.util.List; + /** * @author lingting 2020-08-10 17:23 */ public interface LovBodyMapper extends ExtendMapper { + /** + * 根据 lov keyword 查询对应 body + * @param keyword lov标识 + * @return List + */ + default List listByKeyword(String keyword) { + return this.selectList(Wrappers.lambdaQuery().eq(LovBody::getKeyword, keyword)); + } + + /** + * 根据 lov keyword 删除对应 body + * @param keyword lov标识 + * @return 是否删除成功 + */ + default boolean deleteByKeyword(String keyword) { + int i = this.delete(Wrappers.lambdaQuery().eq(LovBody::getKeyword, keyword)); + return SqlHelper.retBool(i); + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovMapper.java index ab4e50d7..a1455b6d 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovMapper.java @@ -1,6 +1,7 @@ package com.hccake.ballcat.admin.modules.lov.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.admin.modules.lov.model.entity.Lov; import com.hccake.ballcat.admin.modules.lov.model.qo.LovQO; import com.hccake.ballcat.admin.modules.lov.model.vo.LovVO; @@ -31,4 +32,13 @@ public interface LovMapper extends ExtendMapper { return new PageResult<>(page.getRecords(), page.getTotal()); } + /** + * 根据 keyword 查询对应的 lov + * @param keyword lov 标识 + * @return Lov 实体 + */ + default Lov selectByKeyword(String keyword) { + return this.selectOne(Wrappers.lambdaQuery().eq(Lov::getKeyword, keyword)); + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovSearchMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovSearchMapper.java index b0db6f29..a9184d94 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovSearchMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/mapper/LovSearchMapper.java @@ -1,11 +1,34 @@ package com.hccake.ballcat.admin.modules.lov.mapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.lov.model.entity.LovSearch; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; +import java.util.List; + /** * @author lingting 2020-08-10 17:20 */ public interface LovSearchMapper extends ExtendMapper { + /** + * 根据 lov keyword 查询对应 search + * @param keyword lov标识 + * @return List + */ + default List listByKeyword(String keyword) { + return this.selectList(Wrappers.lambdaQuery().eq(LovSearch::getKeyword, keyword)); + } + + /** + * 根据 lov keyword 删除对应 search + * @param keyword lov标识 + * @return 是否删除成功 + */ + default boolean deleteByKeyword(String keyword) { + int i = this.delete(Wrappers.lambdaQuery().eq(LovSearch::getKeyword, keyword)); + return SqlHelper.retBool(i); + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/model/converter/LovConverter.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/model/converter/LovConverter.java new file mode 100644 index 00000000..a1f6ab3f --- /dev/null +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/model/converter/LovConverter.java @@ -0,0 +1,27 @@ +package com.hccake.ballcat.admin.modules.lov.model.converter; + +import com.hccake.ballcat.admin.modules.lov.model.entity.Lov; +import com.hccake.ballcat.admin.modules.lov.model.vo.LovInfoVO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * @author Hccake 2021/1/19 + * @version 1.0 + */ +@Mapper +public interface LovConverter { + + LovConverter INSTANCE = Mappers.getMapper(LovConverter.class); + + /** + * Lov 实体转换为 LovInfoVo 对象 + * @param lov Lov实体 + * @return LovVO + */ + @Mapping(target = "searchList", ignore = true) + @Mapping(target = "bodyList", ignore = true) + LovInfoVO poToInfoVO(Lov lov); + +} diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovBodyService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovBodyService.java index c1dd7d6b..dcc4a993 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovBodyService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovBodyService.java @@ -3,9 +3,25 @@ package com.hccake.ballcat.admin.modules.lov.service; import com.hccake.ballcat.admin.modules.lov.model.entity.LovBody; import com.hccake.extend.mybatis.plus.service.ExtendService; +import java.util.List; + /** * @author lingting 2020-08-10 17:20 */ public interface LovBodyService extends ExtendService { + /** + * 根据 lov keyword 查询对应 body + * @param keyword lov标识 + * @return List + */ + List listByKeyword(String keyword); + + /** + * 根据 lov keyword 删除对应 body + * @param keyword lov标识 + * @return 是否删除成功 + */ + boolean removeByKeyword(String keyword); + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovSearchService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovSearchService.java index bfa1ae1f..5c705275 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovSearchService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovSearchService.java @@ -3,9 +3,25 @@ package com.hccake.ballcat.admin.modules.lov.service; import com.hccake.ballcat.admin.modules.lov.model.entity.LovSearch; import com.hccake.extend.mybatis.plus.service.ExtendService; +import java.util.List; + /** * @author lingting 2020-08-10 17:20 */ public interface LovSearchService extends ExtendService { + /** + * 根据 lov keyword 查询对应 search + * @param keyword lov标识 + * @return List + */ + List listByKeyword(String keyword); + + /** + * 根据 lov keyword 删除对应 search + * @param keyword lov标识 + * @return 是否删除成功 + */ + boolean removeByKeyword(String keyword); + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovService.java index d524cf6f..f8913bc2 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/LovService.java @@ -4,7 +4,6 @@ import com.hccake.ballcat.admin.modules.lov.model.entity.Lov; import com.hccake.ballcat.admin.modules.lov.model.entity.LovBody; import com.hccake.ballcat.admin.modules.lov.model.entity.LovSearch; import com.hccake.ballcat.admin.modules.lov.model.qo.LovQO; -import com.hccake.ballcat.admin.modules.lov.model.vo.LovInfoVO; import com.hccake.ballcat.admin.modules.lov.model.vo.LovVO; import com.hccake.ballcat.common.core.domain.PageParam; import com.hccake.ballcat.common.core.domain.PageResult; @@ -56,9 +55,8 @@ public interface LovService extends ExtendService { /** * 根据keyword获取lov数据 * @param keyword keyword - * @return com.hccake.ballcat.admin.modules.lov.model.Vo.LovVo - * @author lingting 2020-08-12 21:38 + * @return Lov */ - LovInfoVO getDataByKeyword(String keyword); + Lov getByKeyword(String keyword); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovBodyServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovBodyServiceImpl.java index b2344966..65ae417a 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovBodyServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovBodyServiceImpl.java @@ -6,10 +6,32 @@ import com.hccake.ballcat.admin.modules.lov.service.LovBodyService; import com.hccake.extend.mybatis.plus.service.impl.ExtendServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author lingting 2020-08-10 17:21 */ @Service public class LovBodyServiceImpl extends ExtendServiceImpl implements LovBodyService { + /** + * 根据 lov keyword 查询对应 body + * @param keyword lov标识 + * @return List + */ + @Override + public List listByKeyword(String keyword) { + return baseMapper.listByKeyword(keyword); + } + + /** + * 根据 lov keyword 删除对应 body + * @param keyword lov标识 + * @return 是否删除成功 + */ + @Override + public boolean removeByKeyword(String keyword) { + return baseMapper.deleteByKeyword(keyword); + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovSearchServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovSearchServiceImpl.java index a6c1857c..847acc44 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovSearchServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovSearchServiceImpl.java @@ -6,10 +6,32 @@ import com.hccake.ballcat.admin.modules.lov.service.LovSearchService; import com.hccake.extend.mybatis.plus.service.impl.ExtendServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author lingting 2020-08-10 17:21 */ @Service public class LovSearchServiceImpl extends ExtendServiceImpl implements LovSearchService { + /** + * 根据 lov keyword 查询对应 search + * @param keyword lov标识 + * @return List + */ + @Override + public List listByKeyword(String keyword) { + return baseMapper.listByKeyword(keyword); + } + + /** + * 根据 lov keyword 删除对应 search + * @param keyword lov标识 + * @return 是否删除成功 + */ + @Override + public boolean removeByKeyword(String keyword) { + return baseMapper.deleteByKeyword(keyword); + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovServiceImpl.java index b6132750..f8ffacfd 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/lov/service/impl/LovServiceImpl.java @@ -1,12 +1,11 @@ package com.hccake.ballcat.admin.modules.lov.service.impl; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import cn.hutool.core.collection.CollectionUtil; import com.hccake.ballcat.admin.modules.lov.mapper.LovMapper; import com.hccake.ballcat.admin.modules.lov.model.entity.Lov; import com.hccake.ballcat.admin.modules.lov.model.entity.LovBody; import com.hccake.ballcat.admin.modules.lov.model.entity.LovSearch; import com.hccake.ballcat.admin.modules.lov.model.qo.LovQO; -import com.hccake.ballcat.admin.modules.lov.model.vo.LovInfoVO; import com.hccake.ballcat.admin.modules.lov.model.vo.LovVO; import com.hccake.ballcat.admin.modules.lov.service.LovBodyService; import com.hccake.ballcat.admin.modules.lov.service.LovSearchService; @@ -44,44 +43,45 @@ public class LovServiceImpl extends ExtendServiceImpl implements @Override @Transactional(rollbackFor = Exception.class) public boolean update(Lov lov, List bodyList, List searchList) { - if (updateById(lov)) { - List removeIds = new ArrayList<>(); - // 获取现有lov body - List lovBodyList = bodyService - .list(Wrappers.lambdaQuery().eq(LovBody::getKeyword, lov.getKeyword())); - - // 获取现有的id - Set ids = bodyList.stream().map(LovBody::getId).collect(Collectors.toSet()); - // 筛选需要删除的id - for (LovBody body : lovBodyList) { - if (!ids.contains(body.getId())) { - removeIds.add(body.getId()); - } - } - bodyService.removeByIds(removeIds); - bodyService.saveOrUpdateBatch( - bodyList.stream().map(body -> body.setKeyword(lov.getKeyword())).collect(Collectors.toList())); - - // 清空已有需要删除的id - removeIds.clear(); - // 获取现有lov body - List lovSearchList = searchService - .list(Wrappers.lambdaQuery().eq(LovSearch::getKeyword, lov.getKeyword())); - - // 获取现有的id - ids = searchList.stream().map(LovSearch::getId).collect(Collectors.toSet()); - // 筛选需要删除的id - for (LovSearch search : lovSearchList) { - if (!ids.contains(search.getId())) { - removeIds.add(search.getId()); - } - } - searchService.removeByIds(removeIds); - searchService.saveOrUpdateBatch( - searchList.stream().map(body -> body.setKeyword(lov.getKeyword())).collect(Collectors.toList())); - return true; + if (!updateById(lov)) { + return false; } - return false; + List removeIds = new ArrayList<>(); + // 获取现有lov body + String keyword = lov.getKeyword(); + List lovBodyList = bodyService.listByKeyword(keyword); + + // 获取现有的id + Set ids = bodyList.stream().map(LovBody::getId).collect(Collectors.toSet()); + // 筛选需要删除的id + for (LovBody body : lovBodyList) { + if (!ids.contains(body.getId())) { + removeIds.add(body.getId()); + } + } + bodyService.removeByIds(removeIds); + + bodyList.forEach((body -> body.setKeyword(keyword))); + bodyService.saveOrUpdateBatch(bodyList); + + // 清空已有需要删除的id + removeIds.clear(); + // 获取现有lov body + List lovSearchList = searchService.listByKeyword(keyword); + + // 获取现有的id + ids = searchList.stream().map(LovSearch::getId).collect(Collectors.toSet()); + // 筛选需要删除的id + for (LovSearch search : lovSearchList) { + if (!ids.contains(search.getId())) { + removeIds.add(search.getId()); + } + } + searchService.removeByIds(removeIds); + + searchList.forEach((body -> body.setKeyword(keyword))); + searchService.saveOrUpdateBatch(searchList); + return true; } @Override @@ -91,10 +91,11 @@ public class LovServiceImpl extends ExtendServiceImpl implements if (!removeById(id)) { throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "移除lov失败!"); } - if (!bodyService.remove(Wrappers.lambdaQuery().eq(LovBody::getKeyword, lov.getKeyword()))) { + String keyword = lov.getKeyword(); + if (!bodyService.removeByKeyword(keyword)) { throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "移除lovBody失败!"); } - if (!searchService.remove(Wrappers.lambdaQuery().eq(LovSearch::getKeyword, lov.getKeyword()))) { + if (!searchService.removeByKeyword(keyword)) { throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "移除lovSearch失败!"); } return true; @@ -103,36 +104,37 @@ public class LovServiceImpl extends ExtendServiceImpl implements @Override @Transactional(rollbackFor = Exception.class) public boolean save(Lov lov, List bodyList, List searchList) { + // 1. 保存 lov 主体 if (!save(lov)) { throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "新增lov失败!"); } - if (bodyList.size() > 0 && !bodyService.saveBatch( - bodyList.stream().map(body -> body.setKeyword(lov.getKeyword())).collect(Collectors.toList()))) { - throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "新增lovBody失败!"); + // 2. 插入body + if (CollectionUtil.isNotEmpty(bodyList)) { + bodyList.forEach(body -> body.setKeyword(lov.getKeyword())); + if (!bodyService.saveBatchSomeColumn(bodyList)) { + throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "新增lovBody失败!"); + } } - if (searchList.size() > 0 && !searchService.saveBatch( - searchList.stream().map(search -> search.setKeyword(lov.getKeyword())).collect(Collectors.toList()))) { - throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "新增lovSearch失败!"); + // 3. 插入 search + if (CollectionUtil.isNotEmpty(searchList)) { + searchList.forEach(x -> x.setKeyword(lov.getKeyword())); + if (!searchService.saveBatchSomeColumn(searchList)) { + throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "新增lovSearch失败!"); + } } return true; } + /** + * 根据keyword获取lov数据 + * @param keyword keyword + * @return Lov + */ @Override - public LovInfoVO getDataByKeyword(String keyword) { - Lov lov = baseMapper.selectOne(Wrappers.lambdaQuery().eq(Lov::getKeyword, keyword)); - if (lov != null) { - LovInfoVO vo = new LovInfoVO().setKey(lov.getKey()).setFixedParams(lov.getFixedParams()) - .setMethod(lov.getMethod()).setKeyword(lov.getKeyword()).setMultiple(lov.getMultiple()) - .setPosition(lov.getPosition()).setRet(lov.getRet()).setTitle(lov.getTitle()).setUrl(lov.getUrl()) - .setRetField(lov.getRetField()); - vo.setBodyList(bodyService.list(Wrappers.lambdaQuery().eq(LovBody::getKeyword, lov.getKeyword()))); - vo.setSearchList( - searchService.list(Wrappers.lambdaQuery().eq(LovSearch::getKeyword, lov.getKeyword()))); - return vo; - } - return null; + public Lov getByKeyword(String keyword) { + return baseMapper.selectByKeyword(keyword); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyOrganizationRecipientFilter.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyOrganizationRecipientFilter.java index 7ba1631f..1a6387e0 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyOrganizationRecipientFilter.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyOrganizationRecipientFilter.java @@ -37,7 +37,7 @@ public class SpecifyOrganizationRecipientFilter implements RecipientFilter { @Override public List filter(List filterCondition) { List organizationIds = filterCondition.stream().map(x -> (Integer) x).collect(Collectors.toList()); - return sysUserService.selectUsersByOrganizationIds(organizationIds); + return sysUserService.listByOrganizationIds(organizationIds); } /** diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyRoleRecipientFilter.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyRoleRecipientFilter.java index 769fdd7b..e3b9352f 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyRoleRecipientFilter.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyRoleRecipientFilter.java @@ -38,7 +38,7 @@ public class SpecifyRoleRecipientFilter implements RecipientFilter { @Override public List filter(List filterCondition) { List roleCodes = filterCondition.stream().map(x -> (String) x).collect(Collectors.toList()); - return sysUserService.selectUsersByRoleCodes(roleCodes); + return sysUserService.listByRoleCodes(roleCodes); } /** @@ -48,7 +48,7 @@ public class SpecifyRoleRecipientFilter implements RecipientFilter { */ @Override public Object getFilterAttr(SysUser sysUser) { - return sysUserService.getUserRoleCodes(sysUser.getUserId()); + return sysUserService.listRoleCodes(sysUser.getUserId()); } /** diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyUserRecipientFilter.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyUserRecipientFilter.java index 383d1fca..5bc68daf 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyUserRecipientFilter.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyUserRecipientFilter.java @@ -37,7 +37,7 @@ public class SpecifyUserRecipientFilter implements RecipientFilter { @Override public List filter(List filterCondition) { List userIds = filterCondition.stream().map(x -> (Integer) x).collect(Collectors.toList()); - return sysUserService.selectUsersByUserIds(userIds); + return sysUserService.listByUserIds(userIds); } /** diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyUserTypeRecipientFilter.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyUserTypeRecipientFilter.java index 9783f6fd..c4730b04 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyUserTypeRecipientFilter.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/recipient/SpecifyUserTypeRecipientFilter.java @@ -37,7 +37,7 @@ public class SpecifyUserTypeRecipientFilter implements RecipientFilter { @Override public List filter(List filterCondition) { List userTypes = filterCondition.stream().map(x -> (Integer) x).collect(Collectors.toList()); - return sysUserService.selectUsersByUserTypes(userTypes); + return sysUserService.listByUserTypes(userTypes); } /** diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/checker/AdminUserChecker.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/checker/AdminUserChecker.java index e34bc378..759ffb58 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/checker/AdminUserChecker.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/checker/AdminUserChecker.java @@ -17,4 +17,11 @@ public interface AdminUserChecker { */ boolean isAdminUser(SysUser user); + /** + * 修改权限校验 + * @param targetUser 目标用户 + * @return 是否有权限修改目标用户 + */ + boolean hasModifyPermission(SysUser targetUser); + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/checker/AdminUserCheckerImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/checker/AdminUserCheckerImpl.java index 36022253..8ecb291c 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/checker/AdminUserCheckerImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/checker/AdminUserCheckerImpl.java @@ -2,6 +2,7 @@ package com.hccake.ballcat.admin.modules.sys.checker; import cn.hutool.core.util.StrUtil; import com.hccake.ballcat.admin.modules.sys.model.entity.SysUser; +import com.hccake.ballcat.admin.oauth.util.SecurityUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -25,4 +26,13 @@ public class AdminUserCheckerImpl implements AdminUserChecker { && adminRuleProperties.getUsername().equals(user.getUsername()); } + @Override + public boolean hasModifyPermission(SysUser targetUser) { + // 如果需要修改的用户是超级管理员,则只能本人修改 + if (this.isAdminUser(targetUser)) { + return SecurityUtils.getSysUserDetails().getUsername().equals(targetUser.getUsername()); + } + return true; + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysOrganizationController.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysOrganizationController.java index e870d24d..2429f54e 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysOrganizationController.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysOrganizationController.java @@ -37,7 +37,7 @@ public class SysOrganizationController { @GetMapping("/tree") @PreAuthorize("@per.hasPermission('sys:organization:read')") public R> getOrganizationTree() { - return R.ok(sysOrganizationService.tree()); + return R.ok(sysOrganizationService.listTree()); } /** diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysPermissionController.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysPermissionController.java index a529e31b..d2b1434d 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysPermissionController.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysPermissionController.java @@ -1,7 +1,6 @@ package com.hccake.ballcat.admin.modules.sys.controller; import cn.hutool.core.collection.CollectionUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.admin.constants.SysPermissionConst; import com.hccake.ballcat.admin.constants.UserResourceConstant; import com.hccake.ballcat.admin.modules.sys.model.converter.SysPermissionConverter; @@ -26,7 +25,7 @@ import java.util.*; import java.util.stream.Collectors; /** - * @author + * @author hccake * @date 2019/09/17 */ @RestController @@ -55,7 +54,7 @@ public class SysPermissionController { // 获取符合条件的权限 Set all = new HashSet<>(); - roleCodes.forEach(roleCode -> all.addAll(sysPermissionService.findPermissionVOsByRoleCode(roleCode))); + roleCodes.forEach(roleCode -> all.addAll(sysPermissionService.listVOByRoleCode(roleCode))); // 筛选出菜单 List routerList = all.stream() @@ -73,9 +72,7 @@ public class SysPermissionController { @GetMapping(value = "/list") @PreAuthorize("@per.hasPermission('sys:syspermission:read')") public R> getTree() { - List list = sysPermissionService - .list(Wrappers.lambdaQuery().orderByAsc(SysPermission::getSort)); - return R.ok(list); + return R.ok(sysPermissionService.listOrderBySort()); } /** @@ -107,7 +104,7 @@ public class SysPermissionController { @PutMapping @PreAuthorize("@per.hasPermission('sys:syspermission:edit')") public R update(@Valid @RequestBody SysPermission sysPermission) { - return R.ok(sysPermissionService.updatePermissionById(sysPermission)); + return R.ok(sysPermissionService.updateById(sysPermission)); } @ApiOperation(value = "通过id删除权限", notes = "通过id删除权限") @@ -115,7 +112,7 @@ public class SysPermissionController { @DeleteMapping("/{id}") @PreAuthorize("@per.hasPermission('sys:syspermission:del')") public R removeById(@PathVariable Integer id) { - return R.ok(sysPermissionService.removePermissionById(id)); + return R.ok(sysPermissionService.removeById(id)); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysRoleController.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysRoleController.java index b266143c..7c77c6d8 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysRoleController.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysRoleController.java @@ -1,6 +1,5 @@ package com.hccake.ballcat.admin.modules.sys.controller; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.admin.constants.SysRoleConst; import com.hccake.ballcat.admin.modules.sys.model.converter.SysRoleConverter; import com.hccake.ballcat.admin.modules.sys.model.dto.SysRoleUpdateDTO; @@ -107,7 +106,7 @@ public class SysRoleController { if (SysRoleConst.Type.SYSTEM.getValue().equals(oldRole.getType())) { return R.failed(BaseResultCode.LOGIC_CHECK_ERROR, "系统角色不允许被删除!"); } - return R.ok(sysRoleService.removeRoleById(id)); + return R.ok(sysRoleService.removeById(id)); } /** @@ -116,7 +115,7 @@ public class SysRoleController { */ @GetMapping("/list") public R> listRoles() { - return R.ok(sysRoleService.list(Wrappers.emptyWrapper())); + return R.ok(sysRoleService.list()); } /** @@ -140,7 +139,7 @@ public class SysRoleController { */ @GetMapping("/permission/code/{roleCode}") public R> getPermissionIds(@PathVariable String roleCode) { - return R.ok(sysPermissionService.findPermissionVOsByRoleCode(roleCode).stream().map(PermissionVO::getId) + return R.ok(sysPermissionService.listVOByRoleCode(roleCode).stream().map(PermissionVO::getId) .collect(Collectors.toList())); } @@ -149,8 +148,8 @@ public class SysRoleController { * @return 角色列表 */ @GetMapping("/select") - public R>> getSelectData() { - return R.ok(sysRoleService.getSelectData()); + public R>> listSelectData() { + return R.ok(sysRoleService.listSelectData()); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysUserController.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysUserController.java index e5d72cae..8e6d1b9a 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysUserController.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/controller/SysUserController.java @@ -2,8 +2,6 @@ package com.hccake.ballcat.admin.modules.sys.controller; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hccake.ballcat.admin.constants.SysUserConst; import com.hccake.ballcat.admin.modules.sys.model.dto.SysUserDTO; import com.hccake.ballcat.admin.modules.sys.model.dto.SysUserScope; @@ -18,10 +16,10 @@ import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging; import com.hccake.ballcat.common.core.domain.PageParam; import com.hccake.ballcat.common.core.domain.PageResult; +import com.hccake.ballcat.common.core.domain.SelectData; import com.hccake.ballcat.common.core.result.BaseResultCode; import com.hccake.ballcat.common.core.result.R; import com.hccake.ballcat.common.core.result.SystemResultCode; -import com.hccake.ballcat.common.core.domain.SelectData; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -71,9 +69,9 @@ public class SysUserController { */ @GetMapping("/select") @PreAuthorize("@per.hasPermission('sys:sysuser:read')") - public R>> getSelectData( + public R>> listSelectData( @RequestParam(value = "userTypes", required = false) List userTypes) { - return R.ok(sysUserService.getSelectData(userTypes)); + return R.ok(sysUserService.listSelectData(userTypes)); } /** @@ -129,7 +127,7 @@ public class SysUserController { @PreAuthorize("@per.hasPermission('sys:sysuser:grant')") public R getUserRoleIds(@PathVariable Integer userId) { - List roleList = sysUserRoleService.getRoles(userId); + List roleList = sysUserRoleService.listRoles(userId); List roleCodes = new ArrayList<>(); if (CollectionUtil.isNotEmpty(roleList)) { @@ -186,7 +184,7 @@ public class SysUserController { && !SysUserConst.Status.LOCKED.getValue().equals(status)) { throw new ValidationException("不支持的用户状态!"); } - return sysUserService.updateUserStatus(userIds, status) ? R.ok() + return sysUserService.updateUserStatusBatch(userIds, status) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "批量修改用户状态!"); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/manager/SysDictManager.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/manager/SysDictManager.java index d8ec74bd..879f8a65 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/manager/SysDictManager.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/manager/SysDictManager.java @@ -2,7 +2,6 @@ package com.hccake.ballcat.admin.modules.sys.manager; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.IdUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.admin.modules.sys.event.DictChangeEvent; import com.hccake.ballcat.admin.modules.sys.model.converter.SysDictConverter; import com.hccake.ballcat.admin.modules.sys.model.entity.SysDict; @@ -97,12 +96,12 @@ public class SysDictManager { throw new BusinessException(BaseResultCode.LOGIC_CHECK_ERROR.getCode(), "该字典项目不能删除"); } // 需级联删除对应的字典项 - if (sysDictService.removeById(id)) { - sysDictItemService - .remove(Wrappers.lambdaUpdate().eq(SysDictItem::getDictCode, dict.getCode())); + if (sysDictService.removeById(id) && sysDictItemService.removeByDictCode(dict.getCode())) { return true; } - return false; + else { + throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "字典项删除异常"); + } } /** @@ -192,10 +191,10 @@ public class SysDictManager { public List queryDictDataAndHashVO(String[] dictCodes) { List list = new ArrayList<>(); // 查询对应hash值,以及字典项数据 - List sysDictList = sysDictService.getByCode(dictCodes); + List sysDictList = sysDictService.listByCodes(dictCodes); if (CollectionUtil.isNotEmpty(sysDictList)) { for (SysDict sysDict : sysDictList) { - List dictItems = sysDictItemService.getByDictCode(sysDict.getCode()); + List dictItems = sysDictItemService.listByDictCode(sysDict.getCode()); // 排序并转换为VO List setDictItems = dictItems.stream().sorted(Comparator.comparingInt(SysDictItem::getSort)) .map(SysDictConverter.INSTANCE::itemPoToVo).collect(Collectors.toList()); @@ -218,7 +217,7 @@ public class SysDictManager { * @return List 失效的字典标识集合 */ public List invalidDictHash(Map dictHashCode) { - List byCode = sysDictService.getByCode(dictHashCode.keySet().toArray(new String[] {})); + List byCode = sysDictService.listByCodes(dictHashCode.keySet().toArray(new String[] {})); // 过滤相等Hash值的字典项,并返回需要修改的字典项的Code return byCode.stream().filter(x -> !dictHashCode.get(x.getCode()).equals(x.getHashCode())).map(SysDict::getCode) .collect(Collectors.toList()); diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysConfigMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysConfigMapper.java index c83540ef..3a8019fa 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysConfigMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysConfigMapper.java @@ -29,4 +29,13 @@ public interface SysConfigMapper extends ExtendMapper { return new PageResult<>(page.getRecords(), page.getTotal()); } + /** + * 根据配置key查询配置信息 + * @param confKey 配置key + * @return SysConfig 配置信息 + */ + default SysConfig selectByKey(String confKey) { + return this.selectOne(Wrappers.lambdaQuery().eq(SysConfig::getConfKey, confKey)); + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysDictItemMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysDictItemMapper.java index f54e7562..ba33645f 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysDictItemMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysDictItemMapper.java @@ -3,12 +3,15 @@ package com.hccake.ballcat.admin.modules.sys.mapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.sys.model.entity.SysDictItem; import com.hccake.ballcat.admin.modules.sys.model.vo.SysDictItemVO; import com.hccake.ballcat.common.core.domain.PageParam; import com.hccake.ballcat.common.core.domain.PageResult; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; +import java.util.List; + /** * 字典项 * @@ -31,4 +34,23 @@ public interface SysDictItemMapper extends ExtendMapper { return new PageResult<>(page.getRecords(), page.getTotal()); } + /** + * 根据字典标识查询对应字典项集合 + * @param dictCode 字典标识 + * @return List 字典项集合 + */ + default List listByDictCode(String dictCode) { + return this.selectList(Wrappers.lambdaQuery().eq(SysDictItem::getDictCode, dictCode)); + } + + /** + * 根据字典标识删除对应字典项 + * @param dictCode 字典标识 + * @return 是否删除成功 + */ + default boolean deleteByDictCode(String dictCode) { + int i = this.delete(Wrappers.lambdaUpdate().eq(SysDictItem::getDictCode, dictCode)); + return SqlHelper.retBool(i); + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysDictMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysDictMapper.java index 70f3fe54..e5c84219 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysDictMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysDictMapper.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.sys.model.entity.SysDict; import com.hccake.ballcat.admin.modules.sys.model.qo.SysDictQO; import com.hccake.ballcat.admin.modules.sys.model.vo.SysDictVO; @@ -11,6 +12,8 @@ import com.hccake.ballcat.common.core.domain.PageParam; import com.hccake.ballcat.common.core.domain.PageResult; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; +import java.util.List; + /** * 字典表 * @@ -34,4 +37,34 @@ public interface SysDictMapper extends ExtendMapper { return new PageResult<>(page.getRecords(), page.getTotal()); } + /** + * 根据字典标识查询对应字典 + * @param dictCode 字典标识 + * @return SysDict 字典 + */ + default SysDict getByCode(String dictCode) { + return this.selectOne(Wrappers.lambdaQuery().eq(SysDict::getCode, dictCode)); + } + + /** + * 根据字典标识数组查询对应字典集合 + * @param dictCodes 字典标识数组 + * @return List 字典集合 + */ + default List listByCodes(String[] dictCodes) { + return this.selectList(Wrappers.lambdaQuery().in(SysDict::getCode, (Object[]) dictCodes)); + } + + /** + * 更新字典的HashCode + * @param dictCode 字典标识 + * @param hashCode 哈希值 + * @return boolean 是否更新成功 + */ + default boolean updateHashCode(String dictCode, String hashCode) { + int flag = this.update(null, + Wrappers.lambdaUpdate().set(SysDict::getHashCode, hashCode).eq(SysDict::getCode, dictCode)); + return SqlHelper.retBool(flag); + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysOrganizationMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysOrganizationMapper.java index ed6809fb..acc55500 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysOrganizationMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysOrganizationMapper.java @@ -1,5 +1,6 @@ package com.hccake.ballcat.admin.modules.sys.mapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.admin.modules.sys.model.entity.SysOrganization; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; import org.apache.ibatis.annotations.Param; @@ -13,6 +14,16 @@ import java.util.List; */ public interface SysOrganizationMapper extends ExtendMapper { + /** + * 根据组织ID 查询除该组织下的所有儿子组织 + * @param organizationId 组织机构ID + * @return List 该组织的儿子组织 + */ + default List listSubOrganization(Integer organizationId) { + return this + .selectList(Wrappers.lambdaQuery().eq(SysOrganization::getParentId, organizationId)); + } + /** * 跟随父节点移动子节点 * @param originHierarchy 原始父级层级 @@ -27,6 +38,6 @@ public interface SysOrganizationMapper extends ExtendMapper { * @param organizationId 组织机构ID * @return 子部门集合 */ - List selectChildOrganization(@Param("organizationId") Integer organizationId); + List listChildOrganization(@Param("organizationId") Integer organizationId); } \ No newline at end of file diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysPermissionMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysPermissionMapper.java index ffbb22cc..4c7f24ac 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysPermissionMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysPermissionMapper.java @@ -1,9 +1,11 @@ package com.hccake.ballcat.admin.modules.sys.mapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.admin.modules.sys.model.entity.SysPermission; import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; +import java.io.Serializable; import java.util.List; /** @@ -13,11 +15,28 @@ import java.util.List; */ public interface SysPermissionMapper extends ExtendMapper { + /** + * 查询指定权限的下级权限总数 + * @param id 权限ID + * @return 下级权限总数 + */ + default Integer countSubPermission(Serializable id) { + return this.selectCount(Wrappers.query().lambda().eq(SysPermission::getParentId, id)); + } + + /** + * 查询权限集合,并按sort排序(升序) + * @return List + */ + default List listOrderBySort() { + return this.selectList(Wrappers.lambdaQuery().orderByAsc(SysPermission::getSort)); + } + /** * 通过角色ID查询权限 * @param roleCode 角色ID * @return 指定角色拥有的权限列表 */ - List listPermissionVOsByRoleCode(String roleCode); + List listVOByRoleCode(String roleCode); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysRoleMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysRoleMapper.java index 3b06abaa..2c31f36d 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysRoleMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysRoleMapper.java @@ -45,6 +45,6 @@ public interface SysRoleMapper extends ExtendMapper { * 获取角色下拉框数据 * @return 下拉选择框数据集合 */ - List> getSelectData(); + List> listSelectData(); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysRolePermissionMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysRolePermissionMapper.java index 28fe297c..d2942ee2 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysRolePermissionMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysRolePermissionMapper.java @@ -1,8 +1,11 @@ package com.hccake.ballcat.admin.modules.sys.mapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.admin.modules.sys.model.entity.SysRolePermission; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; +import java.io.Serializable; + /** *

* 角色菜单表 Mapper 接口 @@ -13,4 +16,20 @@ import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; */ public interface SysRolePermissionMapper extends ExtendMapper { + /** + * 根据权限ID删除角色权限关联关系 + * @param permissionId 权限ID + */ + default void deleteByPermissionId(Serializable permissionId) { + this.delete(Wrappers.query().lambda().eq(SysRolePermission::getPermissionId, permissionId)); + } + + /** + * 根据角色标识删除角色权限关联关系 + * @param roleCode 角色标识 + */ + default void deleteByRoleCode(String roleCode) { + this.delete(Wrappers.query().lambda().eq(SysRolePermission::getRoleCode, roleCode)); + } + } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysUserMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysUserMapper.java index dbf049e9..551bfaff 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysUserMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysUserMapper.java @@ -2,6 +2,8 @@ package com.hccake.ballcat.admin.modules.sys.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.sys.model.entity.SysUser; import com.hccake.ballcat.admin.modules.sys.model.qo.SysUserQO; import com.hccake.ballcat.admin.modules.sys.model.vo.SysUserVO; @@ -45,18 +47,78 @@ public interface SysUserMapper extends ExtendMapper { return new PageResult<>(page.getRecords(), page.getTotal()); } + /** + * 批量更新用户状态 + * @param userIds 用户ID集合 + * @param status 状态 + * @return 是否更新成功 + */ + default boolean updateUserStatusBatch(List userIds, Integer status) { + int i = this.update(null, + Wrappers.lambdaUpdate(SysUser.class).set(SysUser::getStatus, status).in(SysUser::getUserId, userIds)); + return SqlHelper.retBool(i); + } + + /** + * 根据用户名查询用户 + * @param username 用户名 + * @return 系统用户 + */ + default SysUser selectByUsername(String username) { + return this.selectOne(Wrappers.lambdaQuery().eq(SysUser::getUsername, username)); + } + + /** + * 更新指定用户的密码 + * @param userId 用户 + * @param password 密码 + * @return 更新条数 + */ + default boolean updateUserPassword(Integer userId, String password) { + int i = this.update(null, + Wrappers.lambdaUpdate().eq(SysUser::getUserId, userId).set(SysUser::getPassword, password)); + return SqlHelper.retBool(i); + } + + /** + * 根据组织机构ID查询用户 + * @param organizationIds 组织机构id集合 + * @return 用户集合 + */ + default List listByOrganizationIds(List organizationIds) { + return this.selectList(Wrappers.lambdaQuery().in(SysUser::getOrganizationId, organizationIds)); + } + + /** + * 根据用户类型查询用户 + * @param userTypes 用户类型集合 + * @return 用户集合 + */ + default List listByUserTypes(List userTypes) { + return this.selectList(Wrappers.lambdaQuery().in(SysUser::getType, userTypes)); + } + + /** + * 根据用户Id集合查询用户 + * @param userIds 用户Id集合 + * @return 用户集合 + */ + default List listByUserIds(List userIds) { + return this.selectList(Wrappers.lambdaQuery().in(SysUser::getUserId, userIds)); + } + /** * 根据RoleCode 查询对应用户 * @param roleCodes 角色标识 * @return List 该角色标识对应的用户列表 */ - List selectUsersByRoleCodes(@Param("roleCodes") List roleCodes); + List listByRoleCodes(@Param("roleCodes") List roleCodes); /** * 返回用户的select数据 name=> username value => userId * @param userTypes 用户类型 * @return List */ - List> getSelectData(@Param("userTypes") List userTypes); + List> listSelectData(@Param("userTypes") List userTypes); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysUserRoleMapper.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysUserRoleMapper.java index a0c18010..91a22d13 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysUserRoleMapper.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/mapper/SysUserRoleMapper.java @@ -22,7 +22,7 @@ public interface SysUserRoleMapper extends ExtendMapper { * @param userId 用户ID * @return 用户拥有的角色集合 */ - List getRoles(Integer userId); + List listRoles(Integer userId); /** * 删除用户关联关系 diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/model/entity/SysRolePermission.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/model/entity/SysRolePermission.java index 0ba61a28..53156d52 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/model/entity/SysRolePermission.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/model/entity/SysRolePermission.java @@ -20,6 +20,14 @@ public class SysRolePermission { private static final long serialVersionUID = 1L; + public SysRolePermission() { + } + + public SysRolePermission(String roleCode, Integer permissionId) { + this.roleCode = roleCode; + this.permissionId = permissionId; + } + @TableId(type = IdType.AUTO) private Long id; diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysDictItemService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysDictItemService.java index 74684ca4..c7af6e02 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysDictItemService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysDictItemService.java @@ -29,6 +29,13 @@ public interface SysDictItemService extends ExtendService { * @param dictCode 字典标识 * @return 该字典对应的字典项集合 */ - List getByDictCode(String dictCode); + List listByDictCode(String dictCode); + + /** + * 根据字典标识删除对应字典项 + * @param dictCode 字典标识 + * @return 是否删除成功 + */ + boolean removeByDictCode(String dictCode); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysDictService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysDictService.java index 9da54356..3ecf50a4 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysDictService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysDictService.java @@ -33,11 +33,11 @@ public interface SysDictService extends ExtendService { SysDict getByCode(String dictCode); /** - * 根据字典标识查询 - * @param dictCode 字典标识 - * @return 字典数据 + * 根据字典标识数组查询对应字典集合 + * @param dictCodes 字典标识数组 + * @return List 字典集合 */ - List getByCode(String[] dictCode); + List listByCodes(String[] dictCodes); /** * 更新字典HashCode diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysOrganizationService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysOrganizationService.java index ed0db9b7..b663301f 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysOrganizationService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysOrganizationService.java @@ -18,7 +18,7 @@ public interface SysOrganizationService extends ExtendService { * 返回组织架构的树形结构 * @return OrganizationTree */ - List tree(); + List listTree(); /** * 创建一个新的组织机构 @@ -39,13 +39,13 @@ public interface SysOrganizationService extends ExtendService { * @param organizationId 组织机构ID * @return List 该组织的儿子组织 */ - List selectSubOrganization(Integer organizationId); + List listSubOrganization(Integer organizationId); /** * 根据组织ID 查询除该组织下的所有孩子(子孙)组织 * @param organizationId 组织机构ID * @return List 该组织的孩子组织 */ - List selectChildOrganization(Integer organizationId); + List listChildOrganization(Integer organizationId); } \ No newline at end of file diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysPermissionService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysPermissionService.java index 19b82034..bdca34f2 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysPermissionService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysPermissionService.java @@ -21,20 +21,12 @@ public interface SysPermissionService extends ExtendService { * @param roleCode 角色Code * @return 菜单列表 */ - List findPermissionVOsByRoleCode(String roleCode); + List listVOByRoleCode(String roleCode); /** - * 级联删除菜单 - * @param id 菜单ID - * @return 成功、失败 + * 查询权限集合,并按sort排序(升序) + * @return List */ - boolean removePermissionById(Integer id); - - /** - * 更新菜单信息 - * @param sysPermission 菜单信息 - * @return 成功、失败 - */ - Boolean updatePermissionById(SysPermission sysPermission); + List listOrderBySort(); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysRolePermissionService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysRolePermissionService.java index cc1785fd..d032dc1b 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysRolePermissionService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysRolePermissionService.java @@ -3,6 +3,8 @@ package com.hccake.ballcat.admin.modules.sys.service; import com.hccake.ballcat.admin.modules.sys.model.entity.SysRolePermission; import com.hccake.extend.mybatis.plus.service.ExtendService; +import java.io.Serializable; + /** *

* 角色菜单表 服务类 @@ -21,4 +23,16 @@ public interface SysRolePermissionService extends ExtendService { */ PageResult queryPage(PageParam pageParam, SysRoleQO qo); - /** - * 通过角色ID,删除角色 - * @param id 角色ID - * @return 删除是否成功 - */ - Boolean removeRoleById(Integer id); - /** * 角色的选择数据 * @return 角色下拉列表数据集合 */ - List> getSelectData(); + List> listSelectData(); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysUserRoleService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysUserRoleService.java index ae730ce7..5571904b 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysUserRoleService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysUserRoleService.java @@ -41,6 +41,6 @@ public interface SysUserRoleService extends ExtendService { * @param userId 用户ID * @return List */ - List getRoles(Integer userId); + List listRoles(Integer userId); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysUserService.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysUserService.java index ad1e47ec..6863aafe 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysUserService.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/SysUserService.java @@ -88,7 +88,7 @@ public interface SysUserService extends ExtendService { * @param status 状态 * @return boolean */ - boolean updateUserStatus(List userIds, Integer status); + boolean updateUserStatusBatch(List userIds, Integer status); /** * 修改系统用户头像 @@ -104,48 +104,48 @@ public interface SysUserService extends ExtendService { * @param roleCode 角色标识 * @return List */ - List selectUsersByRoleCode(String roleCode); + List listByRoleCode(String roleCode); /** * 根据角色查询用户 * @param roleCodes 角色标识集合 * @return List 用户集合 */ - List selectUsersByRoleCodes(List roleCodes); + List listByRoleCodes(List roleCodes); /** * 根据组织机构ID查询用户 * @param organizationIds 组织机构id集合 * @return 用户集合 */ - List selectUsersByOrganizationIds(List organizationIds); + List listByOrganizationIds(List organizationIds); /** * 根据用户类型查询用户 * @param userTypes 用户类型集合 * @return 用户集合 */ - List selectUsersByUserTypes(List userTypes); + List listByUserTypes(List userTypes); /** * 根据用户Id集合查询用户 * @param userIds 用户Id集合 * @return 用户集合 */ - List selectUsersByUserIds(List userIds); + List listByUserIds(List userIds); /** * 返回用户的select数据 * @param type 为空时返回所有客户为1返回系统客户 name=> username value => userId * @return List */ - List> getSelectData(List type); + List> listSelectData(List type); /** * 获取用户的角色Code集合 * @param userId 用户id * @return List */ - List getUserRoleCodes(Integer userId); + List listRoleCodes(Integer userId); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysConfigServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysConfigServiceImpl.java index 3c56e48e..2d0d5672 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysConfigServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysConfigServiceImpl.java @@ -1,6 +1,5 @@ package com.hccake.ballcat.admin.modules.sys.service.impl; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.admin.modules.sys.mapper.SysConfigMapper; import com.hccake.ballcat.admin.modules.sys.model.entity.SysConfig; import com.hccake.ballcat.admin.modules.sys.model.qo.SysConfigQO; @@ -38,8 +37,7 @@ public class SysConfigServiceImpl extends ExtendServiceImpllambdaQuery().eq(SysConfig::getConfKey, confKey)); + SysConfig sysConfig = baseMapper.selectByKey(confKey); return sysConfig == null ? "" : sysConfig.getConfValue(); } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysDictItemServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysDictItemServiceImpl.java index ec840fed..4545ef21 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysDictItemServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysDictItemServiceImpl.java @@ -1,6 +1,5 @@ package com.hccake.ballcat.admin.modules.sys.service.impl; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.admin.modules.sys.mapper.SysDictItemMapper; import com.hccake.ballcat.admin.modules.sys.model.entity.SysDictItem; import com.hccake.ballcat.admin.modules.sys.model.vo.SysDictItemVO; @@ -39,8 +38,18 @@ public class SysDictItemServiceImpl extends ExtendServiceImpl getByDictCode(String dictCode) { - return baseMapper.selectList(Wrappers.lambdaQuery().eq(SysDictItem::getDictCode, dictCode)); + public List listByDictCode(String dictCode) { + return baseMapper.listByDictCode(dictCode); + } + + /** + * 根据字典标识删除对应字典项 + * @param dictCode 字典标识 + * @return 是否删除成功 + */ + @Override + public boolean removeByDictCode(String dictCode) { + return baseMapper.deleteByDictCode(dictCode); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysDictServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysDictServiceImpl.java index 405af4b1..1e48ba26 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysDictServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysDictServiceImpl.java @@ -1,8 +1,6 @@ package com.hccake.ballcat.admin.modules.sys.service.impl; import cn.hutool.core.util.IdUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.sys.mapper.SysDictMapper; import com.hccake.ballcat.admin.modules.sys.model.entity.SysDict; import com.hccake.ballcat.admin.modules.sys.model.qo.SysDictQO; @@ -43,20 +41,20 @@ public class SysDictServiceImpl extends ExtendServiceImpllambdaQuery().eq(SysDict::getCode, dictCode)); + return baseMapper.getByCode(dictCode); } /** - * 根据字典标识查询 - * @param dictCode 字典标识 - * @return 字典数据 + * 根据字典标识数组查询对应字典集合 + * @param dictCodes 字典标识数组 + * @return List 字典集合 */ @Override - public List getByCode(String[] dictCode) { - if (dictCode == null || dictCode.length == 0) { + public List listByCodes(String[] dictCodes) { + if (dictCodes == null || dictCodes.length == 0) { return new ArrayList<>(); } - return baseMapper.selectList(Wrappers.lambdaQuery().in(SysDict::getCode, (Object[]) dictCode)); + return baseMapper.listByCodes(dictCodes); } /** @@ -66,9 +64,7 @@ public class SysDictServiceImpl extends ExtendServiceImpllambdaUpdate() - .set(SysDict::getHashCode, IdUtil.fastSimpleUUID()).eq(SysDict::getCode, dictCode)); - return SqlHelper.retBool(flag); + return baseMapper.updateHashCode(dictCode, IdUtil.fastSimpleUUID()); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysOrganizationServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysOrganizationServiceImpl.java index 0b64f6f8..d07a3bad 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysOrganizationServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysOrganizationServiceImpl.java @@ -1,7 +1,6 @@ package com.hccake.ballcat.admin.modules.sys.service.impl; import cn.hutool.core.lang.Assert; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.sys.mapper.SysOrganizationMapper; import com.hccake.ballcat.admin.modules.sys.model.converter.SysOrganizationConverter; @@ -30,7 +29,7 @@ public class SysOrganizationServiceImpl extends ExtendServiceImpl tree() { + public List listTree() { List list = baseMapper.selectList(null); return TreeUtil.buildTree(list, 0, SysOrganizationConverter.INSTANCE::poToTree); } @@ -91,9 +90,8 @@ public class SysOrganizationServiceImpl extends ExtendServiceImpl 该组织的儿子组织 */ @Override - public List selectSubOrganization(Integer organizationId) { - return baseMapper - .selectList(Wrappers.lambdaQuery().eq(SysOrganization::getParentId, organizationId)); + public List listSubOrganization(Integer organizationId) { + return baseMapper.listSubOrganization(organizationId); } /** @@ -102,8 +100,8 @@ public class SysOrganizationServiceImpl extends ExtendServiceImpl 该组织的孩子组织 */ @Override - public List selectChildOrganization(Integer organizationId) { - return baseMapper.selectChildOrganization(organizationId); + public List listChildOrganization(Integer organizationId) { + return baseMapper.listChildOrganization(organizationId); } /** diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysPermissionServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysPermissionServiceImpl.java index c86f58f9..91bfc511 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysPermissionServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysPermissionServiceImpl.java @@ -1,13 +1,11 @@ package com.hccake.ballcat.admin.modules.sys.service.impl; -import cn.hutool.core.collection.CollUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.sys.mapper.SysPermissionMapper; -import com.hccake.ballcat.admin.modules.sys.mapper.SysRolePermissionMapper; import com.hccake.ballcat.admin.modules.sys.model.entity.SysPermission; -import com.hccake.ballcat.admin.modules.sys.model.entity.SysRolePermission; import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO; import com.hccake.ballcat.admin.modules.sys.service.SysPermissionService; +import com.hccake.ballcat.admin.modules.sys.service.SysRolePermissionService; import com.hccake.ballcat.common.core.exception.BusinessException; import com.hccake.ballcat.common.core.result.BaseResultCode; import com.hccake.extend.mybatis.plus.service.impl.ExtendServiceImpl; @@ -15,6 +13,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.io.Serializable; import java.util.List; /** @@ -30,33 +29,34 @@ import java.util.List; public class SysPermissionServiceImpl extends ExtendServiceImpl implements SysPermissionService { - private final SysRolePermissionMapper sysRolePermissionMapper; + private final SysRolePermissionService sysRolePermissionService; @Override - public List findPermissionVOsByRoleCode(String roleCode) { - return baseMapper.listPermissionVOsByRoleCode(roleCode); + public List listVOByRoleCode(String roleCode) { + return baseMapper.listVOByRoleCode(roleCode); + } + + /** + * 查询权限集合,并按sort排序(升序) + * @return List + */ + @Override + public List listOrderBySort() { + return baseMapper.listOrderBySort(); } @Override @Transactional(rollbackFor = Exception.class) - public boolean removePermissionById(Integer id) { - // 查询父节点为当前节点的节点 - List permissionList = this - .list(Wrappers.query().lambda().eq(SysPermission::getParentId, id)); - if (CollUtil.isNotEmpty(permissionList)) { + public boolean removeById(Serializable id) { + // 查询当前权限是否有子权限 + Integer subPermissionNum = baseMapper.countSubPermission(id); + if (subPermissionNum != null && subPermissionNum > 0) { throw new BusinessException(BaseResultCode.LOGIC_CHECK_ERROR.getCode(), "菜单含有下级不能删除"); } - - sysRolePermissionMapper - .delete(Wrappers.query().lambda().eq(SysRolePermission::getPermissionId, id)); - + // 删除角色权限关联数据 + sysRolePermissionService.deleteByPermissionId(id); // 删除当前菜单及其子菜单 - return this.removeById(id); - } - - @Override - public Boolean updatePermissionById(SysPermission sysPermission) { - return this.updateById(sysPermission); + return SqlHelper.retBool(baseMapper.deleteById(id)); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysRolePermissionServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysRolePermissionServiceImpl.java index 6e206145..653ef5d9 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysRolePermissionServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysRolePermissionServiceImpl.java @@ -1,7 +1,7 @@ package com.hccake.ballcat.admin.modules.sys.service.impl; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.sys.mapper.SysRolePermissionMapper; import com.hccake.ballcat.admin.modules.sys.model.entity.SysRolePermission; import com.hccake.ballcat.admin.modules.sys.service.SysRolePermissionService; @@ -9,6 +9,7 @@ import com.hccake.extend.mybatis.plus.service.impl.ExtendServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.io.Serializable; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -32,19 +33,35 @@ public class SysRolePermissionServiceImpl extends ExtendServiceImplquery().lambda().eq(SysRolePermission::getRoleCode, roleCode)); - + // 1、先删除旧数据 + baseMapper.deleteByRoleCode(roleCode); if (permissionIds == null || permissionIds.length == 0) { return Boolean.TRUE; } - List rolePermissionList = Arrays.stream(permissionIds).map(permissionId -> { - SysRolePermission rolePermission = new SysRolePermission(); - rolePermission.setRoleCode(roleCode); - rolePermission.setPermissionId(permissionId); - return rolePermission; - }).collect(Collectors.toList()); - return this.saveBatch(rolePermissionList); + // 2、再批量插入新数据 + List list = Arrays.stream(permissionIds).map(id -> new SysRolePermission(roleCode, id)) + .collect(Collectors.toList()); + int i = baseMapper.insertBatchSomeColumn(list); + return SqlHelper.retBool(i); + } + + /** + * 根据权限ID删除角色权限关联数据 + * @param permissionId 权限ID + */ + @Override + public void deleteByPermissionId(Serializable permissionId) { + baseMapper.deleteByPermissionId(permissionId); + } + + /** + * 根据角色标识删除角色权限关联关系 + * @param roleCode 角色标识 + */ + @Override + public void deleteByRoleCode(String roleCode) { + baseMapper.deleteByRoleCode(roleCode); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysRoleServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysRoleServiceImpl.java index f4959cbc..5383ea31 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysRoleServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysRoleServiceImpl.java @@ -1,12 +1,11 @@ package com.hccake.ballcat.admin.modules.sys.service.impl; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.modules.sys.mapper.SysRoleMapper; -import com.hccake.ballcat.admin.modules.sys.mapper.SysRolePermissionMapper; import com.hccake.ballcat.admin.modules.sys.model.entity.SysRole; -import com.hccake.ballcat.admin.modules.sys.model.entity.SysRolePermission; import com.hccake.ballcat.admin.modules.sys.model.qo.SysRoleQO; import com.hccake.ballcat.admin.modules.sys.model.vo.SysRoleVO; +import com.hccake.ballcat.admin.modules.sys.service.SysRolePermissionService; import com.hccake.ballcat.admin.modules.sys.service.SysRoleService; import com.hccake.ballcat.common.core.domain.PageParam; import com.hccake.ballcat.common.core.domain.PageResult; @@ -16,6 +15,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.io.Serializable; import java.util.List; /** @@ -30,7 +30,7 @@ import java.util.List; @RequiredArgsConstructor public class SysRoleServiceImpl extends ExtendServiceImpl implements SysRoleService { - private final SysRolePermissionMapper sysRolePermissionMapper; + private final SysRolePermissionService sysRolePermissionService; /** * 查询系统角色列表 @@ -50,11 +50,10 @@ public class SysRoleServiceImpl extends ExtendServiceImplupdate().lambda().eq(SysRolePermission::getRoleCode, role.getCode())); - return this.removeById(id); + sysRolePermissionService.deleteByRoleCode(role.getCode()); + return SqlHelper.retBool(baseMapper.deleteById(id)); } /** @@ -62,8 +61,8 @@ public class SysRoleServiceImpl extends ExtendServiceImpl> */ @Override - public List> getSelectData() { - return baseMapper.getSelectData(); + public List> listSelectData() { + return baseMapper.listSelectData(); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysUserRoleServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysUserRoleServiceImpl.java index 869e2983..3907a519 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysUserRoleServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysUserRoleServiceImpl.java @@ -63,8 +63,8 @@ public class SysUserRoleServiceImpl extends ExtendServiceImpl getRoles(Integer userId) { - return baseMapper.getRoles(userId); + public List listRoles(Integer userId) { + return baseMapper.listRoles(userId); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysUserServiceImpl.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysUserServiceImpl.java index 228065eb..531595f9 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysUserServiceImpl.java +++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/sys/service/impl/SysUserServiceImpl.java @@ -4,9 +4,6 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.admin.constants.SysUserConst; import com.hccake.ballcat.admin.modules.sys.checker.AdminUserChecker; @@ -22,15 +19,11 @@ import com.hccake.ballcat.admin.modules.sys.model.qo.SysUserQO; import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO; import com.hccake.ballcat.admin.modules.sys.model.vo.SysUserVO; import com.hccake.ballcat.admin.modules.sys.service.*; -import com.hccake.ballcat.admin.oauth.util.SecurityUtils; -import com.hccake.ballcat.common.core.constant.GlobalConstants; import com.hccake.ballcat.common.core.domain.PageParam; import com.hccake.ballcat.common.core.domain.PageResult; import com.hccake.ballcat.common.core.domain.SelectData; import com.hccake.ballcat.common.core.util.PasswordUtil; -import com.hccake.extend.mybatis.plus.conditions.query.LambdaAliasQueryWrapperX; import com.hccake.extend.mybatis.plus.service.impl.ExtendServiceImpl; -import com.hccake.extend.mybatis.plus.toolkit.WrappersX; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEventPublisher; @@ -88,7 +81,7 @@ public class SysUserServiceImpl extends ExtendServiceImpllambdaQuery().eq(SysUser::getUsername, username)); + return baseMapper.selectByUsername(username); } /** @@ -108,7 +101,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl roleIds = new ArrayList<>(); @@ -124,7 +117,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl permissions = new HashSet<>(); roles.forEach(code -> { - List permissionList = sysPermissionService.findPermissionVOsByRoleCode(code).stream() + List permissionList = sysPermissionService.listVOByRoleCode(code).stream() .map(PermissionVO::getCode).filter(StrUtil::isNotEmpty).collect(Collectors.toList()); permissions.addAll(permissionList); }); @@ -160,7 +153,7 @@ public class SysUserServiceImpl extends ExtendServiceImpllambdaUpdate().eq(SysUser::getUserId, userId).set(SysUser::getPassword, password)); - - return SqlHelper.retBool(res); - } - - /** - * 修改权限校验 - * @param targetUser 目标用户 - * @return 是否有权限修改目标用户 - */ - private boolean hasModifyPermission(SysUser targetUser) { - // 如果需要修改的用户是超级管理员,则只能本人修改 - if (adminUserChecker.isAdminUser(targetUser)) { - return SecurityUtils.getSysUserDetails().getUsername().equals(targetUser.getUsername()); - } - return true; + return baseMapper.updateUserPassword(userId, password); } /** @@ -227,25 +203,24 @@ public class SysUserServiceImpl extends ExtendServiceImpl userIds, Integer status) { + public boolean updateUserStatusBatch(List userIds, Integer status) { - List userList = baseMapper.selectList(Wrappers.lambdaQuery().in(SysUser::getUserId, userIds)); + List userList = baseMapper.listByUserIds(userIds); Assert.notEmpty(userList, "更新用户状态失败,待更新用户列表为空"); // 移除无权限更改的用户id Map userMap = userList.stream() .collect(Collectors.toMap(SysUser::getUserId, Function.identity())); - userIds.removeIf(id -> !hasModifyPermission(userMap.get(id))); + userIds.removeIf(id -> !adminUserChecker.hasModifyPermission(userMap.get(id))); Assert.notEmpty(userIds, "更新用户状态失败,无权限更新用户"); - return this.update( - Wrappers.lambdaUpdate().set(SysUser::getStatus, status).in(SysUser::getUserId, userIds)); + return baseMapper.updateUserStatusBatch(userIds, status); } @Override @Transactional(rollbackFor = Exception.class) public String updateAvatar(MultipartFile file, Integer userId) throws IOException { - Assert.isTrue(hasModifyPermission(getById(userId)), "当前用户不允许修改!"); + Assert.isTrue(adminUserChecker.hasModifyPermission(getById(userId)), "当前用户不允许修改!"); // 获取系统用户头像的文件名 String objectName = "sysuser/" + userId + "/avatar/" + LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE) + StrUtil.SLASH + IdUtil.fastSimpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename()); @@ -265,8 +240,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl selectUsersByRoleCode(String roleCode) { - return selectUsersByRoleCodes(Collections.singletonList(roleCode)); + public List listByRoleCode(String roleCode) { + return listByRoleCodes(Collections.singletonList(roleCode)); } /** @@ -275,8 +250,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl */ @Override - public List selectUsersByRoleCodes(List roleCodes) { - return baseMapper.selectUsersByRoleCodes(roleCodes); + public List listByRoleCodes(List roleCodes) { + return baseMapper.listByRoleCodes(roleCodes); } /** @@ -285,8 +260,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl selectUsersByOrganizationIds(List organizationIds) { - return baseMapper.selectList(Wrappers.lambdaQuery().in(SysUser::getOrganizationId, organizationIds)); + public List listByOrganizationIds(List organizationIds) { + return baseMapper.listByOrganizationIds(organizationIds); } /** @@ -295,8 +270,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl selectUsersByUserTypes(List userTypes) { - return baseMapper.selectList(Wrappers.lambdaQuery().in(SysUser::getType, userTypes)); + public List listByUserTypes(List userTypes) { + return baseMapper.listByUserTypes(userTypes); } /** @@ -305,8 +280,9 @@ public class SysUserServiceImpl extends ExtendServiceImpl selectUsersByUserIds(List userIds) { - return baseMapper.selectList(Wrappers.lambdaQuery().in(SysUser::getUserId, userIds)); + public List listByUserIds(List userIds) { + return baseMapper.listByUserIds(userIds); + } /** @@ -315,8 +291,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl> getSelectData(List userTypes) { - return baseMapper.getSelectData(userTypes); + public List> listSelectData(List userTypes) { + return baseMapper.listSelectData(userTypes); } /** @@ -325,8 +301,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl */ @Override - public List getUserRoleCodes(Integer userId) { - return sysUserRoleService.getRoles(userId).stream().map(SysRole::getCode).collect(Collectors.toList()); + public List listRoleCodes(Integer userId) { + return sysUserRoleService.listRoles(userId).stream().map(SysRole::getCode).collect(Collectors.toList()); } } diff --git a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/PermissionMapper.xml b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/PermissionMapper.xml index f7fb7dbc..0c94406a 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/PermissionMapper.xml +++ b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/PermissionMapper.xml @@ -1,29 +1,8 @@ - - - - - - - - - - - - - - - - - - - - - - SELECT m.* FROM diff --git a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/RoleMapper.xml b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/RoleMapper.xml index 7c7f1af2..a93a5b45 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/RoleMapper.xml +++ b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/RoleMapper.xml @@ -2,7 +2,7 @@ - select name, code as value from diff --git a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysOrganizationMapper.xml b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysOrganizationMapper.xml index 4440b074..bcc83417 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysOrganizationMapper.xml +++ b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysOrganizationMapper.xml @@ -12,7 +12,7 @@ hierarchy like CONCAT(#{originHierarchy}, "-%") - SELECT id, name, parent_id, hierarchy, depth, description, sort, create_by, update_by, create_time, update_time FROM diff --git a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysUserMapper.xml b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysUserMapper.xml index 56291394..eab5f726 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysUserMapper.xml +++ b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysUserMapper.xml @@ -28,7 +28,7 @@ - SELECT FROM @@ -47,7 +47,7 @@ AND su.deleted = 0 - select username as name , user_id as value from diff --git a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysUserRoleMapper.xml b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysUserRoleMapper.xml index ce1df33b..dfaa0499 100644 --- a/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysUserRoleMapper.xml +++ b/ballcat-admin/ballcat-admin-core/src/main/resources/mapper/sys/SysUserRoleMapper.xml @@ -2,7 +2,7 @@ - SELECT r.id, r.name, r.code FROM diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateDirectoryEntryController.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateDirectoryEntryController.java index 236055a1..7f27488e 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateDirectoryEntryController.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateDirectoryEntryController.java @@ -1,6 +1,8 @@ package com.hccake.ballcat.codegen.controller; +import com.hccake.ballcat.codegen.model.converter.TemplateModelConverter; import com.hccake.ballcat.codegen.model.dto.TemplateDirectoryCreateDTO; +import com.hccake.ballcat.codegen.model.entity.TemplateDirectoryEntry; import com.hccake.ballcat.codegen.model.vo.TemplateDirectoryEntryVO; import com.hccake.ballcat.codegen.service.TemplateDirectoryEntryService; import com.hccake.ballcat.common.core.result.BaseResultCode; @@ -11,6 +13,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.stream.Collectors; /** * 模板文件目录项 @@ -35,7 +38,10 @@ public class TemplateDirectoryEntryController { @GetMapping("/list/{templateGroupId}") // @PreAuthorize("@per.hasPermission('codegen:templatedirectoryentry:read')" ) public R> getTemplateDirectoryEntryPage(@PathVariable Integer templateGroupId) { - return R.ok(templateDirectoryEntryService.queryDirectoryEntry(templateGroupId)); + List entries = templateDirectoryEntryService.listByTemplateGroupId(templateGroupId); + List vos = entries.stream().map(TemplateModelConverter.INSTANCE::entryPoToVo) + .collect(Collectors.toList()); + return R.ok(vos); } /** diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateGroupController.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateGroupController.java index 1325246e..ae244069 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateGroupController.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateGroupController.java @@ -1,7 +1,5 @@ package com.hccake.ballcat.codegen.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hccake.ballcat.codegen.model.entity.TemplateGroup; import com.hccake.ballcat.codegen.model.qo.TemplateGroupQO; import com.hccake.ballcat.codegen.model.vo.TemplateGroupVO; @@ -120,8 +118,8 @@ public class TemplateGroupController { // @DeleteOperationLogging(msg = "通过id删除模板组" ) @GetMapping("/select") // @PreAuthorize("@per.hasPermission('codegen:templategroup:del')" ) - public R>> getSelectData() { - return R.ok(templateGroupService.getSelectData()); + public R>> listSelectData() { + return R.ok(templateGroupService.listSelectData()); } } \ No newline at end of file diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateInfoController.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateInfoController.java index 53b43838..7a42649d 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateInfoController.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplateInfoController.java @@ -33,7 +33,7 @@ public class TemplateInfoController { @ApiOperation(value = "指定模板组的文件列表", notes = "指定模板组的文件列表") @GetMapping("/list/{templateGroupId}") public R> listTemplateInfo(@PathVariable Integer templateGroupId) { - return R.ok(templateInfoService.listTemplateInfo(templateGroupId)); + return R.ok(templateInfoService.listByTemplateGroupId(templateGroupId)); } /** diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplatePropertyController.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplatePropertyController.java index 9f9ba96d..cd65bf38 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplatePropertyController.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/controller/TemplatePropertyController.java @@ -1,7 +1,6 @@ package com.hccake.ballcat.codegen.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.hccake.ballcat.codegen.model.converter.TemplatePropertyConverter; import com.hccake.ballcat.codegen.model.entity.TemplateProperty; import com.hccake.ballcat.codegen.model.qo.TemplatePropertyQO; import com.hccake.ballcat.codegen.model.vo.TemplatePropertyVO; @@ -16,6 +15,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.stream.Collectors; /** * 模板属性配置 @@ -39,7 +39,10 @@ public class TemplatePropertyController { @ApiOperation(value = "模板组属性", notes = "模板组属性") @GetMapping("/list/{groupId}") public R> getTemplatePropertyList(@PathVariable("groupId") Integer templateGroupId) { - return R.ok(templatePropertyService.list(templateGroupId)); + List templateProperties = templatePropertyService.listByTemplateGroupId(templateGroupId); + List vos = templateProperties.stream().map(TemplatePropertyConverter.INSTANCE::poToVo) + .collect(Collectors.toList()); + return R.ok(vos); } /** diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TableInfoMapper.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TableInfoMapper.java index 8a13df44..aeb2ff76 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TableInfoMapper.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TableInfoMapper.java @@ -52,6 +52,6 @@ public interface TableInfoMapper { * @param tableName 表名 * @return List */ - List queryColumnInfo(@Param("tableName") String tableName); + List listColumnInfo(@Param("tableName") String tableName); } diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateDirectoryEntryMapper.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateDirectoryEntryMapper.java index e6fc5cc5..50f96c4d 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateDirectoryEntryMapper.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateDirectoryEntryMapper.java @@ -1,8 +1,12 @@ package com.hccake.ballcat.codegen.mapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.codegen.model.entity.TemplateDirectoryEntry; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; +import java.util.List; + /** * 模板文件目录项 * @@ -11,4 +15,49 @@ import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; */ public interface TemplateDirectoryEntryMapper extends ExtendMapper { + /** + * 根据模板组ID查询模板文件目录项集合 + * @param templateGroupId 模板组ID + * @return List + */ + default List listByTemplateGroupId(Integer templateGroupId) { + return this.selectList( + Wrappers.lambdaQuery().eq(TemplateDirectoryEntry::getGroupId, templateGroupId)); + } + + /** + * 检测是否在指定目录下存在指定名称的文件 + * @param entryId 目录项ID + * @param name 文件名称 + * @return 是否存在 + */ + default boolean existSameName(Integer entryId, String name) { + Integer count = this.selectCount(Wrappers.lambdaQuery() + .eq(TemplateDirectoryEntry::getParentId, entryId).eq(TemplateDirectoryEntry::getFileName, name)); + return count != null && count >= 0; + } + + /** + * 判断目录项是否存在 + * @param entryId 目录项ID + * @return boolean 存在:true + */ + default boolean existEntryId(Integer entryId) { + Integer count = this + .selectCount(Wrappers.lambdaQuery().eq(TemplateDirectoryEntry::getId, entryId)); + return count != null && count >= 0; + } + + /** + * 更新父级目录id + * @param oldParentId 老的父级ID + * @param newParentId 新增父级ID + */ + default void updateParentId(Integer oldParentId, Integer newParentId) { + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate() + .set(TemplateDirectoryEntry::getParentId, newParentId) + .eq(TemplateDirectoryEntry::getParentId, oldParentId); + this.update(null, wrapper); + } + } \ No newline at end of file diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateGroupMapper.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateGroupMapper.java index 82abdcce..b795df8b 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateGroupMapper.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateGroupMapper.java @@ -39,6 +39,6 @@ public interface TemplateGroupMapper extends ExtendMapper { * 获取SelectData数据 * @return List> */ - List> getSelectData(); + List> listSelectData(); } \ No newline at end of file diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateInfoMapper.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateInfoMapper.java index 9b0a1448..19f07e0b 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateInfoMapper.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplateInfoMapper.java @@ -1,8 +1,11 @@ package com.hccake.ballcat.codegen.mapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.codegen.model.entity.TemplateInfo; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; +import java.util.List; + ; /** @@ -13,4 +16,13 @@ import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; */ public interface TemplateInfoMapper extends ExtendMapper { + /** + * List template info list. + * @param templateGroupId the template group id + * @return List the list + */ + default List listByTemplateGroupId(Integer templateGroupId) { + return this.selectList(Wrappers.lambdaQuery().eq(TemplateInfo::getGroupId, templateGroupId)); + } + } \ No newline at end of file diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplatePropertyMapper.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplatePropertyMapper.java index 0c40697e..76f295ca 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplatePropertyMapper.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/mapper/TemplatePropertyMapper.java @@ -1,6 +1,7 @@ package com.hccake.ballcat.codegen.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.codegen.model.entity.TemplateProperty; import com.hccake.ballcat.codegen.model.qo.TemplatePropertyQO; import com.hccake.ballcat.codegen.model.vo.TemplatePropertyVO; @@ -10,6 +11,8 @@ import com.hccake.extend.mybatis.plus.conditions.query.LambdaQueryWrapperX; import com.hccake.extend.mybatis.plus.mapper.ExtendMapper; import com.hccake.extend.mybatis.plus.toolkit.WrappersX; +import java.util.List; + /** * 模板属性配置 * @@ -33,4 +36,15 @@ public interface TemplatePropertyMapper extends ExtendMapper { return new PageResult<>(page.getRecords(), page.getTotal()); } + /** + * 根据模板组ID获取模板组的所有配置 + * @param templateGroupId 模板组ID + * @return List 配置列表 + */ + default List listByTemplateGroupId(Integer templateGroupId) { + return this + .selectList(Wrappers.lambdaQuery().eq(TemplateProperty::getGroupId, templateGroupId)); + + } + } \ No newline at end of file diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TableInfoService.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TableInfoService.java index 1cc7f3e5..9ac18752 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TableInfoService.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TableInfoService.java @@ -36,6 +36,6 @@ public interface TableInfoService { * @param tableName 表名 * @return List */ - List queryColumnInfo(String tableName); + List listColumnInfo(String tableName); } diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateDirectoryEntryService.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateDirectoryEntryService.java index 85c611dd..b9d1e162 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateDirectoryEntryService.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateDirectoryEntryService.java @@ -3,7 +3,6 @@ package com.hccake.ballcat.codegen.service; import com.hccake.ballcat.codegen.model.bo.TemplateFile; import com.hccake.ballcat.codegen.model.dto.TemplateDirectoryCreateDTO; import com.hccake.ballcat.codegen.model.entity.TemplateDirectoryEntry; -import com.hccake.ballcat.codegen.model.vo.TemplateDirectoryEntryVO; import com.hccake.extend.mybatis.plus.service.ExtendService; import java.util.List; @@ -22,7 +21,7 @@ public interface TemplateDirectoryEntryService extends ExtendService queryDirectoryEntry(Integer templateGroupId); + List listByTemplateGroupId(Integer templateGroupId); /** * 移动目录项 @@ -76,13 +75,13 @@ public interface TemplateDirectoryEntryService extends ExtendService findTemplateFiles(Integer groupId, Set templateFileIds); + List listTemplateFiles(Integer groupId, Set templateFileIds); /** * 复制模板目录项文件 - * @param resourceId 原模板组 - * @param groupId 模板模板组 + * @param resourceGroupId 原模板组 + * @param targetGroupId 模板模板组 */ - void copy(Integer resourceId, Integer groupId); + void copy(Integer resourceGroupId, Integer targetGroupId); } \ No newline at end of file diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateGroupService.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateGroupService.java index a0e0c9b5..bb178a99 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateGroupService.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateGroupService.java @@ -1,6 +1,5 @@ package com.hccake.ballcat.codegen.service; -import com.hccake.ballcat.codegen.model.bo.TemplateFile; import com.hccake.ballcat.codegen.model.entity.TemplateGroup; import com.hccake.ballcat.codegen.model.qo.TemplateGroupQO; import com.hccake.ballcat.codegen.model.vo.TemplateGroupVO; @@ -10,7 +9,6 @@ import com.hccake.ballcat.common.core.domain.SelectData; import com.hccake.extend.mybatis.plus.service.ExtendService; import java.util.List; -import java.util.Set; /** * 模板组 @@ -28,19 +26,11 @@ public interface TemplateGroupService extends ExtendService { */ PageResult queryPage(PageParam pageParam, TemplateGroupQO qo); - /** - * 查找指定模板组下所有的模板文件 - * @param groupId 模板组ID - * @param templateFileIds 模板文件ID集合 - * @return List - */ - List findTemplateFiles(Integer groupId, Set templateFileIds); - /** * 获取SelectData数据 * @return List> */ - List> getSelectData(); + List> listSelectData(); /** * 复制模板组 diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateInfoService.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateInfoService.java index 83aba34a..6260c156 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateInfoService.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplateInfoService.java @@ -18,6 +18,6 @@ public interface TemplateInfoService extends ExtendService { * @param templateGroupId the template group id * @return the list */ - List listTemplateInfo(Integer templateGroupId); + List listByTemplateGroupId(Integer templateGroupId); } diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplatePropertyService.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplatePropertyService.java index 7b1e9f5d..0eca3db8 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplatePropertyService.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/TemplatePropertyService.java @@ -30,7 +30,7 @@ public interface TemplatePropertyService extends ExtendService * @param templateGroupId 模板组ID * @return List 配置列表 */ - List list(Integer templateGroupId); + List listByTemplateGroupId(Integer templateGroupId); /** * 复制模板属性配置 diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/GeneratorServiceImpl.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/GeneratorServiceImpl.java index f22a3643..21889045 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/GeneratorServiceImpl.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/GeneratorServiceImpl.java @@ -7,7 +7,7 @@ import com.hccake.ballcat.codegen.model.vo.ColumnInfo; import com.hccake.ballcat.codegen.model.vo.TableInfo; import com.hccake.ballcat.codegen.service.GeneratorService; import com.hccake.ballcat.codegen.service.TableInfoService; -import com.hccake.ballcat.codegen.service.TemplateGroupService; +import com.hccake.ballcat.codegen.service.TemplateDirectoryEntryService; import com.hccake.ballcat.codegen.util.GenUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -28,7 +28,7 @@ public class GeneratorServiceImpl implements GeneratorService { private final TableInfoService tableInfoService; - private final TemplateGroupService templateGroupService; + private final TemplateDirectoryEntryService templateDirectoryEntryService; /** * 生成代码 @@ -41,7 +41,7 @@ public class GeneratorServiceImpl implements GeneratorService { ZipOutputStream zip = new ZipOutputStream(outputStream)) { // 根据tableName 查询最新的表单配置 - List templateFiles = templateGroupService.findTemplateFiles( + List templateFiles = templateDirectoryEntryService.listTemplateFiles( generatorOptionDTO.getTemplateGroupId(), generatorOptionDTO.getTemplateFileIds()); Assert.notEmpty(templateFiles, "模板组中模板文件为空!"); @@ -49,7 +49,7 @@ public class GeneratorServiceImpl implements GeneratorService { // 查询表信息 TableInfo tableInfo = tableInfoService.queryTableInfo(tableName); // 查询列信息 - List columnInfoList = tableInfoService.queryColumnInfo(tableName); + List columnInfoList = tableInfoService.listColumnInfo(tableName); // 生成代码 GenUtils.generatorCode(generatorOptionDTO.getTablePrefix(), generatorOptionDTO.getGenProperties(), tableInfo, columnInfoList, zip, templateFiles); diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TableInfoServiceImpl.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TableInfoServiceImpl.java index abc73ba8..11aa4550 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TableInfoServiceImpl.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TableInfoServiceImpl.java @@ -53,8 +53,8 @@ public class TableInfoServiceImpl implements TableInfoService { * @return List */ @Override - public List queryColumnInfo(String tableName) { - return baseMapper.queryColumnInfo(tableName); + public List listColumnInfo(String tableName) { + return baseMapper.listColumnInfo(tableName); } } diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplateDirectoryEntryServiceImpl.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplateDirectoryEntryServiceImpl.java index f61b7475..c1b22eb9 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplateDirectoryEntryServiceImpl.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplateDirectoryEntryServiceImpl.java @@ -2,8 +2,6 @@ package com.hccake.ballcat.codegen.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.codegen.constant.DirectoryEntryRemoveModeEnum; import com.hccake.ballcat.codegen.constant.DirectoryEntryTypeEnum; @@ -15,7 +13,6 @@ import com.hccake.ballcat.codegen.model.dto.TemplateInfoDTO; import com.hccake.ballcat.codegen.model.entity.TemplateDirectoryEntry; import com.hccake.ballcat.codegen.model.entity.TemplateInfo; import com.hccake.ballcat.codegen.model.vo.TemplateDirectory; -import com.hccake.ballcat.codegen.model.vo.TemplateDirectoryEntryVO; import com.hccake.ballcat.codegen.service.TemplateDirectoryEntryService; import com.hccake.ballcat.codegen.service.TemplateInfoService; import com.hccake.ballcat.common.core.constant.GlobalConstants; @@ -29,7 +26,6 @@ import org.springframework.transaction.annotation.Transactional; import java.io.File; import java.util.*; -import java.util.stream.Collectors; /** * 模板文件目录项 @@ -51,12 +47,8 @@ public class TemplateDirectoryEntryServiceImpl * @return 所有的目录项 */ @Override - public List queryDirectoryEntry(Integer templateGroupId) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery() - .eq(TemplateDirectoryEntry::getGroupId, templateGroupId); - List templateDirectoryEntries = baseMapper.selectList(wrapper); - return templateDirectoryEntries.stream().map(TemplateModelConverter.INSTANCE::entryPoToVo) - .collect(Collectors.toList()); + public List listByTemplateGroupId(Integer templateGroupId) { + return baseMapper.listByTemplateGroupId(templateGroupId); } /** @@ -101,10 +93,8 @@ public class TemplateDirectoryEntryServiceImpl */ @Override public void duplicateNameCheck(Integer entryId, String name) { - Integer count = baseMapper.selectCount(Wrappers.lambdaQuery() - .eq(TemplateDirectoryEntry::getParentId, entryId).eq(TemplateDirectoryEntry::getFileName, name)); - boolean notExist = count == null || count == 0; - Assert.isTrue(notExist, "The entry with the same name already exists"); + boolean existed = baseMapper.existSameName(entryId, name); + Assert.isFalse(existed, "The entry with the same name already exists"); } /** @@ -114,9 +104,7 @@ public class TemplateDirectoryEntryServiceImpl */ @Override public boolean exists(Integer entryId) { - Integer count = baseMapper - .selectCount(Wrappers.lambdaQuery().eq(TemplateDirectoryEntry::getId, entryId)); - return count != null && count != 0; + return baseMapper.existEntryId(entryId); } /** @@ -155,15 +143,12 @@ public class TemplateDirectoryEntryServiceImpl if (DirectoryEntryTypeEnum.FOLDER.getType().equals(entry.getType())) { if (DirectoryEntryRemoveModeEnum.RESERVED_CHILD_NODE.getType().equals(mode)) { // 子节点上移 - baseMapper.update(null, - Wrappers.lambdaUpdate() - .set(TemplateDirectoryEntry::getParentId, entry.getParentId()) - .eq(TemplateDirectoryEntry::getParentId, entryId)); + baseMapper.updateParentId(entryId, entry.getParentId()); } else if (DirectoryEntryRemoveModeEnum.REMOVE_CHILD_NODE.getType().equals(mode)) { // ==========删除所有子节点============= // 1. 获取所有目录项(目录项不会太多,一次查询比较方便) - List entryList = baseMapper.selectList(Wrappers.emptyWrapper()); + List entryList = baseMapper.selectList(null); // 2. 获取当前删除目录项的孩子节点列表 List treeList = TreeUtil.buildTree(entryList, entryId, TemplateModelConverter.INSTANCE::entryPoToTree); @@ -190,15 +175,14 @@ public class TemplateDirectoryEntryServiceImpl /** * 复制模板目录项文件 - * @param resourceId 原模板组 - * @param groupId 模板模板组 + * @param resourceGroupId 原模板组 + * @param targetGroupId 模板模板组 */ @Override @Transactional(rollbackFor = Exception.class) - public void copy(Integer resourceId, Integer groupId) { + public void copy(Integer resourceGroupId, Integer targetGroupId) { // 1. ===============获取模板目录项================== - List list = baseMapper.selectList( - Wrappers.lambdaQuery().eq(TemplateDirectoryEntry::getGroupId, resourceId)); + List list = baseMapper.listByTemplateGroupId(resourceGroupId); // 2. ============== 复制模板文件 =================== Set oldParentIdSet = new HashSet<>(); @@ -207,7 +191,7 @@ public class TemplateDirectoryEntryServiceImpl originEntryIds.add(entry.getId()); oldParentIdSet.add(entry.getParentId()); - entry.setGroupId(groupId); + entry.setGroupId(targetGroupId); entry.setId(null); entry.setCreateTime(null); entry.setUpdateTime(null); @@ -224,26 +208,21 @@ public class TemplateDirectoryEntryServiceImpl // 父节点为根节点的不需要修改 oldParentIdSet.remove(GlobalConstants.TREE_ROOT_ID); for (Integer oldParentId : oldParentIdSet) { - baseMapper.update(null, - Wrappers.lambdaUpdate() - .set(TemplateDirectoryEntry::getParentId, idMap.get(oldParentId)) - .eq(TemplateDirectoryEntry::getParentId, oldParentId) - .eq(TemplateDirectoryEntry::getGroupId, groupId)); + baseMapper.updateParentId(oldParentId, idMap.get(oldParentId)); } // 5. ================保存模板文件详情信息=================== - List templateInfoList = templateInfoService - .list(Wrappers.lambdaQuery().eq(TemplateInfo::getGroupId, resourceId)); + List templateInfoList = templateInfoService.listByTemplateGroupId(resourceGroupId); for (TemplateInfo templateInfo : templateInfoList) { Integer oldId = templateInfo.getDirectoryEntryId(); Integer newId = idMap.get(oldId); templateInfo.setDirectoryEntryId(newId); - templateInfo.setGroupId(groupId); + templateInfo.setGroupId(targetGroupId); templateInfo.setCreateTime(null); templateInfo.setUpdateTime(null); } - templateInfoService.saveBatch(templateInfoList); + templateInfoService.saveBatchSomeColumn(templateInfoList); } @@ -254,10 +233,9 @@ public class TemplateDirectoryEntryServiceImpl * @return List 模板文件 */ @Override - public List findTemplateFiles(Integer groupId, Set templateFileIds) { + public List listTemplateFiles(Integer groupId, Set templateFileIds) { // 获取模板目录项 - List list = baseMapper.selectList( - Wrappers.lambdaQuery().eq(TemplateDirectoryEntry::getGroupId, groupId)); + List list = baseMapper.listByTemplateGroupId(groupId); // 当没有指定时,不生成该文件 if (CollectionUtil.isNotEmpty(templateFileIds)) { list.removeIf(entry -> DirectoryEntryTypeEnum.FILE.getType().equals(entry.getType()) diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplateGroupServiceImpl.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplateGroupServiceImpl.java index 879dc0af..bd27cd71 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplateGroupServiceImpl.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplateGroupServiceImpl.java @@ -3,7 +3,6 @@ package com.hccake.ballcat.codegen.service.impl; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hccake.ballcat.codegen.mapper.TemplateGroupMapper; -import com.hccake.ballcat.codegen.model.bo.TemplateFile; import com.hccake.ballcat.codegen.model.entity.TemplateGroup; import com.hccake.ballcat.codegen.model.qo.TemplateGroupQO; import com.hccake.ballcat.codegen.model.vo.TemplateGroupVO; @@ -19,7 +18,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; -import java.util.Set; /** * 模板组 @@ -47,35 +45,24 @@ public class TemplateGroupServiceImpl extends ExtendServiceImpl - */ - @Override - public List findTemplateFiles(Integer groupId, Set templateFileIds) { - return templateDirectoryEntryService.findTemplateFiles(groupId, templateFileIds); - } - /** * 获取SelectData数据 * @return List> */ @Override - public List> getSelectData() { - return baseMapper.getSelectData(); + public List> listSelectData() { + return baseMapper.listSelectData(); } /** * 复制模板组 - * @param resourceId 原资源组id + * @param resourceGroupId 原资源组id * @param templateGroup 模板组 * @return boolean 复制成功: true */ @Override @Transactional(rollbackFor = Exception.class) - public boolean copy(Integer resourceId, TemplateGroup templateGroup) { + public boolean copy(Integer resourceGroupId, TemplateGroup templateGroup) { // 清空id templateGroup.setId(null); int insertFlag = baseMapper.insert(templateGroup); @@ -83,9 +70,9 @@ public class TemplateGroupServiceImpl extends ExtendServiceImpl listTemplateInfo(Integer templateGroupId) { - return baseMapper - .selectList(Wrappers.lambdaQuery().eq(TemplateInfo::getGroupId, templateGroupId)); + public List listByTemplateGroupId(Integer templateGroupId) { + return baseMapper.listByTemplateGroupId(templateGroupId); } } diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplatePropertyServiceImpl.java b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplatePropertyServiceImpl.java index e0677b65..3012cfe4 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplatePropertyServiceImpl.java +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/java/com/hccake/ballcat/codegen/service/impl/TemplatePropertyServiceImpl.java @@ -1,9 +1,7 @@ package com.hccake.ballcat.codegen.service.impl; import cn.hutool.core.collection.CollectionUtil; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hccake.ballcat.codegen.mapper.TemplatePropertyMapper; -import com.hccake.ballcat.codegen.model.converter.TemplatePropertyConverter; import com.hccake.ballcat.codegen.model.entity.TemplateProperty; import com.hccake.ballcat.codegen.model.qo.TemplatePropertyQO; import com.hccake.ballcat.codegen.model.vo.TemplatePropertyVO; @@ -38,36 +36,31 @@ public class TemplatePropertyServiceImpl extends ExtendServiceImpl 配置列表 + * @return List 配置列表 */ @Override - public List list(Integer templateGroupId) { - List templateProperties = baseMapper - .selectList(Wrappers.lambdaQuery().eq(TemplateProperty::getGroupId, templateGroupId)); - return templateProperties.stream().map(TemplatePropertyConverter.INSTANCE::poToVo).collect(Collectors.toList()); + public List listByTemplateGroupId(Integer templateGroupId) { + return baseMapper.listByTemplateGroupId(templateGroupId); } /** * 复制模板属性配置 - * @param resourceId 原模板组ID - * @param groupId 模板模板组ID + * @param resourceGroupId 原模板组ID + * @param targetGroupId 模板模板组ID */ @Override - public void copy(Integer resourceId, Integer groupId) { - - List templateProperties = baseMapper - .selectList(Wrappers.lambdaQuery().eq(TemplateProperty::getGroupId, resourceId)); - + public void copy(Integer resourceGroupId, Integer targetGroupId) { + List templateProperties = baseMapper.listByTemplateGroupId(resourceGroupId); if (CollectionUtil.isNotEmpty(templateProperties)) { List list = templateProperties.stream().peek(x -> { x.setId(null); x.setCreateTime(null); x.setUpdateTime(null); - x.setGroupId(groupId); + x.setGroupId(targetGroupId); }).collect(Collectors.toList()); - this.saveBatch(list); + baseMapper.insertBatchSomeColumn(list); } } diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/resources/mapper/TableInfoMapper.xml b/ballcat-codegen/ballcat-codegen-backend/src/main/resources/mapper/TableInfoMapper.xml index 0fd02b08..dbb6dea4 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/resources/mapper/TableInfoMapper.xml +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/resources/mapper/TableInfoMapper.xml @@ -33,7 +33,7 @@ - SELECT column_name, data_type, diff --git a/ballcat-codegen/ballcat-codegen-backend/src/main/resources/mapper/TemplateGroupMapper.xml b/ballcat-codegen/ballcat-codegen-backend/src/main/resources/mapper/TemplateGroupMapper.xml index 0cd46e82..7ca3c187 100644 --- a/ballcat-codegen/ballcat-codegen-backend/src/main/resources/mapper/TemplateGroupMapper.xml +++ b/ballcat-codegen/ballcat-codegen-backend/src/main/resources/mapper/TemplateGroupMapper.xml @@ -2,7 +2,7 @@ - select name, id as value from