重构:初步封装后端 CRUD 公共组件(BaseController、BaseService、BaseServiceImpl)

This commit is contained in:
2023-01-29 23:40:29 +08:00
parent dab3e597c2
commit d7851bc811
24 changed files with 686 additions and 101 deletions

View File

@@ -21,8 +21,8 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import top.charles7c.cnadmin.common.base.BaseEntity;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.model.entity.BaseEntity;
/**
* 部门实体

View File

@@ -23,9 +23,9 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import top.charles7c.cnadmin.common.base.BaseEntity;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.GenderEnum;
import top.charles7c.cnadmin.common.model.entity.BaseEntity;
/**
* 用户实体

View File

@@ -16,8 +16,6 @@
package top.charles7c.cnadmin.system.model.vo;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import lombok.Data;
@@ -25,8 +23,7 @@ import lombok.experimental.Accessors;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonIgnore;
import top.charles7c.cnadmin.common.base.BaseVO;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
/**
@@ -38,7 +35,7 @@ import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
@Data
@Accessors(chain = true)
@Schema(description = "部门信息")
public class DeptVO implements Serializable {
public class DeptVO extends BaseVO {
private static final long serialVersionUID = 1L;
@@ -78,24 +75,6 @@ public class DeptVO implements Serializable {
@Schema(description = "状态1启用 2禁用")
private DisEnableStatusEnum status;
/**
* 修改人
*/
@JsonIgnore
private Long updateUser;
/**
* 修改人昵称
*/
@Schema(description = "修改人昵称")
private String updateUserString;
/**
* 修改时间
*/
@Schema(description = "修改时间")
private LocalDateTime updateTime;
/**
* 子部门列表
*/

View File

@@ -20,6 +20,7 @@ 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.CreateDeptRequest;
@@ -31,16 +32,7 @@ import top.charles7c.cnadmin.system.model.vo.DeptVO;
* @author Charles7c
* @since 2023/1/22 17:54
*/
public interface DeptService {
/**
* 查询列表
*
* @param query
* 查询条件
* @return 列表数据
*/
List<DeptVO> list(DeptQuery query);
public interface DeptService extends BaseService<DeptVO, DeptVO, DeptQuery, CreateDeptRequest, CreateDeptRequest> {
/**
* 构建树
@@ -60,15 +52,6 @@ public interface DeptService {
*/
List<Tree<Long>> buildTree(List<DeptVO> list);
/**
* 新增
*
* @param request
* 创建信息
* @return 新增记录 ID
*/
Long create(CreateDeptRequest request);
/**
* 修改状态
*
@@ -79,14 +62,6 @@ public interface DeptService {
*/
void updateStatus(List<Long> ids, DisEnableStatusEnum status);
/**
* 删除
*
* @param ids
* ID 列表
*/
void delete(List<Long> ids);
/**
* 检查部门名称是否存在
*

View File

@@ -33,6 +33,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.tree.Tree;
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.util.ExceptionUtils;
import top.charles7c.cnadmin.common.util.TreeUtils;
@@ -54,9 +55,10 @@ import top.charles7c.cnadmin.system.service.UserService;
*/
@Service
@RequiredArgsConstructor
public class DeptServiceImpl implements DeptService {
public class DeptServiceImpl
extends BaseServiceImpl<DeptMapper, SysDept, DeptVO, DeptVO, DeptQuery, CreateDeptRequest, CreateDeptRequest>
implements DeptService {
private final DeptMapper deptMapper;
private final UserService userService;
@Override
@@ -64,7 +66,7 @@ public class DeptServiceImpl implements DeptService {
QueryWrapper<SysDept> queryWrapper = QueryHelper.build(query);
queryWrapper.lambda().orderByAsc(SysDept::getParentId).orderByAsc(SysDept::getDeptSort)
.orderByDesc(SysDept::getUpdateTime);
List<SysDept> list = deptMapper.selectList(queryWrapper);
List<SysDept> list = baseMapper.selectList(queryWrapper);
List<DeptVO> voList = BeanUtil.copyToList(list, DeptVO.class);
voList.forEach(this::fill);
return voList;
@@ -142,27 +144,27 @@ public class DeptServiceImpl implements DeptService {
// 保存部门信息
SysDept sysDept = BeanUtil.copyProperties(request, SysDept.class);
sysDept.setStatus(DisEnableStatusEnum.ENABLE);
deptMapper.insert(sysDept);
baseMapper.insert(sysDept);
return sysDept.getDeptId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateStatus(List<Long> ids, DisEnableStatusEnum status) {
deptMapper.update(null,
baseMapper.update(null,
Wrappers.<SysDept>lambdaUpdate().set(SysDept::getStatus, status).in(SysDept::getDeptId, ids));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(List<Long> ids) {
deptMapper.deleteBatchIds(ids);
deptMapper.delete(Wrappers.<SysDept>lambdaQuery().in(SysDept::getParentId, ids));
super.delete(ids);
baseMapper.delete(Wrappers.<SysDept>lambdaQuery().in(SysDept::getParentId, ids));
}
@Override
public boolean checkDeptNameExist(String deptName, Long parentId, Long deptId) {
return deptMapper.exists(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getDeptName, deptName)
return baseMapper.exists(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getDeptName, deptName)
.eq(SysDept::getParentId, parentId).ne(deptId != null, SysDept::getDeptId, deptId));
}