1
zj
2024-06-05 09ab9394bd3614f373082754300c6ef39d60c1e9
src/main/java/com/nq/service/impl/PriceServicesImpl.java
@@ -61,28 +61,30 @@
        return  new BigDecimal(stockRealTimeBean.getLast());
    }
    public BigDecimal getBuyNowPrice(String stockCode,EStockType eStockType) {
        Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code",stockCode));
        StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper<StockSetting>().eq("stock_code",stockCode));
        if(stockSetting != null){
            if(TimeUtil.isTradingHour(stockSetting.getStartTime(),stockSetting.getEndTime())){
                if(stockSetting.getType().equals("0")){
                    return  new BigDecimal(stockSetting.getPrice());
                }else{
                    String s = doGet(stock.getStockCode(),eStockType);
                    if(null != s){
    public BigDecimal getBuyNowPrice(String stockCode, EStockType eStockType) {
        Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code", stockCode));
        StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper<StockSetting>().eq("stock_code", stockCode));
        if (stockSetting != null) {
            if (TimeUtil.isTradingHour(stockSetting.getStartTime(), stockSetting.getEndTime())) {
                if (stockSetting.getType().equals("0")) {
                    return new BigDecimal(stockSetting.getPrice());
                } else {
                    String s = doGet(stock.getStockCode(), eStockType);
                    if (s != null) {
                        Map<String, Object> stringObjectMap = jsonToMap(s);
                        return   new BigDecimal(stringObjectMap.get("last").toString()).multiply(new BigDecimal(stockSetting.getPrice()));
                        return new BigDecimal(stringObjectMap.get("last").toString()).multiply(new BigDecimal(stockSetting.getPrice()));
                    }
                }
            }
        }
        String s = doGet(stock.getStockCode(),eStockType);
        if(null != s) {
        String s = doGet(stock.getStockCode(), eStockType);
        if (s != null) {
            Map<String, Object> stringObjectMap = jsonToMap(s);
            return  new BigDecimal(stringObjectMap.get("last").toString());
            return new BigDecimal(stringObjectMap.get("last").toString());
        }
        return BigDecimal.ZERO;
    }
@@ -99,30 +101,31 @@
        }
    }
    public String doGet(String pid,EStockType eStockType){
        String  apiUrl  = "";
        if("IN".equals(eStockType.getCode())){
    public String doGet(String pid, EStockType eStockType) {
        String apiUrl = "";
        if ("IN".equals(eStockType.getCode())) {
            String inNowHttpApi = PropertiesUtil.getProperty("IN_NOW_HTTP_API");
            String inNowKey = PropertiesUtil.getProperty("IN_NOW_KEY");
            apiUrl  =  inNowHttpApi+"stock?pid="+pid+"&key="+inNowKey;
        }else{
            apiUrl  =  eStockType.getStockUrl()+"stock?pid="+pid+"&key="+eStockType.getStockKey();
            apiUrl = inNowHttpApi + "stock?pid=" + pid + "&key=" + inNowKey;
        } else {
            apiUrl = eStockType.getStockUrl() + "stock?pid=" + pid + "&key=" + eStockType.getStockKey();
        }
        try  {
            URL url  =  new  URL(apiUrl);
            HttpURLConnection connection  =  (HttpURLConnection)  url.openConnection();
        try {
            URL url = new URL(apiUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            BufferedReader in  =  new  BufferedReader(new InputStreamReader(connection.getInputStream()));
            String  inputLine;
            StringBuffer  response  =  new  StringBuffer();
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
            while  ((inputLine  =  in.readLine())  !=  null)  {
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
            return response.toString();
        }  catch  (Exception  e)  {
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
@@ -131,15 +134,26 @@
    @Override
    public BigDecimal getNowPrice(String stockCode, String stockType) {
        EStockType eStockType = EStockType.getEStockTypeByCode(stockType);
        BigDecimal nowPrice =   getBuyNowPrice(stockCode,eStockType);
        if (!stockType.equals("DZ")){
            return  nowPrice;
        BigDecimal nowPrice = getBuyNowPrice(stockCode, eStockType);
        if (!stockType.equals("DZ")) {
            return nowPrice;
        }
        QueryWrapper queryWrapper =    new QueryWrapper<>();
        queryWrapper.eq("stock_code",stockCode);
        StockDz stockDz =  stockDZMapper.selectOne(queryWrapper);
        if(stockDz == null){
            return  nowPrice;}
        return  nowPrice.multiply(stockDz.getDiscount());
        QueryWrapper queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("stock_code", stockCode);
        StockDz stockDz = stockDZMapper.selectOne(queryWrapper);
        if (stockDz == null) {
            return nowPrice;
        }
        return nowPrice.multiply(stockDz.getDiscount());
    }
    @Override
    public BigDecimal getPrice(String stockCode) {
        return stockDZMapper.getPrice(stockCode);
    }
}