diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/AreaDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/AreaDTO.java
new file mode 100644
index 000000000..a8335772d
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/AreaDTO.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 行政区划
+ *
+ * @author yujintao
+ * @date 2019/9/3 16:22
+ */
+@Data
+public class AreaDTO implements Serializable {
+
+ private static final long serialVersionUID = 9173956433924027751L;
+
+ /**
+ * ID
+ */
+ private Integer id;
+ /**
+ * 父级ID
+ */
+ private Integer parentId;
+ /**
+ * 名称
+ */
+ private String name;
+ /**
+ * 简称
+ */
+ private String shortName;
+ /**
+ * 经度
+ */
+ private Float longitude;
+ /**
+ * 纬度
+ */
+ private Float latitude;
+ /**
+ * 等级(1省/直辖市,2地级市,3区县,4镇/街道)
+ */
+ private Integer level;
+ /**
+ * 排序
+ */
+ private Integer sort;
+ /**
+ * 状态(0禁用/1启用)
+ */
+ private Integer status;
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SimpleAreaDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SimpleAreaDTO.java
new file mode 100644
index 000000000..1ab29bab7
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SimpleAreaDTO.java
@@ -0,0 +1,28 @@
+
+package com.elink.esua.epdc.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 行政区划简要信息
+ *
+ * @author yujintao
+ * @date 2019/9/3 16:22
+ */
+@Data
+public class SimpleAreaDTO implements Serializable {
+
+ private static final long serialVersionUID = -3243672014476007901L;
+
+ /**
+ * ID
+ */
+ private Integer id;
+ /**
+ * 名称
+ */
+ private String name;
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysSimpleDictDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysSimpleDictDTO.java
new file mode 100644
index 000000000..493c0f1cf
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysSimpleDictDTO.java
@@ -0,0 +1,31 @@
+
+package com.elink.esua.epdc.dto;
+
+import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 数据字典简要信息
+ *
+ * @author yujintao
+ * @date 2019/7/15 09:29
+ */
+@Data
+@ApiModel(value = "数据字典")
+public class SysSimpleDictDTO implements Serializable {
+
+ private static final long serialVersionUID = -4827806651372425347L;
+
+ @ApiModelProperty(value = "字典名称")
+ @NotBlank(message = "{sysdict.name.require}", groups = DefaultGroup.class)
+ private String dictName;
+
+ @ApiModelProperty(value = "字典值")
+ private String dictValue;
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/AreaController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/AreaController.java
new file mode 100644
index 000000000..13bb88cbd
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/AreaController.java
@@ -0,0 +1,42 @@
+
+package com.elink.esua.epdc.controller;
+
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.SimpleAreaDTO;
+import com.elink.esua.epdc.service.AreaService;
+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;
+
+
+/**
+ * 获取行政区划
+ *
+ * @author liuhongwei @elink-cn.com
+ * @since v1.0.0 2019-05-13
+ */
+@RestController
+@RequestMapping("area")
+public class AreaController {
+
+ @Autowired
+ private AreaService areaService;
+
+ /**
+ * 根据区划ID,获取下属区域列表
+ *
+ * @param areaId
+ * @return com.elink.esua.commons.tools.utils.Result>
+ * @author yujintao
+ * @date 2019/9/3 16:28
+ */
+ @GetMapping("listSimple/{areaId}")
+ public Result> listSimpleAreaInfo(@PathVariable("areaId") String areaId) {
+ return this.areaService.listSimpleAreaInfo(areaId);
+ }
+
+}
\ No newline at end of file
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 075b9d134..806100627 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
@@ -17,6 +17,7 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.SysDictDTO;
+import com.elink.esua.epdc.dto.SysSimpleDictDTO;
import com.elink.esua.epdc.service.SysDictService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -116,4 +117,31 @@ public class SysDictController {
return new Result();
}
+ /**
+ * 根据数据字典类型获取简版数据字典列表,用于页面下拉菜单
+ *
+ * @param dictType 数据字典类型
+ * @return com.elink.esua.commons.tools.utils.Result>
+ * @author yujintao
+ * @date 2019/7/15 09:33
+ */
+ @GetMapping("listSimple/{dictType}")
+ @ApiOperation("字典分类数据")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "dictName", value = "字典名称", paramType = "query", dataType = "String")
+ })
+ public Result> listSimpleDictInfo(@ApiIgnore @PathVariable("dictType") String dictType) {
+ //字典分类数据
+ return sysDictService.listSimpleDictInfo(dictType);
+ }
+
+ @DeleteMapping("{id}")
+ @ApiOperation("删除")
+ @LogOperation("Delete Dict")
+ public Result delete(@PathVariable Long id) {
+ //效验数据
+ sysDictService.delete(id);
+ return new Result();
+ }
+
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/AreaDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/AreaDao.java
new file mode 100644
index 000000000..3a9944a39
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/AreaDao.java
@@ -0,0 +1,16 @@
+
+package com.elink.esua.epdc.dao;
+
+import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
+import com.elink.esua.epdc.entity.AreaEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * @author yujintao
+ * @date 2019/9/3 16:54
+ */
+@Mapper
+public interface AreaDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/AreaEntity.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/AreaEntity.java
new file mode 100644
index 000000000..c5d58ad5b
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/AreaEntity.java
@@ -0,0 +1,60 @@
+package com.elink.esua.epdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 行政区划
+ *
+ * @author yujintao
+ * @date 2019/9/3 16:25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("area")
+public class AreaEntity implements Serializable {
+
+ private static final long serialVersionUID = -2139014717755304245L;
+
+ /**
+ * ID
+ */
+ private Integer id;
+ /**
+ * 父级ID
+ */
+ private Integer parentId;
+ /**
+ * 名称
+ */
+ private String name;
+ /**
+ * 简称
+ */
+ private String shortName;
+ /**
+ * 经度
+ */
+ private Float longitude;
+ /**
+ * 纬度
+ */
+ private Float latitude;
+ /**
+ * 等级(1省/直辖市,2地级市,3区县,4镇/街道)
+ */
+ private Integer level;
+ /**
+ * 排序
+ */
+ private Integer sort;
+ /**
+ * 状态(0禁用/1启用)
+ */
+ private Integer status;
+
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/AreaRedis.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/AreaRedis.java
new file mode 100644
index 000000000..2dbe2158a
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/AreaRedis.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.redis;
+
+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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 区划信息表
+ *
+ * @author yujintao yujintao@elink-cn.com
+ * @since v1.0.0 2019-05-08
+ */
+@Component
+public class AreaRedis {
+
+ @Autowired
+ private RedisUtils redisUtils;
+
+ /**
+ * 取出区划信息
+ *
+ * @param areaId 区域ID
+ * @return java.lang.String
+ * @author yujintao
+ * @date 2019/6/13 11:05
+ */
+ public List getSimpleAreaList(String areaId) {
+ String configAreaKey = RedisKeys.getSimpleAreaKey(areaId);
+ return (List) redisUtils.get(configAreaKey);
+ }
+
+ /**
+ * 缓存区划信息
+ *
+ * @param areaId
+ * @param areaDtoList
+ * @return void
+ * @author yujintao
+ * @date 2019/6/13 11:02
+ */
+ public void setSimpleAreaList(String areaId, List areaDtoList) {
+ String configAreaKey = RedisKeys.getSimpleAreaKey(areaId);
+ redisUtils.set(configAreaKey, areaDtoList);
+ }
+
+}
\ No newline at end of file
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
new file mode 100644
index 000000000..d67e65afa
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/SysDictRedis.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.redis;
+
+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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 区划信息表
+ *
+ * @author yujintao yujintao@elink-cn.com
+ * @since v1.0.0 2019-05-08
+ */
+@Component
+public class SysDictRedis {
+
+ @Autowired
+ private RedisUtils redisUtils;
+
+ /**
+ * 根据数据字典类型,从redis获取简版数据字典列表
+ *
+ * @param dictType 数据字典类型
+ * @return java.util.List
+ * @author yujintao
+ * @date 2019/7/15 09:42
+ */
+ public List getSimpleDictList(String dictType) {
+ String dictKey = RedisKeys.getSimpleDictKey(dictType);
+ return (List) redisUtils.get(dictKey);
+ }
+
+ /**
+ * 根据数据字典类型,将简版数据字典列表放入缓存
+ *
+ * @param dictType 数据字典类型
+ * @param simpleDictList 列表
+ * @return void
+ * @author yujintao
+ * @date 2019/7/15 09:50
+ */
+ public void setSimpleDictList(String dictType, List simpleDictList) {
+ String dictKey = RedisKeys.getSimpleDictKey(dictType);
+ redisUtils.set(dictKey, simpleDictList);
+ }
+
+ /**
+ * 根据数据字典类型,从redis删除简版数据字典列表
+ *
+ * @param dictType
+ * @return void
+ * @author yujintao
+ * @date 2019/7/15 10:10
+ */
+ public void removeSimpleDictList(String dictType) {
+ String dictKey = RedisKeys.getSimpleDictKey(dictType);
+ redisUtils.delete(dictKey);
+ }
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/AreaService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/AreaService.java
new file mode 100644
index 000000000..72a0ce258
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/AreaService.java
@@ -0,0 +1,29 @@
+
+package com.elink.esua.epdc.service;
+
+import com.elink.esua.epdc.commons.mybatis.service.BaseService;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.SimpleAreaDTO;
+import com.elink.esua.epdc.entity.AreaEntity;
+
+import java.util.List;
+
+/**
+ * 行政区划
+ *
+ * @author yujintao
+ * @date 2019/9/3 16:54
+ */
+public interface AreaService extends BaseService {
+
+
+ /**
+ * 根据区划ID,获取下属区域列表
+ *
+ * @param areaId
+ * @return com.elink.esua.commons.tools.utils.Result>
+ * @author yujintao
+ * @date 2019/6/13 10:35
+ */
+ Result> listSimpleAreaInfo(String areaId);
+}
\ 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 e6585dde1..b6a4fe634 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
@@ -10,7 +10,9 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.SysDictDTO;
+import com.elink.esua.epdc.dto.SysSimpleDictDTO;
import com.elink.esua.epdc.entity.SysDictEntity;
import java.util.List;
@@ -35,4 +37,24 @@ public interface SysDictService extends BaseService {
void update(SysDictDTO dto);
void delete(Long[] ids);
+
+ /**
+ * 根据数据字典类型获取简版数据字典列表,用于页面下拉菜单
+ *
+ * @param dictType 数据字典类型
+ * @return com.elink.esua.commons.tools.utils.Result>
+ * @author yujintao
+ * @date 2019/7/15 09:33
+ */
+ Result> listSimpleDictInfo(String dictType);
+
+ /**
+ * 根据ID删除
+ *
+ * @param id
+ * @return void
+ * @author yujintao
+ * @date 2019/7/15 10:14
+ */
+ void delete(Long id);
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/AreaServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/AreaServiceImpl.java
new file mode 100644
index 000000000..7bf4a8b76
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/AreaServiceImpl.java
@@ -0,0 +1,65 @@
+
+package com.elink.esua.epdc.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
+import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dao.AreaDao;
+import com.elink.esua.epdc.dto.SimpleAreaDTO;
+import com.elink.esua.epdc.entity.AreaEntity;
+import com.elink.esua.epdc.redis.AreaRedis;
+import com.elink.esua.epdc.service.AreaService;
+import com.google.common.collect.Lists;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * @author yujintao
+ * @date 2019/9/3 16:55
+ */
+@Slf4j
+@Service
+public class AreaServiceImpl extends BaseServiceImpl implements AreaService {
+
+
+ @Autowired
+ private AreaRedis areaRedis;
+
+ @Override
+ public Result> listSimpleAreaInfo(String areaId) {
+
+ List simpleAreaList = Lists.newArrayList();
+
+ try {
+ if (StringUtils.isNotBlank(areaId)) {
+
+ List areaList = areaRedis.getSimpleAreaList(areaId);
+ if (null != areaList) {
+ return new Result>().ok(areaList);
+ }
+
+ Integer pid = Integer.parseInt(areaId);
+ QueryWrapper arWrapper = new QueryWrapper<>();
+ arWrapper.select("ID", "NAME");
+ arWrapper.eq("PARENT_ID", pid);
+ arWrapper.eq("STATUS", NumConstant.ONE);
+ arWrapper.orderByAsc("LEVEL", "SORT");
+ List entityList = baseDao.selectList(arWrapper);
+ if (!entityList.isEmpty()) {
+ simpleAreaList = ConvertUtils.sourceToTarget(entityList, SimpleAreaDTO.class);
+ areaRedis.setSimpleAreaList(areaId, simpleAreaList);
+ }
+ }
+ } catch (Exception e) {
+ log.error("获取区划信息失败,错误信息{}", e.getMessage());
+ }
+ return new Result>().ok(simpleAreaList);
+ }
+}
\ No newline at end of file
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 bcab87744..5c6f0d565 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
@@ -15,11 +15,17 @@ 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.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.SysDictDao;
import com.elink.esua.epdc.dto.SysDictDTO;
+import com.elink.esua.epdc.dto.SysSimpleDictDTO;
import com.elink.esua.epdc.entity.SysDictEntity;
+import com.elink.esua.epdc.redis.SysDictRedis;
import com.elink.esua.epdc.service.SysDictService;
+import com.google.common.collect.Lists;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -32,9 +38,13 @@ import java.util.Map;
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
+@Slf4j
@Service
public class SysDictServiceImpl extends BaseServiceImpl implements SysDictService {
+ @Autowired
+ private SysDictRedis dictRedis;
+
@Override
public PageData page(Map params) {
QueryWrapper wrapper = getWrapper(params);
@@ -82,16 +92,16 @@ public class SysDictServiceImpl extends BaseServiceImpl> listSimpleDictInfo(String dictType) {
+ List simpleDictList = Lists.newArrayList();
+
+ try {
+ if (StringUtils.isNotBlank(dictType)) {
+
+ List dictList = dictRedis.getSimpleDictList(dictType);
+ if (null != dictList) {
+ return new Result>().ok(dictList);
+ }
+
+ QueryWrapper sdWrapper = new QueryWrapper<>();
+ sdWrapper.select("dict_value", "dict_name");
+ sdWrapper.eq("dict_type", dictType);
+ sdWrapper.ne("dict_value", "");
+ sdWrapper.isNotNull("dict_value");
+ sdWrapper.orderByAsc("SORT", Constant.CREATE_DATE);
+ List entityList = baseDao.selectList(sdWrapper);
+ if (!entityList.isEmpty()) {
+ simpleDictList = ConvertUtils.sourceToTarget(entityList, SysSimpleDictDTO.class);
+ dictRedis.setSimpleDictList(dictType, simpleDictList);
+ }
+ }
+ } catch (Exception e) {
+ log.error("获取数据字典列表失败,错误信息{}", e.getMessage());
+ }
+ return new Result>().ok(simpleDictList);
+ }
}
diff --git a/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/service/impl/BaseServiceImpl.java b/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/service/impl/BaseServiceImpl.java
index 461940eeb..bc7f6b44f 100644
--- a/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/service/impl/BaseServiceImpl.java
+++ b/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/service/impl/BaseServiceImpl.java
@@ -12,11 +12,11 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.enums.SqlMethod;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.core.toolkit.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
-import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.mybatis.utils.EntityUtils;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.page.PageData;
@@ -39,16 +39,53 @@ import java.util.Map;
* @since 1.0.0
*/
public abstract class BaseServiceImpl, T> implements BaseService {
+
@Autowired
protected M baseDao;
/**
* 获取分页对象
- * @param params 分页查询参数
- * @param defaultOrderField 默认排序字段
- * @param isAsc 排序方式
+ *
+ * @param params 分页查询参数
+ * @param defaultOrderField 默认排序字段
+ * @param isAsc 排序方式
*/
protected IPage getPage(Map params, String defaultOrderField, boolean isAsc) {
+ Page page = initPage(params);
+
+ //默认排序
+ if (StringUtils.isNotEmpty(defaultOrderField)) {
+ if (isAsc) {
+ page.addOrder(OrderItem.asc(defaultOrderField));
+ } else {
+ page.addOrder(OrderItem.desc(defaultOrderField));
+ }
+ }
+ return page;
+ }
+
+ /**
+ * 获取分页对象
+ *
+ * @param params 分页查询参数
+ * @return com.baomidou.mybatisplus.core.metadata.IPage
+ * @author yujintao
+ * @date 2019/6/12 10:57
+ */
+ protected IPage getPage(Map params) {
+ Page page = initPage(params);
+ return page;
+ }
+
+ /**
+ * 初始化分页对象
+ *
+ * @param params 分页查询参数
+ * @return com.baomidou.mybatisplus.core.metadata.IPage
+ * @author yujintao
+ * @date 2019/6/12 10:57
+ */
+ private Page initPage(Map params) {
//分页参数
long curPage = 1;
long limit = 10;
@@ -73,19 +110,12 @@ public abstract class BaseServiceImpl, T> implements Bas
//前端字段排序
if (StringUtils.isNotEmpty(orderField) && StringUtils.isNotEmpty(order)) {
if (Constant.ASC.equalsIgnoreCase(order)) {
- return page.setAsc(orderField);
+ return page.addOrder(OrderItem.asc(orderField));
} else {
- return page.setDesc(orderField);
+ return page.addOrder(OrderItem.desc(orderField));
}
}
- //默认排序
- if (isAsc) {
- page.setAsc(defaultOrderField);
- } else {
- page.setDesc(defaultOrderField);
- }
-
return page;
}
@@ -113,9 +143,9 @@ public abstract class BaseServiceImpl, T> implements Bas
/**
* 逻辑删除
+ *
* @param ids ids
* @param entity 实体
- *
* @return boolean
*/
@Override
@@ -156,6 +186,7 @@ public abstract class BaseServiceImpl, T> implements Bas
/**
* 释放sqlSession
+ *
* @param sqlSession session
*/
protected void closeSqlSession(SqlSession sqlSession) {
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 ae522f7c5..494c8c448 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
@@ -73,4 +73,28 @@ public class RedisKeys {
public static String getCpUserKey(String id) {
return "sys:security:cpuser:" + id;
}
+
+ /**
+ * 获取简要区划信息key
+ *
+ * @param areaId 行政区划ID
+ * @return java.lang.String
+ * @author yujintao
+ * @date 2019/9/3 16:28
+ */
+ public static String getSimpleAreaKey(String areaId) {
+ return "epdc:config:simple:area:" + areaId;
+ }
+
+ /**
+ * 获取简要数据字典key
+ *
+ * @param dictType 数据字典类型
+ * @return java.lang.String
+ * @author yujintao
+ * @date 2019/9/3 16:28
+ */
+ public static String getSimpleDictKey(String dictType) {
+ return "epdc:config:simple:dict:" + dictType;
+ }
}