接口代码优化调整
This commit is contained in:
@@ -6,8 +6,11 @@ import cn.stock.market.domain.basic.repository.MoneyStockRepository;
|
||||
import cn.stock.market.dto.StockHistoryRequest;
|
||||
import cn.stock.market.dto.StockHistoryResponse;
|
||||
import cn.stock.market.infrastructure.db.po.QMoneyStockPO;
|
||||
import cn.stock.market.utils.RequestCacheUtils;
|
||||
import cn.stock.market.utils.ServerResponse;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.collect.Lists;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
@@ -36,6 +39,7 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -499,11 +503,17 @@ public class MoneyApiController {
|
||||
@ResponseBody
|
||||
public List<MoneyStockSuggestDTO> getTopGainer(@RequestParam String stockType) {
|
||||
List<MoneyStockSuggestDTO> moneyStockSuggestDTOS = null;
|
||||
// 尝试从缓存中获取结果
|
||||
moneyStockSuggestDTOS = gainerStockSuggestCache.getIfPresent(stockType);
|
||||
|
||||
if (moneyStockSuggestDTOS == null) {
|
||||
// 缓存未命中,执行业务查询
|
||||
if (StringUtils.equals(stockType, "nse")) {
|
||||
moneyStockSuggestDTOS = nseGainer();
|
||||
} else if (StringUtils.equals(stockType, "bse")) {
|
||||
moneyStockSuggestDTOS = bseGainer();
|
||||
}
|
||||
|
||||
moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream().filter(f->StringUtils.isNotBlank(f.getStockName())).collect(Collectors.toList());
|
||||
if(CollectionUtils.isNotEmpty(moneyStockSuggestDTOS)){
|
||||
List<String> selfUlrList = moneyStockSuggestDTOS.stream().map(MoneyStockSuggestDTO::getStockName).collect(Collectors.toList());
|
||||
@@ -514,6 +524,9 @@ public class MoneyApiController {
|
||||
.forEach(f->f.setScId(all.stream().filter(s->s.getStockName().equals(f.getStockName())).findFirst().orElse(null).getMoneyScId()));
|
||||
}
|
||||
}
|
||||
gainerStockSuggestCache.put(stockType, moneyStockSuggestDTOS);
|
||||
}
|
||||
// 将结果放入缓存
|
||||
}
|
||||
return moneyStockSuggestDTOS;
|
||||
}
|
||||
@@ -531,6 +544,8 @@ public class MoneyApiController {
|
||||
@ResponseBody
|
||||
public List<MoneyStockSuggestDTO> getTopLoser(@RequestParam String stockType) {
|
||||
List<MoneyStockSuggestDTO> moneyStockSuggestDTOS = null;
|
||||
moneyStockSuggestDTOS = loserStockSuggestCache.getIfPresent(stockType);
|
||||
if(null==moneyStockSuggestDTOS){
|
||||
if(StringUtils.equals(stockType,"nse")){
|
||||
moneyStockSuggestDTOS = nseTopLoser();
|
||||
}else if(StringUtils.equals(stockType,"bse")){
|
||||
@@ -556,10 +571,9 @@ public class MoneyApiController {
|
||||
}
|
||||
}
|
||||
}
|
||||
loserStockSuggestCache.put(stockType, moneyStockSuggestDTOS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return moneyStockSuggestDTOS;
|
||||
}
|
||||
|
||||
@@ -578,6 +592,8 @@ public class MoneyApiController {
|
||||
@ResponseBody
|
||||
public List<MoneyStockSuggestDTO> getTopActive(@RequestParam String stockType) {
|
||||
List<MoneyStockSuggestDTO> moneyStockSuggestDTOS = null;
|
||||
moneyStockSuggestDTOS = activesStockSuggestCache.getIfPresent(stockType);
|
||||
if(moneyStockSuggestDTOS ==null){
|
||||
if(StringUtils.equals(stockType,"nse")){
|
||||
moneyStockSuggestDTOS = nseActives();
|
||||
}else if(StringUtils.equals(stockType,"bse")){
|
||||
@@ -603,6 +619,8 @@ public class MoneyApiController {
|
||||
}
|
||||
}
|
||||
}
|
||||
activesStockSuggestCache.put(stockType, moneyStockSuggestDTOS);
|
||||
}
|
||||
}
|
||||
|
||||
return moneyStockSuggestDTOS;
|
||||
@@ -724,4 +742,19 @@ public class MoneyApiController {
|
||||
bseTopLoser();
|
||||
}
|
||||
|
||||
private Cache<String, List<MoneyStockSuggestDTO>> gainerStockSuggestCache = CacheBuilder.newBuilder()
|
||||
.maximumSize(100) // 设置缓存的最大大小
|
||||
.expireAfterWrite(1, TimeUnit.HOURS) // 设置缓存条目的过期时间
|
||||
.build();
|
||||
|
||||
private Cache<String, List<MoneyStockSuggestDTO>> loserStockSuggestCache = CacheBuilder.newBuilder()
|
||||
.maximumSize(100) // 设置缓存的最大大小
|
||||
.expireAfterWrite(1, TimeUnit.HOURS) // 设置缓存条目的过期时间
|
||||
.build();
|
||||
|
||||
private Cache<String, List<MoneyStockSuggestDTO>> activesStockSuggestCache = CacheBuilder.newBuilder()
|
||||
.maximumSize(100) // 设置缓存的最大大小
|
||||
.expireAfterWrite(1, TimeUnit.MINUTES) // 设置缓存条目的过期时间
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user