mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-30 02:57:09 +08:00 
			
		
		
		
	refactor: 优化部门管理相关 API,合并 DeptResp 及 DeptDetailResp
This commit is contained in:
		| @@ -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> {} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user