refactor: 优化部门管理相关 API,合并 DeptResp 及 DeptDetailResp
This commit is contained in:
parent
bd0f40c6ad
commit
a2cf072609
@ -38,11 +38,11 @@ public class DeptQuery implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
* 关键词
|
||||
*/
|
||||
@Schema(description = "名称", example = "测试部")
|
||||
@Query(type = QueryType.LIKE)
|
||||
private String name;
|
||||
@Schema(description = "关键词", example = "测试部")
|
||||
@Query(columns = {"name", "description"}, type = QueryType.LIKE)
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
|
@ -1,101 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package top.charles7c.continew.admin.system.model.resp;
|
||||
|
||||
import cn.crane4j.annotation.AssembleMethod;
|
||||
import cn.crane4j.annotation.ContainerMethod;
|
||||
import cn.crane4j.annotation.Mapping;
|
||||
import cn.crane4j.annotation.condition.ConditionOnExpression;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import top.charles7c.continew.admin.common.enums.DisEnableStatusEnum;
|
||||
import top.charles7c.continew.admin.system.service.DeptService;
|
||||
import top.charles7c.continew.starter.extension.crud.converter.ExcelBaseEnumConverter;
|
||||
import top.charles7c.continew.starter.extension.crud.model.resp.BaseDetailResp;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 部门详情信息
|
||||
*
|
||||
* @author Charles7c
|
||||
* @since 2023/2/1 22:19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@Schema(description = "部门详情信息")
|
||||
public class DeptDetailResp extends BaseDetailResp {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@Schema(description = "名称", example = "测试部")
|
||||
@ExcelProperty(value = "名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 上级部门 ID
|
||||
*/
|
||||
@Schema(description = "上级部门 ID", example = "2")
|
||||
@ConditionOnExpression(value = "#target.parentId != 0")
|
||||
@AssembleMethod(targetType = DeptService.class, method = @ContainerMethod(bindMethod = "get", resultType = DeptDetailResp.class), props = @Mapping(src = "name", ref = "parentName"))
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 上级部门
|
||||
*/
|
||||
@Schema(description = "上级部门", example = "天津总部")
|
||||
@ExcelProperty(value = "上级部门")
|
||||
private String parentName;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@Schema(description = "排序", example = "1")
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Schema(description = "状态(1:启用;2:禁用)", type = "Integer", allowableValues = {"1", "2"}, example = "1")
|
||||
@ExcelProperty(value = "状态", converter = ExcelBaseEnumConverter.class)
|
||||
private DisEnableStatusEnum status;
|
||||
|
||||
/**
|
||||
* 是否为系统内置数据
|
||||
*/
|
||||
@Schema(description = "是否为系统内置数据", example = "false")
|
||||
@ExcelProperty(value = "系统内置")
|
||||
private Boolean isSystem;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@Schema(description = "描述", example = "测试部描述信息")
|
||||
@ExcelProperty(value = "描述")
|
||||
private String description;
|
||||
|
||||
@Override
|
||||
public Boolean getDisabled() {
|
||||
return this.getIsSystem();
|
||||
}
|
||||
}
|
@ -16,11 +16,19 @@
|
||||
|
||||
package top.charles7c.continew.admin.system.model.resp;
|
||||
|
||||
import cn.crane4j.annotation.AssembleMethod;
|
||||
import cn.crane4j.annotation.ContainerMethod;
|
||||
import cn.crane4j.annotation.Mapping;
|
||||
import cn.crane4j.annotation.condition.ConditionOnExpression;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import top.charles7c.continew.admin.common.enums.DisEnableStatusEnum;
|
||||
import top.charles7c.continew.admin.system.service.DeptService;
|
||||
import top.charles7c.continew.starter.extension.crud.annotation.TreeField;
|
||||
import top.charles7c.continew.starter.extension.crud.model.resp.BaseResp;
|
||||
import top.charles7c.continew.starter.extension.crud.converter.ExcelBaseEnumConverter;
|
||||
import top.charles7c.continew.starter.extension.crud.model.resp.BaseDetailResp;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
@ -31,9 +39,10 @@ import java.io.Serial;
|
||||
* @since 2023/1/22 13:53
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@TreeField(value = "id", nameKey = "name")
|
||||
@Schema(description = "部门信息")
|
||||
public class DeptResp extends BaseResp {
|
||||
public class DeptResp extends BaseDetailResp {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ -42,36 +51,50 @@ public class DeptResp extends BaseResp {
|
||||
* 名称
|
||||
*/
|
||||
@Schema(description = "名称", example = "测试部")
|
||||
@ExcelProperty(value = "名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 上级部门 ID
|
||||
*/
|
||||
@Schema(description = "上级部门 ID", example = "2")
|
||||
@ConditionOnExpression(value = "#target.parentId != 0")
|
||||
@AssembleMethod(targetType = DeptService.class, method = @ContainerMethod(bindMethod = "get", resultType = DeptResp.class), props = @Mapping(src = "name", ref = "parentName"))
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
* 上级部门
|
||||
*/
|
||||
@Schema(description = "排序", example = "3")
|
||||
private Integer sort;
|
||||
@Schema(description = "上级部门", example = "天津总部")
|
||||
@ExcelProperty(value = "上级部门")
|
||||
private String parentName;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Schema(description = "状态(1:启用;2:禁用)", type = "Integer", allowableValues = {"1", "2"}, example = "1")
|
||||
@ExcelProperty(value = "状态", converter = ExcelBaseEnumConverter.class)
|
||||
private DisEnableStatusEnum status;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@Schema(description = "排序", example = "3")
|
||||
@ExcelProperty(value = "排序")
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 是否为系统内置数据
|
||||
*/
|
||||
@Schema(description = "是否为系统内置数据", example = "false")
|
||||
@ExcelProperty(value = "系统内置")
|
||||
private Boolean isSystem;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@Schema(description = "描述", example = "测试部描述信息")
|
||||
@ExcelProperty(value = "描述")
|
||||
private String description;
|
||||
|
||||
@Override
|
||||
|
@ -125,7 +125,7 @@ public class UserDetailResp extends BaseDetailResp {
|
||||
* 部门 ID
|
||||
*/
|
||||
@Schema(description = "部门 ID", example = "5")
|
||||
@AssembleMethod(targetType = DeptService.class, method = @ContainerMethod(bindMethod = "get", resultType = DeptDetailResp.class), props = @Mapping(src = "name", ref = "deptName"))
|
||||
@AssembleMethod(targetType = DeptService.class, method = @ContainerMethod(bindMethod = "get", resultType = DeptResp.class), props = @Mapping(src = "name", ref = "deptName"))
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
|
@ -19,10 +19,9 @@ package top.charles7c.continew.admin.system.service;
|
||||
import top.charles7c.continew.admin.system.model.entity.DeptDO;
|
||||
import top.charles7c.continew.admin.system.model.query.DeptQuery;
|
||||
import top.charles7c.continew.admin.system.model.req.DeptReq;
|
||||
import top.charles7c.continew.admin.system.model.resp.DeptDetailResp;
|
||||
import top.charles7c.continew.admin.system.model.resp.DeptResp;
|
||||
import top.charles7c.continew.starter.extension.crud.service.BaseService;
|
||||
import top.charles7c.continew.starter.data.mybatis.plus.service.IService;
|
||||
import top.charles7c.continew.starter.extension.crud.service.BaseService;
|
||||
|
||||
/**
|
||||
* 部门业务接口
|
||||
@ -30,4 +29,4 @@ import top.charles7c.continew.starter.data.mybatis.plus.service.IService;
|
||||
* @author Charles7c
|
||||
* @since 2023/1/22 17:54
|
||||
*/
|
||||
public interface DeptService extends BaseService<DeptResp, DeptDetailResp, DeptQuery, DeptReq>, IService<DeptDO> {}
|
||||
public interface DeptService extends BaseService<DeptResp, DeptResp, DeptQuery, DeptReq>, IService<DeptDO> {}
|
||||
|
@ -27,7 +27,6 @@ import top.charles7c.continew.admin.system.mapper.DeptMapper;
|
||||
import top.charles7c.continew.admin.system.model.entity.DeptDO;
|
||||
import top.charles7c.continew.admin.system.model.query.DeptQuery;
|
||||
import top.charles7c.continew.admin.system.model.req.DeptReq;
|
||||
import top.charles7c.continew.admin.system.model.resp.DeptDetailResp;
|
||||
import top.charles7c.continew.admin.system.model.resp.DeptResp;
|
||||
import top.charles7c.continew.admin.system.service.DeptService;
|
||||
import top.charles7c.continew.admin.system.service.RoleDeptService;
|
||||
@ -49,7 +48,7 @@ import java.util.Optional;
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptResp, DeptDetailResp, DeptQuery, DeptReq> implements DeptService {
|
||||
public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptResp, DeptResp, DeptQuery, DeptReq> implements DeptService {
|
||||
|
||||
private final UserService userService;
|
||||
private final RoleDeptService roleDeptService;
|
||||
@ -60,7 +59,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptRes
|
||||
boolean isExists = this.isNameExists(name, req.getParentId(), null);
|
||||
CheckUtils.throwIf(isExists, "新增失败,[{}] 已存在", name);
|
||||
req.setAncestors(this.getAncestors(req.getParentId()));
|
||||
req.setStatus(DisEnableStatusEnum.DISABLE);
|
||||
req.setStatus(DisEnableStatusEnum.ENABLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,12 +17,9 @@
|
||||
package top.charles7c.continew.admin.webapi.system;
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import top.charles7c.continew.admin.system.model.query.DeptQuery;
|
||||
import top.charles7c.continew.admin.system.model.req.DeptReq;
|
||||
import top.charles7c.continew.admin.system.model.resp.DeptDetailResp;
|
||||
import top.charles7c.continew.admin.system.model.resp.DeptResp;
|
||||
import top.charles7c.continew.admin.system.service.DeptService;
|
||||
import top.charles7c.continew.starter.extension.crud.annotation.CrudRequestMapping;
|
||||
@ -38,4 +35,4 @@ import top.charles7c.continew.starter.extension.crud.enums.Api;
|
||||
@Tag(name = "部门管理 API")
|
||||
@RestController
|
||||
@CrudRequestMapping(value = "/system/dept", api = {Api.TREE, Api.GET, Api.ADD, Api.UPDATE, Api.DELETE, Api.EXPORT})
|
||||
public class DeptController extends BaseController<DeptService, DeptResp, DeptDetailResp, DeptQuery, DeptReq> {}
|
||||
public class DeptController extends BaseController<DeptService, DeptResp, DeptResp, DeptQuery, DeptReq> {}
|
||||
|
Loading…
Reference in New Issue
Block a user