From 427bb87e27323c5f9ade5e681965b8beba21d9c5 Mon Sep 17 00:00:00 2001 From: songguoqiang Date: Mon, 6 Nov 2023 08:14:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E5=85=B8=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/dict/DictTypeController.java | 31 +++++++++++++++++++ .../dict/vo/type/DictTypeSimpleRespVO.java | 5 +++ .../system/dal/mysql/dict/DictTypeMapper.java | 7 +++++ .../system/service/dict/DictTypeService.java | 9 ++++++ .../service/dict/DictTypeServiceImpl.java | 6 ++++ 5 files changed, 58 insertions(+) diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/dict/DictTypeController.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/dict/DictTypeController.java index 1581af29..38d93b40 100644 --- a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/dict/DictTypeController.java +++ b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/dict/DictTypeController.java @@ -1,13 +1,20 @@ package com.win.module.system.controller.dict; +import com.win.framework.common.enums.CommonStatusEnum; import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.PageResult; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; +import com.win.module.system.controller.dict.vo.data.DictDataExcelVO; +import com.win.module.system.controller.dict.vo.data.DictDataExportReqVO; import com.win.module.system.controller.dict.vo.type.*; +import com.win.module.system.convert.dict.DictDataConvert; import com.win.module.system.convert.dict.DictTypeConvert; +import com.win.module.system.dal.dataobject.dict.DictDataDO; import com.win.module.system.dal.dataobject.dict.DictTypeDO; +import com.win.module.system.service.dict.DictDataService; import com.win.module.system.service.dict.DictTypeService; +import io.swagger.v3.core.util.Json; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -19,7 +26,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.util.Collections; import java.util.List; +import java.util.Map; import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @@ -33,6 +42,9 @@ public class DictTypeController { @Resource private DictTypeService dictTypeService; + @Resource + private DictDataService dictDataService; + @PostMapping("/create") @Operation(summary = "创建字典类型") @PreAuthorize("@ss.hasPermission('system:dict:create')") @@ -92,4 +104,23 @@ public class DictTypeController { ExcelUtils.write(response, "字典类型.xls", "类型列表", DictTypeExcelVO.class, data); } + @Operation(summary = "/根据类型查询展示类型下所有详细列表") + @PostMapping("/getDictByTypes") + @PreAuthorize("@ss.hasPermission('system:dict:query')") + public CommonResult> getByTypes(@RequestBody Map> map) { + System.out.println(Json.pretty(map)); + List types = map.get("types"); + List dictByTypes = dictTypeService.getDictByTypes(types, Collections.singleton(CommonStatusEnum.ENABLE.getStatus())); + List result = DictTypeConvert.INSTANCE.convertList(dictByTypes); + for (DictTypeSimpleRespVO en:result){ + DictDataExportReqVO dictDataExportReqVO = new DictDataExportReqVO(); + dictDataExportReqVO.setDictType(en.getType()); + dictDataExportReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + List dictDataList = dictDataService.getDictDataList(dictDataExportReqVO); + List dictDataExcelVOS = DictDataConvert.INSTANCE.convertList02(dictDataList); + en.setSubList(dictDataExcelVOS); + } + return success(result); + } + } diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/dict/vo/type/DictTypeSimpleRespVO.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/dict/vo/type/DictTypeSimpleRespVO.java index b481b1f6..919baf70 100644 --- a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/dict/vo/type/DictTypeSimpleRespVO.java +++ b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/dict/vo/type/DictTypeSimpleRespVO.java @@ -5,6 +5,8 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @Schema(description = "管理后台 - 字典类型精简信息 Response VO") @Data @NoArgsConstructor @@ -20,4 +22,7 @@ public class DictTypeSimpleRespVO { @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") private String type; + @Schema(description = "字典表子表system_dict_data详细列表", requiredMode = Schema.RequiredMode.REQUIRED) + private List subList; + } diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/dal/mysql/dict/DictTypeMapper.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/dal/mysql/dict/DictTypeMapper.java index c1606115..f02ba412 100644 --- a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/dal/mysql/dict/DictTypeMapper.java +++ b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/dal/mysql/dict/DictTypeMapper.java @@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; import java.time.LocalDateTime; +import java.util.Collection; import java.util.List; @Mapper @@ -45,4 +46,10 @@ public interface DictTypeMapper extends BaseMapperX { @Update("UPDATE system_dict_type SET deleted = 1, deleted_time = #{deletedTime} WHERE id = #{id}") void updateToDelete(@Param("id") Long id, @Param("deletedTime") LocalDateTime deletedTime); + + default List selectList(Collection types, Collection statuses) { + return selectList(new LambdaQueryWrapperX() + .inIfPresent(DictTypeDO::getType, types) + .inIfPresent(DictTypeDO::getStatus, statuses)); + } } diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictTypeService.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictTypeService.java index d40a4273..e5aba655 100644 --- a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictTypeService.java +++ b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictTypeService.java @@ -6,7 +6,9 @@ import com.win.module.system.controller.dict.vo.type.DictTypeExportReqVO; import com.win.module.system.controller.dict.vo.type.DictTypePageReqVO; import com.win.module.system.controller.dict.vo.type.DictTypeUpdateReqVO; import com.win.module.system.dal.dataobject.dict.DictTypeDO; +import org.springframework.lang.Nullable; +import java.util.Collection; import java.util.List; /** @@ -77,4 +79,11 @@ public interface DictTypeService { */ List getDictTypeList(); + /** + * 获得符合字典类型组合条件的列表 + * @param types 字典类型数组。如果为空,不进行筛选 + * @return 字典类型列表详细 + */ + List getDictByTypes(@Nullable Collection types, @Nullable Collection statuses); + } diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictTypeServiceImpl.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictTypeServiceImpl.java index d605e9c6..f0a8b88f 100644 --- a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictTypeServiceImpl.java +++ b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictTypeServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -93,6 +94,11 @@ public class DictTypeServiceImpl implements DictTypeService { return dictTypeMapper.selectList(); } + @Override + public List getDictByTypes(Collection types, Collection statuses) { + return dictTypeMapper.selectList(types,statuses); + } + private void validateDictTypeForCreateOrUpdate(Long id, String name, String type) { // 校验自己存在 validateDictTypeExists(id);