优化:优化后端 CRUD 公共组件(移除 BaseService 中无用的默认实现,抽取 BaseRequest 基类来方便使用分组校验),并同步调整部门管理 API

This commit is contained in:
2023-01-30 22:35:17 +08:00
parent 2c6bef91e8
commit 83b01c2e4f
18 changed files with 144 additions and 111 deletions

View File

@@ -16,9 +16,9 @@
package top.charles7c.cnadmin.system.model.request;
import java.io.Serializable;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import lombok.Data;
@@ -26,6 +26,9 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
import top.charles7c.cnadmin.common.base.BaseRequest;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
/**
* 创建或修改部门信息
*
@@ -34,15 +37,23 @@ import org.hibernate.validator.constraints.Length;
*/
@Data
@Schema(description = "创建或修改部门信息")
public class DeptRequest implements Serializable {
public class DeptRequest extends BaseRequest {
private static final long serialVersionUID = 1L;
/**
* 部门 ID
*/
@Schema(description = "部门 ID")
@Null(message = "新增时ID 必须为空", groups = Create.class)
@NotNull(message = "修改时ID 不能为空", groups = Update.class)
private Long deptId;
/**
* 上级部门 ID
*/
@Schema(description = "上级部门 ID", defaultValue = "0")
private Long parentId = 0L;
@Schema(description = "上级部门 ID")
private Long parentId;
/**
* 部门名称
@@ -54,8 +65,8 @@ public class DeptRequest implements Serializable {
/**
* 部门排序
*/
@Schema(description = "部门排序", defaultValue = "999")
private Integer deptSort = 999;
@Schema(description = "部门排序")
private Integer deptSort;
/**
* 描述
@@ -63,4 +74,10 @@ public class DeptRequest implements Serializable {
@Schema(description = "描述")
@Length(max = 200, message = "描述长度不能超过 200 个字符")
private String description;
/**
* 状态1启用 2禁用
*/
@Schema(description = "状态1启用 2禁用", type = "Integer", allowableValues = {"1", "2"})
private DisEnableStatusEnum status;
}

View File

@@ -21,7 +21,6 @@ import java.util.List;
import cn.hutool.core.lang.tree.Tree;
import top.charles7c.cnadmin.common.base.BaseService;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.system.model.query.DeptQuery;
import top.charles7c.cnadmin.system.model.request.DeptRequest;
import top.charles7c.cnadmin.system.model.vo.DeptVO;
@@ -32,7 +31,7 @@ import top.charles7c.cnadmin.system.model.vo.DeptVO;
* @author Charles7c
* @since 2023/1/22 17:54
*/
public interface DeptService extends BaseService<DeptVO, DeptVO, DeptQuery, DeptRequest, DeptRequest> {
public interface DeptService extends BaseService<DeptVO, DeptVO, DeptQuery, DeptRequest> {
/**
* 构建树
@@ -52,16 +51,6 @@ public interface DeptService extends BaseService<DeptVO, DeptVO, DeptQuery, Dept
*/
List<Tree<Long>> buildTree(List<DeptVO> list);
/**
* 修改状态
*
* @param ids
* ID 列表
* @param status
* 状态
*/
void updateStatus(List<Long> ids, DisEnableStatusEnum status);
/**
* 检查部门名称是否存在
*

View File

@@ -55,8 +55,8 @@ import top.charles7c.cnadmin.system.service.UserService;
*/
@Service
@RequiredArgsConstructor
public class DeptServiceImpl extends
BaseServiceImpl<DeptMapper, DeptDO, DeptVO, DeptVO, DeptQuery, DeptRequest, DeptRequest> implements DeptService {
public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO, DeptVO, DeptQuery, DeptRequest>
implements DeptService {
private final UserService userService;
@@ -112,24 +112,24 @@ public class DeptServiceImpl extends
/**
* 获取指定部门的子部门列表
*
* @param dept
* @param deptVO
* 指定部门
* @param list
* 部门列表
* @return 子部门列表
*/
private List<DeptVO> getChildren(DeptVO dept, List<DeptVO> list) {
return list.stream().filter(d -> Objects.equals(d.getParentId(), dept.getDeptId()))
private List<DeptVO> getChildren(DeptVO deptVO, List<DeptVO> list) {
return list.stream().filter(d -> Objects.equals(d.getParentId(), deptVO.getDeptId()))
.map(d -> d.setChildren(this.getChildren(d, list))).collect(Collectors.toList());
}
@Override
public List<Tree<Long>> buildTree(List<DeptVO> list) {
return TreeUtils.build(list, (dept, tree) -> {
tree.setId(dept.getDeptId());
tree.setName(dept.getDeptName());
tree.setParentId(dept.getParentId());
tree.setWeight(dept.getDeptSort());
return TreeUtils.build(list, (d, tree) -> {
tree.setId(d.getDeptId());
tree.setName(d.getDeptName());
tree.setParentId(d.getParentId());
tree.setWeight(d.getDeptSort());
});
}
@@ -147,13 +147,6 @@ public class DeptServiceImpl extends
return deptDO.getDeptId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateStatus(List<Long> ids, DisEnableStatusEnum status) {
baseMapper.update(null,
Wrappers.<DeptDO>lambdaUpdate().set(DeptDO::getStatus, status).in(DeptDO::getDeptId, ids));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(List<Long> ids) {
@@ -178,7 +171,6 @@ public class DeptServiceImpl extends
if (createUser == null) {
return;
}
deptVO.setCreateUserString(
ExceptionUtils.exToNull(() -> userService.getById(createUser)).getNickname());
deptVO.setCreateUserString(ExceptionUtils.exToNull(() -> userService.getById(createUser)).getNickname());
}
}