|
|
@@ -20,6 +20,7 @@ import org.springframework.util.StopWatch;
|
|
|
import top.lvzhiqiang.config.InitRunner;
|
|
|
import top.lvzhiqiang.config.WorkWeixinProperties;
|
|
|
import top.lvzhiqiang.entity.CoinHistoryOrder;
|
|
|
+import top.lvzhiqiang.entity.CoinMonitorCurrency;
|
|
|
import top.lvzhiqiang.entity.CoinTrader;
|
|
|
import top.lvzhiqiang.mapper.CoinMapper;
|
|
|
import top.lvzhiqiang.service.CoinService;
|
|
|
@@ -35,6 +36,7 @@ import java.time.Duration;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.*;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -183,9 +185,9 @@ public class CoinServiceImpl implements CoinService {
|
|
|
}
|
|
|
));
|
|
|
e.setRoi(columnMap.get("ROI"));
|
|
|
- e.setTotalProfit(columnMap.get("Total PnL"));
|
|
|
- e.setTotalFollowersProfit(columnMap.get("Total followers PnL"));
|
|
|
- e.setAum(columnMap.get("AUM"));
|
|
|
+ e.setTotalProfit(columnMap.get("Total PnL").replace("$", "").replace(",", ""));
|
|
|
+ e.setTotalFollowersProfit(columnMap.get("Total followers PnL").replace("$", "").replace(",", ""));
|
|
|
+ e.setAum(columnMap.get("AUM").replace("$", "").replace(",", ""));
|
|
|
e.setMaxCallbackRate(columnMap.get("Max drawdown"));
|
|
|
e.setLast3wWinRate(columnMap.get("Last 3W win rate"));
|
|
|
e.setAverageWinRate(StringUtils.isNotEmpty(e.getAverageWinRate()) ? new BigDecimal(e.getAverageWinRate()).setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00");
|
|
|
@@ -672,7 +674,7 @@ public class CoinServiceImpl implements CoinService {
|
|
|
//result = (JSONArray) JSON.toJSON(mixTraderList);
|
|
|
return coinTraderPageInfo;
|
|
|
} else if (params.getString("nameEn").equals("monitorCurrency")) {
|
|
|
- List<String> monitorCurrencyList = coinMapper.findMonitorCurrencyList();
|
|
|
+ List<CoinMonitorCurrency> monitorCurrencyList = coinMapper.findMonitorCurrencyList();
|
|
|
|
|
|
String requestUrl = mainUrl + params.getString("url");
|
|
|
Connection.Response response = JsoupUtil.requestBody(requestUrl, JsoupUtil.HTTP_GET, InitRunner.proxy, null, null);
|
|
|
@@ -770,9 +772,12 @@ public class CoinServiceImpl implements CoinService {
|
|
|
*
|
|
|
* @param monitorCurrencyList
|
|
|
*/
|
|
|
- private JSONArray renderMainSearch4MonitorCurrency(JSONArray result, List<String> monitorCurrencyList, Integer changeUtcSort) {
|
|
|
+ private JSONArray renderMainSearch4MonitorCurrency(JSONArray result, List<CoinMonitorCurrency> monitorCurrencyList, Integer changeUtcSort) {
|
|
|
+ Map<String, CoinMonitorCurrency> monitorCurrencyMap = monitorCurrencyList.stream().collect(Collectors.toMap(CoinMonitorCurrency::getSymbol, Function.identity(), (key1, key2) -> key1));
|
|
|
+ Set<String> symbolSet = monitorCurrencyMap.keySet();
|
|
|
+
|
|
|
JSONArray array = result.stream()
|
|
|
- .filter(iter -> monitorCurrencyList.contains(((JSONObject) iter).getString("symbol")))
|
|
|
+ .filter(iter -> symbolSet.contains(((JSONObject) iter).getString("symbol")))
|
|
|
.collect(Collectors.toCollection(JSONArray::new));
|
|
|
|
|
|
forkJoinPool.submit(() -> array.parallelStream().forEach(e -> {
|
|
|
@@ -781,6 +786,8 @@ public class CoinServiceImpl implements CoinService {
|
|
|
jsonObject.put("change", jsonObject.getBigDecimal("change").multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP));
|
|
|
jsonObject.put("ts", DateUtils.longToString(jsonObject.getLong("ts")));
|
|
|
|
|
|
+ jsonObject.put("category", monitorCurrencyMap.get(jsonObject.getString("symbol")).getCategory());
|
|
|
+
|
|
|
// UTC0时涨跌幅
|
|
|
if (jsonObject.getBigDecimal("changeUtc").compareTo(BigDecimal.ZERO) < 0) {
|
|
|
jsonObject.put("changeUtcStyle", " style=\"color:#FFFFFF;background-color:#F1493F;\"");
|