Commit 38b3ff9d by 田超

Merge branch 'feature/getCityByPY2' into 'master'

feat: [none] 接口优化getCitysByPY

See merge request rays/pcloud-book!911
parents 7428929e eb3da907
......@@ -384,4 +384,8 @@ public class BookConstant {
"color:#000;font-size: 16px;font-weight: bold;\"> ${groupName}</div></header><div style=\"padding:10px 20px;\"> <p style=\"margin: 10px 0 20px;text-align:center;\">" +
" <span style=\"padding:2px 35px;background-color: #dbf5d9;color:#5bc341;border-radius: 35px;\">\uD83D\uDC47长按识别下面二维码</span> </p>" +
"<img style=\"width:100%;\" src=\"${qrcodeUrl}\" alt=\"\"></div></div>";
public static final String BOOK_CITY_MAP = CacheConstant.BOOK + "BOOK_CITY_MAP";
public static final Integer DEFAULT_DAY_TIMEOUT = 24 * 60 * 60;
}
......@@ -2,10 +2,13 @@ package com.pcloud.book.record.biz.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.pcloud.book.applet.biz.AppletBookClassifyBiz;
import com.pcloud.book.applet.dto.AppletBookClassifyDTO;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.dao.BookAdviserDao;
import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dto.BookAdviserDto;
......@@ -36,6 +39,7 @@ import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.json.JSONUtils;
import com.pcloud.common.utils.string.StringUtil;
import java.io.BufferedReader;
......@@ -284,13 +288,42 @@ public class BookBrowseRecordBizImpl implements BookBrowseRecordBiz {
@Override
@ParamLog("获取地图数据")
public Map<String, List<RegionMap>> getCitysByPY(String keyword) {
Map<String, List<RegionMap>> regionMap = new HashMap<>(30);
//全部数据从缓存中取
if (StringUtil.isEmpty(keyword)) {
String redisKey = BookConstant.BOOK_CITY_MAP;
Map<String, String> regionStringMap = JedisClusterUtils.hgetAll(redisKey);
if (MapUtil.isNotEmpty(regionStringMap)) {
Map<String, List<RegionMap>> localRegionMap = regionMap;
regionStringMap.forEach((key, value) -> {
List<RegionMap> regionMapList = JSONArray.parseArray(value, RegionMap.class);
localRegionMap.put(key, regionMapList);
});
log.info("全部数据从缓存中取:getCitysByPY");
return localRegionMap;
} else {
List<RegionMap> regionMaps = regionMapMapper.getCitysByPY(null);
if (!ListUtils.isEmpty(regionMaps)){
regionMap = regionMaps.stream().collect(Collectors.groupingBy(RegionMap::getAlphabet));
}
if (MapUtil.isNotEmpty(regionMap)) {
Map<String, String> localRegionStringMap = new HashMap<>(30);
regionMap.forEach((key, value) -> {
String regionString = JSONUtils.toJsonString(value);
localRegionStringMap.put(key, regionString);
});
JedisClusterUtils.hmset(redisKey, localRegionStringMap, BookConstant.DEFAULT_DAY_TIMEOUT);
}
return regionMap;
}
} else {
List<RegionMap> regionMaps = regionMapMapper.getCitysByPY(keyword);
Map<String, List<RegionMap>> regionMap = new HashMap<>();
if (!ListUtils.isEmpty(regionMaps)){
regionMap = regionMaps.stream().collect(Collectors.groupingBy(RegionMap::getAlphabet));
}
return regionMap;
}
}
@Override
@ParamLog("处理旧的书刊读者数据")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment