|
@@ -3,10 +3,14 @@ package com.kmall.api.api;
|
|
|
import com.kmall.api.annotation.IgnoreAuth;
|
|
|
import com.kmall.common.cache.RegionCacheUtil;
|
|
|
import com.kmall.api.entity.RegionVo;
|
|
|
+import com.kmall.common.dao.SysRegionDao;
|
|
|
import com.kmall.common.entity.SysRegionEntity;
|
|
|
import com.kmall.api.service.ApiTopicService;
|
|
|
import com.kmall.api.util.ApiBaseAction;
|
|
|
+import com.kmall.common.security.session.JedisSessionDAO;
|
|
|
+import com.kmall.common.service.SysRegionService;
|
|
|
import com.kmall.common.utils.StringUtils;
|
|
|
+import com.kmall.common.utils.redis.JedisUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@@ -27,13 +31,40 @@ import java.util.Map;
|
|
|
public class ApiRegionController extends ApiBaseAction {
|
|
|
@Autowired
|
|
|
private ApiTopicService topicService;
|
|
|
+ @Autowired
|
|
|
+ private SysRegionService sysRegionService;
|
|
|
+ // session 在redis过期时间是30分钟30*60
|
|
|
+ private static int expireTime = 1800;
|
|
|
|
|
|
/**
|
|
|
*/
|
|
|
@IgnoreAuth
|
|
|
@GetMapping("list")
|
|
|
public Object list(Integer parentId) {
|
|
|
- List<SysRegionEntity> regionEntityList = RegionCacheUtil.getChildrenByParentId(parentId);
|
|
|
+ List<SysRegionEntity> regionEntityList = new ArrayList();
|
|
|
+ Map<String,Object> queryListMap = new HashMap<>();
|
|
|
+ Map<String, Object> listMap = JedisUtil.getObjectMap("sysRegionEntityList");
|
|
|
+ if(listMap == null){
|
|
|
+ List<SysRegionEntity> sysRegionEntityList= sysRegionService.queryList(new HashMap<String, Object>());
|
|
|
+ queryListMap.put("sysRegionEntityList",sysRegionEntityList);
|
|
|
+ JedisUtil.setObjectMap("sysRegionEntityList", queryListMap, expireTime);
|
|
|
+ for (SysRegionEntity areaVo : sysRegionEntityList) {
|
|
|
+ if (null != areaVo.getParentId() && parentId.equals(areaVo.getParentId())) {
|
|
|
+ regionEntityList.add(areaVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ Map<byte[], byte[]> map = new HashMap<byte[], byte[]>();
|
|
|
+ for (Map.Entry<String, Object> e : listMap.entrySet()) {
|
|
|
+ List<Object> objectList = (List<Object>)listMap.get(e.getKey());
|
|
|
+ for (Object o:objectList){
|
|
|
+ SysRegionEntity sysRegionEntity = (SysRegionEntity)o;
|
|
|
+ if (null != sysRegionEntity.getParentId() && parentId.equals(sysRegionEntity.getParentId())) {
|
|
|
+ regionEntityList.add(sysRegionEntity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
List<RegionVo> regionVoList = new ArrayList();
|
|
|
if (null != regionEntityList && regionEntityList.size() > 0) {
|
|
|
for (SysRegionEntity sysRegionEntity : regionEntityList) {
|