diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcAppSysDictResultDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcAppSysDictResultDTO.java new file mode 100644 index 00000000..33384669 --- /dev/null +++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcAppSysDictResultDTO.java @@ -0,0 +1,48 @@ +package com.elink.esua.epdc.dto.epdc.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 数据字典信息 + */ +@Data +public class EpdcAppSysDictResultDTO implements Serializable { + private static final long serialVersionUID = -4403370952559152606L; + + /** + * ID + */ + private Long id; + + /** + * 上级ID,一级为0 + */ + private Long pid; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 字典名称 + */ + private String dictName; + + /** + * 字典值 + */ + private String dictValue; + + /** + * 备注 + */ + private String remark; + + /** + * 排序 + */ + private Integer sort; +} diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDictController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDictController.java index 9d9e3ec0..1d572346 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDictController.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDictController.java @@ -20,6 +20,7 @@ import com.elink.esua.epdc.dto.SysDictDTO; import com.elink.esua.epdc.dto.SysPopulationSimpleDictDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO; import com.elink.esua.epdc.dto.epdc.form.SysPopulationSimpleDictFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; import com.elink.esua.epdc.service.SysDictService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -145,6 +146,21 @@ public class SysDictController { return sysDictService.listSimpleDictInfo(dictType); } + /** + * 根据数据字典类型获取详细数据字典列表 + * + * @param dictType + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author Liuchuang + * @since 2020/10/12 9:27 + */ + @GetMapping("listFull/{dictType}") + @ApiOperation("字典分类数据") + public Result> listFullDictInfo(@PathVariable("dictType") String dictType) { + //字典分类数据 + return sysDictService.listFullDictInfo(dictType); + } + @PostMapping("listPopulationSimple") public Result> listPopulationSimple(@RequestBody SysPopulationSimpleDictFormDTO sysPopulationSimpleDictFormDTO) { //字典分类数据 diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/SysDictRedis.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/SysDictRedis.java index d67e65af..e392ba79 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/SysDictRedis.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/SysDictRedis.java @@ -21,6 +21,7 @@ import com.elink.esua.epdc.commons.tools.redis.RedisKeys; import com.elink.esua.epdc.commons.tools.redis.RedisUtils; import com.elink.esua.epdc.dto.SimpleAreaDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -51,6 +52,19 @@ public class SysDictRedis { return (List) redisUtils.get(dictKey); } + /** + * 根据数据字典类型,从redis获取详细数据字典列表 + * + * @param dictType 数据字典类型 + * @return java.util.List + * @author yujintao + * @date 2019/7/15 09:42 + */ + public List getFullDictList(String dictType) { + String dictKey = RedisKeys.getFullDictKey(dictType); + return (List) redisUtils.get(dictKey); + } + /** * 根据数据字典类型,将简版数据字典列表放入缓存 * @@ -65,6 +79,20 @@ public class SysDictRedis { redisUtils.set(dictKey, simpleDictList); } + /** + * 根据数据字典类型,将详细数据字典列表放入缓存 + * + * @param dictType 数据字典类型 + * @param fullDictList 列表 + * @return void + * @author yujintao + * @date 2019/7/15 09:50 + */ + public void setFullDictList(String dictType, List fullDictList) { + String dictKey = RedisKeys.getFullDictKey(dictType); + redisUtils.set(dictKey, fullDictList); + } + /** * 根据数据字典类型,从redis删除简版数据字典列表 * @@ -75,7 +103,9 @@ public class SysDictRedis { */ public void removeSimpleDictList(String dictType) { String dictKey = RedisKeys.getSimpleDictKey(dictType); + String fullDictKey = RedisKeys.getFullDictKey(dictType); redisUtils.delete(dictKey); + redisUtils.delete(fullDictKey); } } \ No newline at end of file diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDictService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDictService.java index 652b7dd0..4258d768 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDictService.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDictService.java @@ -15,6 +15,7 @@ import com.elink.esua.epdc.dto.SysDictDTO; import com.elink.esua.epdc.dto.SysPopulationSimpleDictDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO; import com.elink.esua.epdc.dto.epdc.form.SysPopulationSimpleDictFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; import com.elink.esua.epdc.entity.SysDictEntity; import java.util.List; @@ -52,6 +53,16 @@ public interface SysDictService extends BaseService { */ Result> listSimpleDictInfo(String dictType); + /** + * 根据数据字典类型获取详细数据字典列表 + * + * @param dictType + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author Liuchuang + * @since 2020/10/12 9:25 + */ + Result> listFullDictInfo(String dictType); + /** * 根据ID删除 * diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDictServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDictServiceImpl.java index ff7ed182..5b582557 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDictServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDictServiceImpl.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.tools.constant.Constant; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; @@ -20,6 +21,7 @@ import com.elink.esua.epdc.dto.SysDictDTO; import com.elink.esua.epdc.dto.SysPopulationSimpleDictDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO; import com.elink.esua.epdc.dto.epdc.form.SysPopulationSimpleDictFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; import com.elink.esua.epdc.entity.SysDictEntity; import com.elink.esua.epdc.redis.SysDictRedis; import com.elink.esua.epdc.service.SysDictService; @@ -193,4 +195,35 @@ public class SysDictServiceImpl extends BaseServiceImpl>().ok(simpleDictList); } + + @Override + public Result> listFullDictInfo(String dictType) { + List fullDictList = Lists.newArrayList(); + + try { + if (StringUtils.isNotBlank(dictType)) { + + List dictList = dictRedis.getFullDictList(dictType); + if (null != dictList) { + return new Result>().ok(dictList); + } + + QueryWrapper sdWrapper = new QueryWrapper<>(); + sdWrapper.select("id", "pid", "dict_type", "dict_value", "dict_name", "remark", "sort"); + sdWrapper.eq("dict_type", dictType); + sdWrapper.eq(Constant.DEL_FLAG, NumConstant.ZERO); + sdWrapper.ne("dict_value", ""); + sdWrapper.isNotNull("dict_value"); + sdWrapper.orderByAsc("SORT", Constant.CREATE_DATE); + List entityList = baseDao.selectList(sdWrapper); + if (!entityList.isEmpty()) { + fullDictList = ConvertUtils.sourceToTarget(entityList, EpdcAppSysDictResultDTO.class); + dictRedis.setFullDictList(dictType, fullDictList); + } + } + } catch (Exception e) { + log.error("获取数据字典列表失败,错误信息{}", e.getMessage()); + } + return new Result>().ok(fullDictList); + } } diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java index 1246d62a..23637390 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java @@ -103,6 +103,18 @@ public class RedisKeys { return rootPrefix.concat("config:simple:dict:").concat(dictType); } + /** + * 获取详细数据字典key + * + * @param dictType 数据字典类型 + * @return java.lang.String + * @author yujintao + * @date 2019/9/3 16:28 + */ + public static String getFullDictKey(String dictType) { + return rootPrefix.concat("config:full:dict:").concat(dictType); + } + /** * 拼接手机验证码key * diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiDicController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiDicController.java index 2a609f03..53522ec8 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiDicController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiDicController.java @@ -1,12 +1,17 @@ package com.elink.esua.epdc.controller; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; import com.elink.esua.epdc.service.AdminService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * 字典 * @Auther: zhangyong @@ -19,7 +24,7 @@ public class ApiDicController { @Autowired private AdminService adminService; - /* + /** * 获取默认网格信息 * @param * @return com.elink.esua.epdc.commons.tools.utils.Result @@ -31,4 +36,17 @@ public class ApiDicController { String dicType = "default_grid"; return adminService.getDefaultGridInfo(dicType); } + + /** + * 获取字典信息 + * + * @param dictType + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author Liuchuang + * @since 2020/10/12 9:34 + */ + @GetMapping("/getFullDictInfo/{dictType}") + public Result> getFullDictInfo(@PathVariable("dictType") String dictType) { + return adminService.listFullDictInfo(dictType); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java index ee27fe40..3bb04b17 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java @@ -6,6 +6,7 @@ import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; @@ -145,4 +146,15 @@ public interface AdminFeignClient { **/ @PostMapping(value = "sys/user/getUserInfoByGridAndMobile", consumes = MediaType.APPLICATION_JSON_VALUE) Result getUserInfoByGridAndMobile(@RequestBody EpdcScripUserInfoFormDTO epdcScripUserInfoFormDTO); + + /** + * 获取字典信息 + * + * @param dicType + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author Liuchuang + * @since 2020/10/12 9:39 + */ + @GetMapping("/sys/dict/listFull/{dictType}") + Result> listFullDictInfo(@PathVariable("dictType") String dicType); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java index 45e9f83d..a0090c3b 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java @@ -7,8 +7,10 @@ import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.PathVariable; import java.util.List; @@ -74,4 +76,9 @@ public class AdminFeignClientFallback implements AdminFeignClient { public Result getUserInfoByGridAndMobile(EpdcScripUserInfoFormDTO epdcScripUserInfoFormDTO) { return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getUserInfoByGridAndMobile", epdcScripUserInfoFormDTO); } + + @Override + public Result> listFullDictInfo(String dicType) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listFullDictInfo", dicType); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java index c2e2e1d2..c8d94687 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java @@ -2,6 +2,9 @@ package com.elink.esua.epdc.service; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; + +import java.util.List; /** * 管理端相关接口 @@ -22,7 +25,7 @@ public interface AdminService { */ Result getCompleteDeptName(Long gridId); - /* + /** * 根据字典类型 获取网格信息 * @param dicType * @return com.elink.esua.epdc.commons.tools.utils.Result @@ -38,4 +41,14 @@ public interface AdminService { * @return com.elink.esua.epdc.commons.tools.utils.Result **/ Result getScrip(TokenDto userDetail); + + /** + * 获取字典信息 + * + * @param dicType + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author Liuchuang + * @since 2020/10/12 9:35 + */ + Result> listFullDictInfo(String dicType); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java index 2e89a99d..d8906502 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java @@ -5,6 +5,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.CompleteDeptDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.service.AdminService; import org.springframework.beans.factory.annotation.Autowired; @@ -59,4 +60,9 @@ public class AdminServiceImpl implements AdminService { epdcScripUserInfoFormDTO.setMobile(userDetail.getMobile()); return adminFeignClient.getUserInfoByGridAndMobile(epdcScripUserInfoFormDTO); } + + @Override + public Result> listFullDictInfo(String dicType) { + return adminFeignClient.listFullDictInfo(dicType); + } }