🎨 所有条件构造下沉进 DAO 层 & 修改service层查询方法返回值为集合时,方法名使用list开头

This commit is contained in:
b2baccline
2021-01-19 23:00:58 +08:00
parent 828e15bcda
commit 25165b874e
76 changed files with 783 additions and 409 deletions

View File

@@ -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<LovInfoVO> 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);
}
/**

View File

@@ -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<LovBody> {
/**
* 根据 lov keyword 查询对应 body
* @param keyword lov标识
* @return List<LovBody>
*/
default List<LovBody> listByKeyword(String keyword) {
return this.selectList(Wrappers.<LovBody>lambdaQuery().eq(LovBody::getKeyword, keyword));
}
/**
* 根据 lov keyword 删除对应 body
* @param keyword lov标识
* @return 是否删除成功
*/
default boolean deleteByKeyword(String keyword) {
int i = this.delete(Wrappers.<LovBody>lambdaQuery().eq(LovBody::getKeyword, keyword));
return SqlHelper.retBool(i);
}
}

View File

@@ -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<Lov> {
return new PageResult<>(page.getRecords(), page.getTotal());
}
/**
* 根据 keyword 查询对应的 lov
* @param keyword lov 标识
* @return Lov 实体
*/
default Lov selectByKeyword(String keyword) {
return this.selectOne(Wrappers.<Lov>lambdaQuery().eq(Lov::getKeyword, keyword));
}
}

View File

@@ -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<LovSearch> {
/**
* 根据 lov keyword 查询对应 search
* @param keyword lov标识
* @return List<LovSearch>
*/
default List<LovSearch> listByKeyword(String keyword) {
return this.selectList(Wrappers.<LovSearch>lambdaQuery().eq(LovSearch::getKeyword, keyword));
}
/**
* 根据 lov keyword 删除对应 search
* @param keyword lov标识
* @return 是否删除成功
*/
default boolean deleteByKeyword(String keyword) {
int i = this.delete(Wrappers.<LovSearch>lambdaQuery().eq(LovSearch::getKeyword, keyword));
return SqlHelper.retBool(i);
}
}

View File

@@ -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);
}

View File

@@ -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<LovBody> {
/**
* 根据 lov keyword 查询对应 body
* @param keyword lov标识
* @return List<LovBody>
*/
List<LovBody> listByKeyword(String keyword);
/**
* 根据 lov keyword 删除对应 body
* @param keyword lov标识
* @return 是否删除成功
*/
boolean removeByKeyword(String keyword);
}

View File

@@ -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<LovSearch> {
/**
* 根据 lov keyword 查询对应 search
* @param keyword lov标识
* @return List<LovSearch>
*/
List<LovSearch> listByKeyword(String keyword);
/**
* 根据 lov keyword 删除对应 search
* @param keyword lov标识
* @return 是否删除成功
*/
boolean removeByKeyword(String keyword);
}

View File

@@ -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<Lov> {
/**
* 根据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);
}

View File

@@ -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<LovBodyMapper, LovBody> implements LovBodyService {
/**
* 根据 lov keyword 查询对应 body
* @param keyword lov标识
* @return List<LovBody>
*/
@Override
public List<LovBody> listByKeyword(String keyword) {
return baseMapper.listByKeyword(keyword);
}
/**
* 根据 lov keyword 删除对应 body
* @param keyword lov标识
* @return 是否删除成功
*/
@Override
public boolean removeByKeyword(String keyword) {
return baseMapper.deleteByKeyword(keyword);
}
}

View File

@@ -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<LovSearchMapper, LovSearch> implements LovSearchService {
/**
* 根据 lov keyword 查询对应 search
* @param keyword lov标识
* @return List<LovSearch>
*/
@Override
public List<LovSearch> listByKeyword(String keyword) {
return baseMapper.listByKeyword(keyword);
}
/**
* 根据 lov keyword 删除对应 search
* @param keyword lov标识
* @return 是否删除成功
*/
@Override
public boolean removeByKeyword(String keyword) {
return baseMapper.deleteByKeyword(keyword);
}
}

View File

@@ -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<LovMapper, Lov> implements
@Override
@Transactional(rollbackFor = Exception.class)
public boolean update(Lov lov, List<LovBody> bodyList, List<LovSearch> searchList) {
if (updateById(lov)) {
List<Long> removeIds = new ArrayList<>();
// 获取现有lov body
List<LovBody> lovBodyList = bodyService
.list(Wrappers.<LovBody>lambdaQuery().eq(LovBody::getKeyword, lov.getKeyword()));
// 获取现有的id
Set<Long> 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<LovSearch> lovSearchList = searchService
.list(Wrappers.<LovSearch>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<Long> removeIds = new ArrayList<>();
// 获取现有lov body
String keyword = lov.getKeyword();
List<LovBody> lovBodyList = bodyService.listByKeyword(keyword);
// 获取现有的id
Set<Long> 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<LovSearch> 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<LovMapper, Lov> implements
if (!removeById(id)) {
throw new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "移除lov失败!");
}
if (!bodyService.remove(Wrappers.<LovBody>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.<LovSearch>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<LovMapper, Lov> implements
@Override
@Transactional(rollbackFor = Exception.class)
public boolean save(Lov lov, List<LovBody> bodyList, List<LovSearch> 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.<Lov>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.<LovBody>lambdaQuery().eq(LovBody::getKeyword, lov.getKeyword())));
vo.setSearchList(
searchService.list(Wrappers.<LovSearch>lambdaQuery().eq(LovSearch::getKeyword, lov.getKeyword())));
return vo;
}
return null;
public Lov getByKeyword(String keyword) {
return baseMapper.selectByKeyword(keyword);
}
}

View File

@@ -37,7 +37,7 @@ public class SpecifyOrganizationRecipientFilter implements RecipientFilter {
@Override
public List<SysUser> filter(List<Object> filterCondition) {
List<Integer> organizationIds = filterCondition.stream().map(x -> (Integer) x).collect(Collectors.toList());
return sysUserService.selectUsersByOrganizationIds(organizationIds);
return sysUserService.listByOrganizationIds(organizationIds);
}
/**

View File

@@ -38,7 +38,7 @@ public class SpecifyRoleRecipientFilter implements RecipientFilter {
@Override
public List<SysUser> filter(List<Object> filterCondition) {
List<String> 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());
}
/**

View File

@@ -37,7 +37,7 @@ public class SpecifyUserRecipientFilter implements RecipientFilter {
@Override
public List<SysUser> filter(List<Object> filterCondition) {
List<Integer> userIds = filterCondition.stream().map(x -> (Integer) x).collect(Collectors.toList());
return sysUserService.selectUsersByUserIds(userIds);
return sysUserService.listByUserIds(userIds);
}
/**

View File

@@ -37,7 +37,7 @@ public class SpecifyUserTypeRecipientFilter implements RecipientFilter {
@Override
public List<SysUser> filter(List<Object> filterCondition) {
List<Integer> userTypes = filterCondition.stream().map(x -> (Integer) x).collect(Collectors.toList());
return sysUserService.selectUsersByUserTypes(userTypes);
return sysUserService.listByUserTypes(userTypes);
}
/**

View File

@@ -17,4 +17,11 @@ public interface AdminUserChecker {
*/
boolean isAdminUser(SysUser user);
/**
* 修改权限校验
* @param targetUser 目标用户
* @return 是否有权限修改目标用户
*/
boolean hasModifyPermission(SysUser targetUser);
}

View File

@@ -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;
}
}

View File

@@ -37,7 +37,7 @@ public class SysOrganizationController {
@GetMapping("/tree")
@PreAuthorize("@per.hasPermission('sys:organization:read')")
public R<List<SysOrganizationTree>> getOrganizationTree() {
return R.ok(sysOrganizationService.tree());
return R.ok(sysOrganizationService.listTree());
}
/**

View File

@@ -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<PermissionVO> all = new HashSet<>();
roleCodes.forEach(roleCode -> all.addAll(sysPermissionService.findPermissionVOsByRoleCode(roleCode)));
roleCodes.forEach(roleCode -> all.addAll(sysPermissionService.listVOByRoleCode(roleCode)));
// 筛选出菜单
List<Router> routerList = all.stream()
@@ -73,9 +72,7 @@ public class SysPermissionController {
@GetMapping(value = "/list")
@PreAuthorize("@per.hasPermission('sys:syspermission:read')")
public R<List<SysPermission>> getTree() {
List<SysPermission> list = sysPermissionService
.list(Wrappers.<SysPermission>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<Boolean> 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<Boolean> removeById(@PathVariable Integer id) {
return R.ok(sysPermissionService.removePermissionById(id));
return R.ok(sysPermissionService.removeById(id));
}
}

View File

@@ -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<List<SysRole>> 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<List<Integer>> 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<List<SelectData<?>>> getSelectData() {
return R.ok(sysRoleService.getSelectData());
public R<List<SelectData<?>>> listSelectData() {
return R.ok(sysRoleService.listSelectData());
}
}

View File

@@ -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<List<SelectData<?>>> getSelectData(
public R<List<SelectData<?>>> listSelectData(
@RequestParam(value = "userTypes", required = false) List<Integer> 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<SysUserScope> getUserRoleIds(@PathVariable Integer userId) {
List<SysRole> roleList = sysUserRoleService.getRoles(userId);
List<SysRole> roleList = sysUserRoleService.listRoles(userId);
List<String> 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, "批量修改用户状态!");
}

View File

@@ -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.<SysDictItem>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<DictDataVO> queryDictDataAndHashVO(String[] dictCodes) {
List<DictDataVO> list = new ArrayList<>();
// 查询对应hash值以及字典项数据
List<SysDict> sysDictList = sysDictService.getByCode(dictCodes);
List<SysDict> sysDictList = sysDictService.listByCodes(dictCodes);
if (CollectionUtil.isNotEmpty(sysDictList)) {
for (SysDict sysDict : sysDictList) {
List<SysDictItem> dictItems = sysDictItemService.getByDictCode(sysDict.getCode());
List<SysDictItem> dictItems = sysDictItemService.listByDictCode(sysDict.getCode());
// 排序并转换为VO
List<DictItemVO> setDictItems = dictItems.stream().sorted(Comparator.comparingInt(SysDictItem::getSort))
.map(SysDictConverter.INSTANCE::itemPoToVo).collect(Collectors.toList());
@@ -218,7 +217,7 @@ public class SysDictManager {
* @return List<String> 失效的字典标识集合
*/
public List<String> invalidDictHash(Map<String, String> dictHashCode) {
List<SysDict> byCode = sysDictService.getByCode(dictHashCode.keySet().toArray(new String[] {}));
List<SysDict> 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());

View File

@@ -29,4 +29,13 @@ public interface SysConfigMapper extends ExtendMapper<SysConfig> {
return new PageResult<>(page.getRecords(), page.getTotal());
}
/**
* 根据配置key查询配置信息
* @param confKey 配置key
* @return SysConfig 配置信息
*/
default SysConfig selectByKey(String confKey) {
return this.selectOne(Wrappers.<SysConfig>lambdaQuery().eq(SysConfig::getConfKey, confKey));
}
}

View File

@@ -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<SysDictItem> {
return new PageResult<>(page.getRecords(), page.getTotal());
}
/**
* 根据字典标识查询对应字典项集合
* @param dictCode 字典标识
* @return List<SysDictItem> 字典项集合
*/
default List<SysDictItem> listByDictCode(String dictCode) {
return this.selectList(Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getDictCode, dictCode));
}
/**
* 根据字典标识删除对应字典项
* @param dictCode 字典标识
* @return 是否删除成功
*/
default boolean deleteByDictCode(String dictCode) {
int i = this.delete(Wrappers.<SysDictItem>lambdaUpdate().eq(SysDictItem::getDictCode, dictCode));
return SqlHelper.retBool(i);
}
}

View File

@@ -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<SysDict> {
return new PageResult<>(page.getRecords(), page.getTotal());
}
/**
* 根据字典标识查询对应字典
* @param dictCode 字典标识
* @return SysDict 字典
*/
default SysDict getByCode(String dictCode) {
return this.selectOne(Wrappers.<SysDict>lambdaQuery().eq(SysDict::getCode, dictCode));
}
/**
* 根据字典标识数组查询对应字典集合
* @param dictCodes 字典标识数组
* @return List<SysDict> 字典集合
*/
default List<SysDict> listByCodes(String[] dictCodes) {
return this.selectList(Wrappers.<SysDict>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.<SysDict>lambdaUpdate().set(SysDict::getHashCode, hashCode).eq(SysDict::getCode, dictCode));
return SqlHelper.retBool(flag);
}
}

View File

@@ -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<SysOrganization> {
/**
* 根据组织ID 查询除该组织下的所有儿子组织
* @param organizationId 组织机构ID
* @return List<SysOrganization> 该组织的儿子组织
*/
default List<SysOrganization> listSubOrganization(Integer organizationId) {
return this
.selectList(Wrappers.<SysOrganization>lambdaQuery().eq(SysOrganization::getParentId, organizationId));
}
/**
* 跟随父节点移动子节点
* @param originHierarchy 原始父级层级
@@ -27,6 +38,6 @@ public interface SysOrganizationMapper extends ExtendMapper<SysOrganization> {
* @param organizationId 组织机构ID
* @return 子部门集合
*/
List<SysOrganization> selectChildOrganization(@Param("organizationId") Integer organizationId);
List<SysOrganization> listChildOrganization(@Param("organizationId") Integer organizationId);
}

View File

@@ -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<SysPermission> {
/**
* 查询指定权限的下级权限总数
* @param id 权限ID
* @return 下级权限总数
*/
default Integer countSubPermission(Serializable id) {
return this.selectCount(Wrappers.<SysPermission>query().lambda().eq(SysPermission::getParentId, id));
}
/**
* 查询权限集合并按sort排序升序
* @return List<SysPermission>
*/
default List<SysPermission> listOrderBySort() {
return this.selectList(Wrappers.<SysPermission>lambdaQuery().orderByAsc(SysPermission::getSort));
}
/**
* 通过角色ID查询权限
* @param roleCode 角色ID
* @return 指定角色拥有的权限列表
*/
List<PermissionVO> listPermissionVOsByRoleCode(String roleCode);
List<PermissionVO> listVOByRoleCode(String roleCode);
}

View File

@@ -45,6 +45,6 @@ public interface SysRoleMapper extends ExtendMapper<SysRole> {
* 获取角色下拉框数据
* @return 下拉选择框数据集合
*/
List<SelectData<?>> getSelectData();
List<SelectData<?>> listSelectData();
}

View File

@@ -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;
/**
* <p>
* 角色菜单表 Mapper 接口
@@ -13,4 +16,20 @@ import com.hccake.extend.mybatis.plus.mapper.ExtendMapper;
*/
public interface SysRolePermissionMapper extends ExtendMapper<SysRolePermission> {
/**
* 根据权限ID删除角色权限关联关系
* @param permissionId 权限ID
*/
default void deleteByPermissionId(Serializable permissionId) {
this.delete(Wrappers.<SysRolePermission>query().lambda().eq(SysRolePermission::getPermissionId, permissionId));
}
/**
* 根据角色标识删除角色权限关联关系
* @param roleCode 角色标识
*/
default void deleteByRoleCode(String roleCode) {
this.delete(Wrappers.<SysRolePermission>query().lambda().eq(SysRolePermission::getRoleCode, roleCode));
}
}

View File

@@ -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<SysUser> {
return new PageResult<>(page.getRecords(), page.getTotal());
}
/**
* 批量更新用户状态
* @param userIds 用户ID集合
* @param status 状态
* @return 是否更新成功
*/
default boolean updateUserStatusBatch(List<Integer> 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.<SysUser>lambdaQuery().eq(SysUser::getUsername, username));
}
/**
* 更新指定用户的密码
* @param userId 用户
* @param password 密码
* @return 更新条数
*/
default boolean updateUserPassword(Integer userId, String password) {
int i = this.update(null,
Wrappers.<SysUser>lambdaUpdate().eq(SysUser::getUserId, userId).set(SysUser::getPassword, password));
return SqlHelper.retBool(i);
}
/**
* 根据组织机构ID查询用户
* @param organizationIds 组织机构id集合
* @return 用户集合
*/
default List<SysUser> listByOrganizationIds(List<Integer> organizationIds) {
return this.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getOrganizationId, organizationIds));
}
/**
* 根据用户类型查询用户
* @param userTypes 用户类型集合
* @return 用户集合
*/
default List<SysUser> listByUserTypes(List<Integer> userTypes) {
return this.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getType, userTypes));
}
/**
* 根据用户Id集合查询用户
* @param userIds 用户Id集合
* @return 用户集合
*/
default List<SysUser> listByUserIds(List<Integer> userIds) {
return this.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, userIds));
}
/**
* 根据RoleCode 查询对应用户
* @param roleCodes 角色标识
* @return List<SysUser> 该角色标识对应的用户列表
*/
List<SysUser> selectUsersByRoleCodes(@Param("roleCodes") List<String> roleCodes);
List<SysUser> listByRoleCodes(@Param("roleCodes") List<String> roleCodes);
/**
* 返回用户的select数据 name=> username value => userId
* @param userTypes 用户类型
* @return List<SelectData>
*/
List<SelectData<?>> getSelectData(@Param("userTypes") List<Integer> userTypes);
List<SelectData<?>> listSelectData(@Param("userTypes") List<Integer> userTypes);
}

View File

@@ -22,7 +22,7 @@ public interface SysUserRoleMapper extends ExtendMapper<SysUserRole> {
* @param userId 用户ID
* @return 用户拥有的角色集合
*/
List<SysRole> getRoles(Integer userId);
List<SysRole> listRoles(Integer userId);
/**
* 删除用户关联关系

View File

@@ -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;

View File

@@ -29,6 +29,13 @@ public interface SysDictItemService extends ExtendService<SysDictItem> {
* @param dictCode 字典标识
* @return 该字典对应的字典项集合
*/
List<SysDictItem> getByDictCode(String dictCode);
List<SysDictItem> listByDictCode(String dictCode);
/**
* 根据字典标识删除对应字典项
* @param dictCode 字典标识
* @return 是否删除成功
*/
boolean removeByDictCode(String dictCode);
}

View File

@@ -33,11 +33,11 @@ public interface SysDictService extends ExtendService<SysDict> {
SysDict getByCode(String dictCode);
/**
* 根据字典标识查询
* @param dictCode 字典标识
* @return 字典数据
* 根据字典标识数组查询对应字典集合
* @param dictCodes 字典标识数组
* @return List<SysDict> 字典集合
*/
List<SysDict> getByCode(String[] dictCode);
List<SysDict> listByCodes(String[] dictCodes);
/**
* 更新字典HashCode

View File

@@ -18,7 +18,7 @@ public interface SysOrganizationService extends ExtendService<SysOrganization> {
* 返回组织架构的树形结构
* @return OrganizationTree
*/
List<SysOrganizationTree> tree();
List<SysOrganizationTree> listTree();
/**
* 创建一个新的组织机构
@@ -39,13 +39,13 @@ public interface SysOrganizationService extends ExtendService<SysOrganization> {
* @param organizationId 组织机构ID
* @return List<SysOrganization> 该组织的儿子组织
*/
List<SysOrganization> selectSubOrganization(Integer organizationId);
List<SysOrganization> listSubOrganization(Integer organizationId);
/**
* 根据组织ID 查询除该组织下的所有孩子(子孙)组织
* @param organizationId 组织机构ID
* @return List<SysOrganization> 该组织的孩子组织
*/
List<SysOrganization> selectChildOrganization(Integer organizationId);
List<SysOrganization> listChildOrganization(Integer organizationId);
}

View File

@@ -21,20 +21,12 @@ public interface SysPermissionService extends ExtendService<SysPermission> {
* @param roleCode 角色Code
* @return 菜单列表
*/
List<PermissionVO> findPermissionVOsByRoleCode(String roleCode);
List<PermissionVO> listVOByRoleCode(String roleCode);
/**
* 级联删除菜单
* @param id 菜单ID
* @return 成功、失败
* 查询权限集合并按sort排序升序
* @return List<SysPermission>
*/
boolean removePermissionById(Integer id);
/**
* 更新菜单信息
* @param sysPermission 菜单信息
* @return 成功、失败
*/
Boolean updatePermissionById(SysPermission sysPermission);
List<SysPermission> listOrderBySort();
}

View File

@@ -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;
/**
* <p>
* 角色菜单表 服务类
@@ -21,4 +23,16 @@ public interface SysRolePermissionService extends ExtendService<SysRolePermissio
*/
Boolean saveRolePermissions(String roleCode, Integer[] permissionIds);
/**
* 根据权限ID删除角色权限关联数据
* @param permissionId 权限ID
*/
void deleteByPermissionId(Serializable permissionId);
/**
* 根据角色标识删除角色权限关联关系
* @param roleCode 角色标识
*/
void deleteByRoleCode(String roleCode);
}

View File

@@ -28,17 +28,10 @@ public interface SysRoleService extends ExtendService<SysRole> {
*/
PageResult<SysRoleVO> queryPage(PageParam pageParam, SysRoleQO qo);
/**
* 通过角色ID删除角色
* @param id 角色ID
* @return 删除是否成功
*/
Boolean removeRoleById(Integer id);
/**
* 角色的选择数据
* @return 角色下拉列表数据集合
*/
List<SelectData<?>> getSelectData();
List<SelectData<?>> listSelectData();
}

View File

@@ -41,6 +41,6 @@ public interface SysUserRoleService extends ExtendService<SysUserRole> {
* @param userId 用户ID
* @return List<SysRole>
*/
List<SysRole> getRoles(Integer userId);
List<SysRole> listRoles(Integer userId);
}

View File

@@ -88,7 +88,7 @@ public interface SysUserService extends ExtendService<SysUser> {
* @param status 状态
* @return boolean
*/
boolean updateUserStatus(List<Integer> userIds, Integer status);
boolean updateUserStatusBatch(List<Integer> userIds, Integer status);
/**
* 修改系统用户头像
@@ -104,48 +104,48 @@ public interface SysUserService extends ExtendService<SysUser> {
* @param roleCode 角色标识
* @return List<SysUser>
*/
List<SysUser> selectUsersByRoleCode(String roleCode);
List<SysUser> listByRoleCode(String roleCode);
/**
* 根据角色查询用户
* @param roleCodes 角色标识集合
* @return List<SysUser> 用户集合
*/
List<SysUser> selectUsersByRoleCodes(List<String> roleCodes);
List<SysUser> listByRoleCodes(List<String> roleCodes);
/**
* 根据组织机构ID查询用户
* @param organizationIds 组织机构id集合
* @return 用户集合
*/
List<SysUser> selectUsersByOrganizationIds(List<Integer> organizationIds);
List<SysUser> listByOrganizationIds(List<Integer> organizationIds);
/**
* 根据用户类型查询用户
* @param userTypes 用户类型集合
* @return 用户集合
*/
List<SysUser> selectUsersByUserTypes(List<Integer> userTypes);
List<SysUser> listByUserTypes(List<Integer> userTypes);
/**
* 根据用户Id集合查询用户
* @param userIds 用户Id集合
* @return 用户集合
*/
List<SysUser> selectUsersByUserIds(List<Integer> userIds);
List<SysUser> listByUserIds(List<Integer> userIds);
/**
* 返回用户的select数据
* @param type 为空时返回所有客户为1返回系统客户 name=> username value => userId
* @return List<SelectData>
*/
List<SelectData<?>> getSelectData(List<Integer> type);
List<SelectData<?>> listSelectData(List<Integer> type);
/**
* 获取用户的角色Code集合
* @param userId 用户id
* @return List<String>
*/
List<String> getUserRoleCodes(Integer userId);
List<String> listRoleCodes(Integer userId);
}

View File

@@ -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 ExtendServiceImpl<SysConfigMapper, Sys
*/
@Override
public String getConfValueByKey(String confKey) {
SysConfig sysConfig = baseMapper
.selectOne(Wrappers.<SysConfig>lambdaQuery().eq(SysConfig::getConfKey, confKey));
SysConfig sysConfig = baseMapper.selectByKey(confKey);
return sysConfig == null ? "" : sysConfig.getConfValue();
}

View File

@@ -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<SysDictItemMapper,
* @return 字典项集合
*/
@Override
public List<SysDictItem> getByDictCode(String dictCode) {
return baseMapper.selectList(Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getDictCode, dictCode));
public List<SysDictItem> listByDictCode(String dictCode) {
return baseMapper.listByDictCode(dictCode);
}
/**
* 根据字典标识删除对应字典项
* @param dictCode 字典标识
* @return 是否删除成功
*/
@Override
public boolean removeByDictCode(String dictCode) {
return baseMapper.deleteByDictCode(dictCode);
}
}

View File

@@ -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 ExtendServiceImpl<SysDictMapper, SysDict
*/
@Override
public SysDict getByCode(String dictCode) {
return baseMapper.selectOne(Wrappers.<SysDict>lambdaQuery().eq(SysDict::getCode, dictCode));
return baseMapper.getByCode(dictCode);
}
/**
* 根据字典标识查询
* @param dictCode 字典标识
* @return 字典数据
* 根据字典标识数组查询对应字典集合
* @param dictCodes 字典标识数组
* @return List<SysDict> 字典集合
*/
@Override
public List<SysDict> getByCode(String[] dictCode) {
if (dictCode == null || dictCode.length == 0) {
public List<SysDict> listByCodes(String[] dictCodes) {
if (dictCodes == null || dictCodes.length == 0) {
return new ArrayList<>();
}
return baseMapper.selectList(Wrappers.<SysDict>lambdaQuery().in(SysDict::getCode, (Object[]) dictCode));
return baseMapper.listByCodes(dictCodes);
}
/**
@@ -66,9 +64,7 @@ public class SysDictServiceImpl extends ExtendServiceImpl<SysDictMapper, SysDict
*/
@Override
public boolean updateHashCode(String dictCode) {
int flag = baseMapper.update(null, Wrappers.<SysDict>lambdaUpdate()
.set(SysDict::getHashCode, IdUtil.fastSimpleUUID()).eq(SysDict::getCode, dictCode));
return SqlHelper.retBool(flag);
return baseMapper.updateHashCode(dictCode, IdUtil.fastSimpleUUID());
}
}

View File

@@ -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<SysOrganizatio
* @return OrganizationTree
*/
@Override
public List<SysOrganizationTree> tree() {
public List<SysOrganizationTree> listTree() {
List<SysOrganization> list = baseMapper.selectList(null);
return TreeUtil.buildTree(list, 0, SysOrganizationConverter.INSTANCE::poToTree);
}
@@ -91,9 +90,8 @@ public class SysOrganizationServiceImpl extends ExtendServiceImpl<SysOrganizatio
* @return List<SysOrganization> 该组织的儿子组织
*/
@Override
public List<SysOrganization> selectSubOrganization(Integer organizationId) {
return baseMapper
.selectList(Wrappers.<SysOrganization>lambdaQuery().eq(SysOrganization::getParentId, organizationId));
public List<SysOrganization> listSubOrganization(Integer organizationId) {
return baseMapper.listSubOrganization(organizationId);
}
/**
@@ -102,8 +100,8 @@ public class SysOrganizationServiceImpl extends ExtendServiceImpl<SysOrganizatio
* @return List<SysOrganization> 该组织的孩子组织
*/
@Override
public List<SysOrganization> selectChildOrganization(Integer organizationId) {
return baseMapper.selectChildOrganization(organizationId);
public List<SysOrganization> listChildOrganization(Integer organizationId) {
return baseMapper.listChildOrganization(organizationId);
}
/**

View File

@@ -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<SysPermissionMapper, SysPermission>
implements SysPermissionService {
private final SysRolePermissionMapper sysRolePermissionMapper;
private final SysRolePermissionService sysRolePermissionService;
@Override
public List<PermissionVO> findPermissionVOsByRoleCode(String roleCode) {
return baseMapper.listPermissionVOsByRoleCode(roleCode);
public List<PermissionVO> listVOByRoleCode(String roleCode) {
return baseMapper.listVOByRoleCode(roleCode);
}
/**
* 查询权限集合并按sort排序升序
* @return List<SysPermission>
*/
@Override
public List<SysPermission> listOrderBySort() {
return baseMapper.listOrderBySort();
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean removePermissionById(Integer id) {
// 查询父节点为当前节点的节点
List<SysPermission> permissionList = this
.list(Wrappers.<SysPermission>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.<SysRolePermission>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));
}
}

View File

@@ -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 ExtendServiceImpl<SysRolePermi
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean saveRolePermissions(String roleCode, Integer[] permissionIds) {
this.remove(Wrappers.<SysRolePermission>query().lambda().eq(SysRolePermission::getRoleCode, roleCode));
// 1、先删除旧数据
baseMapper.deleteByRoleCode(roleCode);
if (permissionIds == null || permissionIds.length == 0) {
return Boolean.TRUE;
}
List<SysRolePermission> 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<SysRolePermission> 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);
}
}

View File

@@ -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<SysRoleMapper, SysRole> implements SysRoleService {
private final SysRolePermissionMapper sysRolePermissionMapper;
private final SysRolePermissionService sysRolePermissionService;
/**
* 查询系统角色列表
@@ -50,11 +50,10 @@ public class SysRoleServiceImpl extends ExtendServiceImpl<SysRoleMapper, SysRole
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean removeRoleById(Integer id) {
public boolean removeById(Serializable id) {
SysRole role = getById(id);
sysRolePermissionMapper.delete(
Wrappers.<SysRolePermission>update().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<SysRoleMapper, SysRole
* @return List<SelectData<?>>
*/
@Override
public List<SelectData<?>> getSelectData() {
return baseMapper.getSelectData();
public List<SelectData<?>> listSelectData() {
return baseMapper.listSelectData();
}
}

View File

@@ -63,8 +63,8 @@ public class SysUserRoleServiceImpl extends ExtendServiceImpl<SysUserRoleMapper,
* @return 用户拥有的角色集合
*/
@Override
public List<SysRole> getRoles(Integer userId) {
return baseMapper.getRoles(userId);
public List<SysRole> listRoles(Integer userId) {
return baseMapper.listRoles(userId);
}
}

View File

@@ -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 ExtendServiceImpl<SysUserMapper, SysUser
*/
@Override
public SysUser getByUsername(String username) {
return baseMapper.selectOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername, username));
return baseMapper.selectByUsername(username);
}
/**
@@ -108,7 +101,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
roleList = sysRoleService.list();
}
else {
roleList = sysUserRoleService.getRoles(sysUser.getUserId());
roleList = sysUserRoleService.listRoles(sysUser.getUserId());
}
List<Integer> roleIds = new ArrayList<>();
@@ -124,7 +117,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
// 设置权限列表permission
Set<String> permissions = new HashSet<>();
roles.forEach(code -> {
List<String> permissionList = sysPermissionService.findPermissionVOsByRoleCode(code).stream()
List<String> 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 ExtendServiceImpl<SysUserMapper, SysUser
@Override
public boolean updateSysUser(SysUserDTO sysUserDTO) {
SysUser entity = SysUserConverter.INSTANCE.dtoToPo(sysUserDTO);
Assert.isTrue(hasModifyPermission(entity), "当前用户不允许修改!");
Assert.isTrue(adminUserChecker.hasModifyPermission(entity), "当前用户不允许修改!");
return SqlHelper.retBool(baseMapper.updateById(entity));
}
@@ -199,26 +192,9 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
*/
@Override
public boolean updateUserPass(Integer userId, String pass) {
Assert.isTrue(hasModifyPermission(getById(userId)), "当前用户不允许修改!");
Assert.isTrue(adminUserChecker.hasModifyPermission(getById(userId)), "当前用户不允许修改!");
String password = PasswordUtil.decodeAesAndEncodeBCrypt(pass, secretKey);
int res = baseMapper.update(null,
Wrappers.<SysUser>lambdaUpdate().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<SysUserMapper, SysUser
* @return 更新成功true
*/
@Override
public boolean updateUserStatus(List<Integer> userIds, Integer status) {
public boolean updateUserStatusBatch(List<Integer> userIds, Integer status) {
List<SysUser> userList = baseMapper.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, userIds));
List<SysUser> userList = baseMapper.listByUserIds(userIds);
Assert.notEmpty(userList, "更新用户状态失败,待更新用户列表为空");
// 移除无权限更改的用户id
Map<Integer, SysUser> 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.<SysUser>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<SysUserMapper, SysUser
* @return 系统用户集合
*/
@Override
public List<SysUser> selectUsersByRoleCode(String roleCode) {
return selectUsersByRoleCodes(Collections.singletonList(roleCode));
public List<SysUser> listByRoleCode(String roleCode) {
return listByRoleCodes(Collections.singletonList(roleCode));
}
/**
@@ -275,8 +250,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
* @return List<SysUser>
*/
@Override
public List<SysUser> selectUsersByRoleCodes(List<String> roleCodes) {
return baseMapper.selectUsersByRoleCodes(roleCodes);
public List<SysUser> listByRoleCodes(List<String> roleCodes) {
return baseMapper.listByRoleCodes(roleCodes);
}
/**
@@ -285,8 +260,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
* @return 用户集合
*/
@Override
public List<SysUser> selectUsersByOrganizationIds(List<Integer> organizationIds) {
return baseMapper.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getOrganizationId, organizationIds));
public List<SysUser> listByOrganizationIds(List<Integer> organizationIds) {
return baseMapper.listByOrganizationIds(organizationIds);
}
/**
@@ -295,8 +270,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
* @return 用户集合
*/
@Override
public List<SysUser> selectUsersByUserTypes(List<Integer> userTypes) {
return baseMapper.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getType, userTypes));
public List<SysUser> listByUserTypes(List<Integer> userTypes) {
return baseMapper.listByUserTypes(userTypes);
}
/**
@@ -305,8 +280,9 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
* @return 用户集合
*/
@Override
public List<SysUser> selectUsersByUserIds(List<Integer> userIds) {
return baseMapper.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, userIds));
public List<SysUser> listByUserIds(List<Integer> userIds) {
return baseMapper.listByUserIds(userIds);
}
/**
@@ -315,8 +291,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
* @param userTypes 用户类型
*/
@Override
public List<SelectData<?>> getSelectData(List<Integer> userTypes) {
return baseMapper.getSelectData(userTypes);
public List<SelectData<?>> listSelectData(List<Integer> userTypes) {
return baseMapper.listSelectData(userTypes);
}
/**
@@ -325,8 +301,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
* @return List<String>
*/
@Override
public List<String> getUserRoleCodes(Integer userId) {
return sysUserRoleService.getRoles(userId).stream().map(SysRole::getCode).collect(Collectors.toList());
public List<String> listRoleCodes(Integer userId) {
return sysUserRoleService.listRoles(userId).stream().map(SysRole::getCode).collect(Collectors.toList());
}
}

View File

@@ -1,29 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hccake.ballcat.admin.modules.sys.mapper.SysPermissionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hccake.ballcat.admin.modules.sys.model.entity.SysPermission">
<id column="id" property="id"/>
<result column="title" property="title"/>
<result column="code" property="code"/>
<result column="path" property="path"/>
<result column="router_name" property="routerName"/>
<result column="component" property="component"/>
<result column="redirect" property="redirect"/>
<result column="parent_id" property="parentId"/>
<result column="icon" property="icon"/>
<result column="sort" property="sort"/>
<result column="keep_alive" property="keepAlive"/>
<result column="hidden" property="hidden"/>
<result column="type" property="type"/>
<result column="deleted" property="deleted"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!--通过角色查询菜单信息-->
<select id="listPermissionVOsByRoleCode" resultType="com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO">
<select id="listVOByRoleCode" resultType="com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO">
SELECT
m.*
FROM

View File

@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hccake.ballcat.admin.modules.sys.mapper.SysRoleMapper">
<select id="getSelectData" resultType="com.hccake.ballcat.common.core.domain.SelectData">
<select id="listSelectData" resultType="com.hccake.ballcat.common.core.domain.SelectData">
select
name, code as value
from

View File

@@ -12,7 +12,7 @@
hierarchy like CONCAT(#{originHierarchy}, "-%")
</update>
<select id="selectChildOrganization" resultType="com.hccake.ballcat.admin.modules.sys.model.entity.SysOrganization">
<select id="listChildOrganization" resultType="com.hccake.ballcat.admin.modules.sys.model.entity.SysOrganization">
SELECT
id, name, parent_id, hierarchy, depth, description, sort, create_by, update_by, create_time, update_time
FROM

View File

@@ -28,7 +28,7 @@
</select>
<!-- 通过用户ID查询其关联的角色ID-->
<select id="selectUsersByRoleCodes" resultType="com.hccake.ballcat.admin.modules.sys.model.entity.SysUser">
<select id="listByRoleCodes" resultType="com.hccake.ballcat.admin.modules.sys.model.entity.SysUser">
SELECT
<include refid="Base_Alias_Column_List"/>
FROM
@@ -47,7 +47,7 @@
AND su.deleted = 0
</select>
<select id="getSelectData" resultType="com.hccake.ballcat.common.core.domain.SelectData">
<select id="listSelectData" resultType="com.hccake.ballcat.common.core.domain.SelectData">
select
username as name , user_id as value
from

View File

@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hccake.ballcat.admin.modules.sys.mapper.SysUserRoleMapper">
<!-- 通过用户ID查询其关联的角色ID-->
<select id="getRoles" resultType="com.hccake.ballcat.admin.modules.sys.model.entity.SysRole">
<select id="listRoles" resultType="com.hccake.ballcat.admin.modules.sys.model.entity.SysRole">
SELECT
r.id, r.name, r.code
FROM

View File

@@ -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<List<TemplateDirectoryEntryVO>> getTemplateDirectoryEntryPage(@PathVariable Integer templateGroupId) {
return R.ok(templateDirectoryEntryService.queryDirectoryEntry(templateGroupId));
List<TemplateDirectoryEntry> entries = templateDirectoryEntryService.listByTemplateGroupId(templateGroupId);
List<TemplateDirectoryEntryVO> vos = entries.stream().map(TemplateModelConverter.INSTANCE::entryPoToVo)
.collect(Collectors.toList());
return R.ok(vos);
}
/**

View File

@@ -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<List<SelectData<?>>> getSelectData() {
return R.ok(templateGroupService.getSelectData());
public R<List<SelectData<?>>> listSelectData() {
return R.ok(templateGroupService.listSelectData());
}
}

View File

@@ -33,7 +33,7 @@ public class TemplateInfoController {
@ApiOperation(value = "指定模板组的文件列表", notes = "指定模板组的文件列表")
@GetMapping("/list/{templateGroupId}")
public R<List<TemplateInfo>> listTemplateInfo(@PathVariable Integer templateGroupId) {
return R.ok(templateInfoService.listTemplateInfo(templateGroupId));
return R.ok(templateInfoService.listByTemplateGroupId(templateGroupId));
}
/**

View File

@@ -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<List<TemplatePropertyVO>> getTemplatePropertyList(@PathVariable("groupId") Integer templateGroupId) {
return R.ok(templatePropertyService.list(templateGroupId));
List<TemplateProperty> templateProperties = templatePropertyService.listByTemplateGroupId(templateGroupId);
List<TemplatePropertyVO> vos = templateProperties.stream().map(TemplatePropertyConverter.INSTANCE::poToVo)
.collect(Collectors.toList());
return R.ok(vos);
}
/**

View File

@@ -52,6 +52,6 @@ public interface TableInfoMapper {
* @param tableName 表名
* @return List<ColumnInfo>
*/
List<ColumnInfo> queryColumnInfo(@Param("tableName") String tableName);
List<ColumnInfo> listColumnInfo(@Param("tableName") String tableName);
}

View File

@@ -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<TemplateDirectoryEntry> {
/**
* 根据模板组ID查询模板文件目录项集合
* @param templateGroupId 模板组ID
* @return List<TemplateDirectoryEntry>
*/
default List<TemplateDirectoryEntry> listByTemplateGroupId(Integer templateGroupId) {
return this.selectList(
Wrappers.<TemplateDirectoryEntry>lambdaQuery().eq(TemplateDirectoryEntry::getGroupId, templateGroupId));
}
/**
* 检测是否在指定目录下存在指定名称的文件
* @param entryId 目录项ID
* @param name 文件名称
* @return 是否存在
*/
default boolean existSameName(Integer entryId, String name) {
Integer count = this.selectCount(Wrappers.<TemplateDirectoryEntry>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.<TemplateDirectoryEntry>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<TemplateDirectoryEntry> wrapper = Wrappers.<TemplateDirectoryEntry>lambdaUpdate()
.set(TemplateDirectoryEntry::getParentId, newParentId)
.eq(TemplateDirectoryEntry::getParentId, oldParentId);
this.update(null, wrapper);
}
}

View File

@@ -39,6 +39,6 @@ public interface TemplateGroupMapper extends ExtendMapper<TemplateGroup> {
* 获取SelectData数据
* @return List<SelectData<?>>
*/
List<SelectData<?>> getSelectData();
List<SelectData<?>> listSelectData();
}

View File

@@ -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<TemplateInfo> {
/**
* List template info list.
* @param templateGroupId the template group id
* @return List<TemplateInfo> the list
*/
default List<TemplateInfo> listByTemplateGroupId(Integer templateGroupId) {
return this.selectList(Wrappers.<TemplateInfo>lambdaQuery().eq(TemplateInfo::getGroupId, templateGroupId));
}
}

View File

@@ -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<TemplateProperty> {
return new PageResult<>(page.getRecords(), page.getTotal());
}
/**
* 根据模板组ID获取模板组的所有配置
* @param templateGroupId 模板组ID
* @return List<TemplateProperty> 配置列表
*/
default List<TemplateProperty> listByTemplateGroupId(Integer templateGroupId) {
return this
.selectList(Wrappers.<TemplateProperty>lambdaQuery().eq(TemplateProperty::getGroupId, templateGroupId));
}
}

View File

@@ -36,6 +36,6 @@ public interface TableInfoService {
* @param tableName 表名
* @return List<ColumnInfo>
*/
List<ColumnInfo> queryColumnInfo(String tableName);
List<ColumnInfo> listColumnInfo(String tableName);
}

View File

@@ -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<TemplateDir
* @param templateGroupId 模板组ID
* @return 所有的目录项
*/
List<TemplateDirectoryEntryVO> queryDirectoryEntry(Integer templateGroupId);
List<TemplateDirectoryEntry> listByTemplateGroupId(Integer templateGroupId);
/**
* 移动目录项
@@ -76,13 +75,13 @@ public interface TemplateDirectoryEntryService extends ExtendService<TemplateDir
* @param templateFileIds 模板文件ID集合
* @return List 模板文件
*/
List<TemplateFile> findTemplateFiles(Integer groupId, Set<Integer> templateFileIds);
List<TemplateFile> listTemplateFiles(Integer groupId, Set<Integer> templateFileIds);
/**
* 复制模板目录项文件
* @param resourceId 原模板组
* @param groupId 模板模板组
* @param resourceGroupId 原模板组
* @param targetGroupId 模板模板组
*/
void copy(Integer resourceId, Integer groupId);
void copy(Integer resourceGroupId, Integer targetGroupId);
}

View File

@@ -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<TemplateGroup> {
*/
PageResult<TemplateGroupVO> queryPage(PageParam pageParam, TemplateGroupQO qo);
/**
* 查找指定模板组下所有的模板文件
* @param groupId 模板组ID
* @param templateFileIds 模板文件ID集合
* @return List<TemplateFile>
*/
List<TemplateFile> findTemplateFiles(Integer groupId, Set<Integer> templateFileIds);
/**
* 获取SelectData数据
* @return List<SelectData<?>>
*/
List<SelectData<?>> getSelectData();
List<SelectData<?>> listSelectData();
/**
* 复制模板组

View File

@@ -18,6 +18,6 @@ public interface TemplateInfoService extends ExtendService<TemplateInfo> {
* @param templateGroupId the template group id
* @return the list
*/
List<TemplateInfo> listTemplateInfo(Integer templateGroupId);
List<TemplateInfo> listByTemplateGroupId(Integer templateGroupId);
}

View File

@@ -30,7 +30,7 @@ public interface TemplatePropertyService extends ExtendService<TemplateProperty>
* @param templateGroupId 模板组ID
* @return List<TemplatePropertyVO> 配置列表
*/
List<TemplatePropertyVO> list(Integer templateGroupId);
List<TemplateProperty> listByTemplateGroupId(Integer templateGroupId);
/**
* 复制模板属性配置

View File

@@ -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<TemplateFile> templateFiles = templateGroupService.findTemplateFiles(
List<TemplateFile> 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<ColumnInfo> columnInfoList = tableInfoService.queryColumnInfo(tableName);
List<ColumnInfo> columnInfoList = tableInfoService.listColumnInfo(tableName);
// 生成代码
GenUtils.generatorCode(generatorOptionDTO.getTablePrefix(), generatorOptionDTO.getGenProperties(),
tableInfo, columnInfoList, zip, templateFiles);

View File

@@ -53,8 +53,8 @@ public class TableInfoServiceImpl implements TableInfoService {
* @return List<ColumnInfo>
*/
@Override
public List<ColumnInfo> queryColumnInfo(String tableName) {
return baseMapper.queryColumnInfo(tableName);
public List<ColumnInfo> listColumnInfo(String tableName) {
return baseMapper.listColumnInfo(tableName);
}
}

View File

@@ -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<TemplateDirectoryEntryVO> queryDirectoryEntry(Integer templateGroupId) {
LambdaQueryWrapper<TemplateDirectoryEntry> wrapper = Wrappers.<TemplateDirectoryEntry>lambdaQuery()
.eq(TemplateDirectoryEntry::getGroupId, templateGroupId);
List<TemplateDirectoryEntry> templateDirectoryEntries = baseMapper.selectList(wrapper);
return templateDirectoryEntries.stream().map(TemplateModelConverter.INSTANCE::entryPoToVo)
.collect(Collectors.toList());
public List<TemplateDirectoryEntry> 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.<TemplateDirectoryEntry>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.<TemplateDirectoryEntry>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.<TemplateDirectoryEntry>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<TemplateDirectoryEntry> entryList = baseMapper.selectList(Wrappers.emptyWrapper());
List<TemplateDirectoryEntry> entryList = baseMapper.selectList(null);
// 2. 获取当前删除目录项的孩子节点列表
List<TemplateDirectory> 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<TemplateDirectoryEntry> list = baseMapper.selectList(
Wrappers.<TemplateDirectoryEntry>lambdaQuery().eq(TemplateDirectoryEntry::getGroupId, resourceId));
List<TemplateDirectoryEntry> list = baseMapper.listByTemplateGroupId(resourceGroupId);
// 2. ============== 复制模板文件 ===================
Set<Integer> 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.<TemplateDirectoryEntry>lambdaUpdate()
.set(TemplateDirectoryEntry::getParentId, idMap.get(oldParentId))
.eq(TemplateDirectoryEntry::getParentId, oldParentId)
.eq(TemplateDirectoryEntry::getGroupId, groupId));
baseMapper.updateParentId(oldParentId, idMap.get(oldParentId));
}
// 5. ================保存模板文件详情信息===================
List<TemplateInfo> templateInfoList = templateInfoService
.list(Wrappers.<TemplateInfo>lambdaQuery().eq(TemplateInfo::getGroupId, resourceId));
List<TemplateInfo> 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<TemplateFile> findTemplateFiles(Integer groupId, Set<Integer> templateFileIds) {
public List<TemplateFile> listTemplateFiles(Integer groupId, Set<Integer> templateFileIds) {
// 获取模板目录项
List<TemplateDirectoryEntry> list = baseMapper.selectList(
Wrappers.<TemplateDirectoryEntry>lambdaQuery().eq(TemplateDirectoryEntry::getGroupId, groupId));
List<TemplateDirectoryEntry> list = baseMapper.listByTemplateGroupId(groupId);
// 当没有指定时,不生成该文件
if (CollectionUtil.isNotEmpty(templateFileIds)) {
list.removeIf(entry -> DirectoryEntryTypeEnum.FILE.getType().equals(entry.getType())

View File

@@ -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<TemplateGroupMap
return baseMapper.queryPage(pageParam, qo);
}
/**
* 查找指定模板组下所有的模板文件
* @param groupId 模板组ID
* @param templateFileIds 指定的文件id
* @return List<TemplateFile>
*/
@Override
public List<TemplateFile> findTemplateFiles(Integer groupId, Set<Integer> templateFileIds) {
return templateDirectoryEntryService.findTemplateFiles(groupId, templateFileIds);
}
/**
* 获取SelectData数据
* @return List<SelectData<?>>
*/
@Override
public List<SelectData<?>> getSelectData() {
return baseMapper.getSelectData();
public List<SelectData<?>> 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<TemplateGroupMap
// 获取落库成功后的自增ID
Integer groupId = templateGroup.getId();
// 复制模板目录文件
templateDirectoryEntryService.copy(resourceId, groupId);
templateDirectoryEntryService.copy(resourceGroupId, groupId);
// 复制模板属性配置
templatePropertyService.copy(resourceId, groupId);
templatePropertyService.copy(resourceGroupId, groupId);
return true;
}

View File

@@ -1,6 +1,5 @@
package com.hccake.ballcat.codegen.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hccake.ballcat.codegen.mapper.TemplateInfoMapper;
import com.hccake.ballcat.codegen.model.entity.TemplateInfo;
import com.hccake.ballcat.codegen.service.TemplateInfoService;
@@ -25,9 +24,8 @@ public class TemplateInfoServiceImpl extends ExtendServiceImpl<TemplateInfoMappe
* @return the list
*/
@Override
public List<TemplateInfo> listTemplateInfo(Integer templateGroupId) {
return baseMapper
.selectList(Wrappers.<TemplateInfo>lambdaQuery().eq(TemplateInfo::getGroupId, templateGroupId));
public List<TemplateInfo> listByTemplateGroupId(Integer templateGroupId) {
return baseMapper.listByTemplateGroupId(templateGroupId);
}
}

View File

@@ -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<TemplatePrope
}
/**
* 获取模板组的所有配置
* 根据模板组ID获取模板组的所有配置
* @param templateGroupId 模板组ID
* @return List<TemplatePropertyVO> 配置列表
* @return List<TemplateProperty> 配置列表
*/
@Override
public List<TemplatePropertyVO> list(Integer templateGroupId) {
List<TemplateProperty> templateProperties = baseMapper
.selectList(Wrappers.<TemplateProperty>lambdaQuery().eq(TemplateProperty::getGroupId, templateGroupId));
return templateProperties.stream().map(TemplatePropertyConverter.INSTANCE::poToVo).collect(Collectors.toList());
public List<TemplateProperty> 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<TemplateProperty> templateProperties = baseMapper
.selectList(Wrappers.<TemplateProperty>lambdaQuery().eq(TemplateProperty::getGroupId, resourceId));
public void copy(Integer resourceGroupId, Integer targetGroupId) {
List<TemplateProperty> templateProperties = baseMapper.listByTemplateGroupId(resourceGroupId);
if (CollectionUtil.isNotEmpty(templateProperties)) {
List<TemplateProperty> 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);
}
}

View File

@@ -33,7 +33,7 @@
</select>
<select id="queryColumnInfo" resultType="com.hccake.ballcat.codegen.model.vo.ColumnInfo">
<select id="listColumnInfo" resultType="com.hccake.ballcat.codegen.model.vo.ColumnInfo">
SELECT
column_name,
data_type,

View File

@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hccake.ballcat.codegen.mapper.TemplateGroupMapper">
<select id="getSelectData" resultType="com.hccake.ballcat.common.core.domain.SelectData">
<select id="listSelectData" resultType="com.hccake.ballcat.common.core.domain.SelectData">
select
name, id as value
from