🎨 所有条件构造下沉进 DAO 层 & 修改service层查询方法返回值为集合时,方法名使用list开头
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,4 +17,11 @@ public interface AdminUserChecker {
|
||||
*/
|
||||
boolean isAdminUser(SysUser user);
|
||||
|
||||
/**
|
||||
* 修改权限校验
|
||||
* @param targetUser 目标用户
|
||||
* @return 是否有权限修改目标用户
|
||||
*/
|
||||
boolean hasModifyPermission(SysUser targetUser);
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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, "批量修改用户状态!");
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -45,6 +45,6 @@ public interface SysRoleMapper extends ExtendMapper<SysRole> {
|
||||
* 获取角色下拉框数据
|
||||
* @return 下拉选择框数据集合
|
||||
*/
|
||||
List<SelectData<?>> getSelectData();
|
||||
List<SelectData<?>> listSelectData();
|
||||
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public interface SysUserRoleMapper extends ExtendMapper<SysUserRole> {
|
||||
* @param userId 用户ID
|
||||
* @return 用户拥有的角色集合
|
||||
*/
|
||||
List<SysRole> getRoles(Integer userId);
|
||||
List<SysRole> listRoles(Integer userId);
|
||||
|
||||
/**
|
||||
* 删除用户关联关系
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -39,6 +39,6 @@ public interface TemplateGroupMapper extends ExtendMapper<TemplateGroup> {
|
||||
* 获取SelectData数据
|
||||
* @return List<SelectData<?>>
|
||||
*/
|
||||
List<SelectData<?>> getSelectData();
|
||||
List<SelectData<?>> listSelectData();
|
||||
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -36,6 +36,6 @@ public interface TableInfoService {
|
||||
* @param tableName 表名
|
||||
* @return List<ColumnInfo>
|
||||
*/
|
||||
List<ColumnInfo> queryColumnInfo(String tableName);
|
||||
List<ColumnInfo> listColumnInfo(String tableName);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
/**
|
||||
* 复制模板组
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
/**
|
||||
* 复制模板属性配置
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user