From ddc52ca9c8a7597b410be4e802e598844bdc5d4a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 09 May 2024 16:25:41 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/StockServiceImpl.java |   60 +++++++++++++++++++++++++++++
 src/main/java/com/nq/service/impl/RateServicesImpl.java |    2 
 src/main/java/com/nq/service/impl/UserServiceImpl.java  |    2 
 3 files changed, 61 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/RateServicesImpl.java b/src/main/java/com/nq/service/impl/RateServicesImpl.java
index a0bbc22..6a179ef 100644
--- a/src/main/java/com/nq/service/impl/RateServicesImpl.java
+++ b/src/main/java/com/nq/service/impl/RateServicesImpl.java
@@ -21,7 +21,7 @@
             return new BigDecimal(1);
         }
        BigDecimal rate =  iSiteSettingService.getSiteSetting().getExchangeRate();
-        BigDecimal rate1 =  new BigDecimal(7.35);
+        BigDecimal rate1 =  new BigDecimal(83.5);
         if(fromStockType==EStockType.US){
             if(tofromStockType==EStockType.IN){
                 return rate;
diff --git a/src/main/java/com/nq/service/impl/StockServiceImpl.java b/src/main/java/com/nq/service/impl/StockServiceImpl.java
index ba5ebcb..37428cb 100644
--- a/src/main/java/com/nq/service/impl/StockServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -1,11 +1,14 @@
 package com.nq.service.impl;
 
 import cn.hutool.http.HttpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
 import com.nq.common.ServerResponse;
 import com.nq.config.StockPoll;
 import com.nq.dao.*;
@@ -15,6 +18,7 @@
 import com.nq.service.*;
 import com.nq.utils.http.HttpClientRequest;
 import com.nq.utils.PropertiesUtil;
+import com.nq.utils.redis.RedisKeyUtil;
 import com.nq.utils.redis.RedisShardedPoolUtils;
 import com.nq.utils.stock.pinyin.GetPyByChinese;
 import com.nq.utils.stock.qq.QqStockApi;
@@ -444,13 +448,67 @@
         return ServerResponse.createBySuccess(echartsDataVO);
     }
 
-    /*股票日线-K线*/
+    @lombok.Data
+    class kData {
+        long t;
+        String c;
+        String o;
+        String h;
+        String l;
+        String v;
+        String vo;
+    }
+
     @Override
     public Object getKData(String pid, String interval, String stockType) {
         EStockType eStockType = EStockType.getEStockTypeByCode(stockType);
+        if(eStockType == EStockType.IN){
+            Object object = HttpUtil.get(eStockType.stockUrl + "api/all/getKData.do?pid=" + pid + "&interval=" + interval + "&stockType=in");
+            Gson gson = new Gson();
+            List<kData> dataList = gson.fromJson(object.toString(), new TypeToken<List<kData>>(){}.getType());
+
+            Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<Stock>().eq(Stock::getStockCode, pid).eq(Stock::getStockType, "IN"));
+            BigDecimal nowPrice = iPriceServices.getNowPrice(stock.getStockCode());
+            Map singleStock = getSingleStock(stock.getStockCode());
+            StockVO stockVO = (StockVO)singleStock.get("stock");
+            // 修改 List 中的最后一条数据
+            kData lastData = dataList.get(dataList.size() - 1);
+            lastData.setC(nowPrice.toString());
+            lastData.setO(stockVO.getOpen_px());
+            lastData.setH(stockVO.getToday_max());
+            lastData.setL(stockVO.getToday_min());
+            return gson.toJson(dataList);
+
+        }
         return  HttpUtil.get(eStockType.stockUrl + "kline?pid=" + pid + "&interval=" + interval + "&key=" + eStockType.stockKey);
     }
 
+    public Map getSingleStock(String code) {
+        if (StringUtils.isBlank(code))
+            return null;
+        Stock stock = stockMapper.findStockByCode(code);
+        DataStockBean cacheBaseStock = RedisKeyUtil.getCacheBaseStock(stock);
+        Integer depositAmt = 0;
+        String introduction = null;
+        StockVO   stockVO = StockApi.assembleInStockVO(stock);
+        stockVO.setDepositAmt(depositAmt);
+        stockVO.setNowPrice(iPriceServices.getNowPrice(stock.getStockCode()).toString());
+        stockVO.setType(stock.getStockType());
+        stockVO.setId(stock.getId().intValue());
+        stockVO.setCode(stock.getStockCode());
+        stockVO.setName(stock.getStockName());
+        stockVO.setSpell(stock.getStockSpell());
+        stockVO.setGid(stock.getStockGid().toUpperCase());
+        if(null != cacheBaseStock){
+            stockVO.setOpen_px(cacheBaseStock.getOpen());
+            stockVO.setPreclose_px(cacheBaseStock.getPrevClose());
+        }
+        Map map = Maps.newHashMap();
+        map.put("introduction", introduction);
+        map.put("stock", stockVO);
+        return map;
+    }
+
     @Override
     public ServerResponse getOptionStock(HttpServletRequest request) {
         User user = iUserService.getCurrentRefreshUser(request);
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 51427e7..05201dc 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -630,7 +630,7 @@
         }
         userAssetsServices.availablebalanceChange(fromType,user.getId(), EUserAssets.TRANSFER,amtBig.negate(),fromType+"/"+toType,"");
         if(fromType.equals("US")){
-            amtBig = (new BigDecimal(7.35)).multiply(amtBig);
+            amtBig = (new BigDecimal(83.5)).multiply(amtBig);
         }else{
             amtBig = rateServices.currencyRate(EStockType.getEStockTypeByCode(fromType),EStockType.getEStockTypeByCode(toType)).multiply(amtBig);
         }

--
Gitblit v1.9.3