package com.xc.service.impl; import com.xc.dao2.KLinkStockMapper; import com.xc.dao2.StockRestDataMapper; import com.xc.service.DbStockService; import com.xc.vo.stock.StockListVO; import com.xc.vo.stock.StockVO; import com.xc.vo2.StockDbVO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; @Service public class DbStockServiceImpl implements DbStockService { @Autowired private StockRestDataMapper stockRestDataMapper; @Autowired private KLinkStockMapper kLinkStockMapper; private StockDbVO getStockDb(String stockGid) { String dbTableName = String.format("data_rt_%s",stockGid); StockDbVO stockDbVO; if(kLinkStockMapper.selectDateOneCount(dbTableName) <= 0) { stockDbVO = stockRestDataMapper.selectRestDataByGidDateOne(dbTableName); }else{ stockDbVO = stockRestDataMapper.selectRestDataByGid(dbTableName); } // StockDbVO stockDbVO = stockRestDataMapper.selectRestDataByGid(dbTableName); if(null == stockDbVO){ return new StockDbVO(); } double d = Double.parseDouble(stockDbVO.getBusiness_amount()); long businessAmount = (long) d; stockDbVO.setBusiness_amount(businessAmount + ""); double balance = Double.parseDouble(stockDbVO.getBusiness_balance()); long businessBalance = (long) balance; if (balance > 10000) { stockDbVO.setBusiness_balance((int) (businessBalance / 10000) + "δΈ‡"); } else { stockDbVO.setBusiness_balance(String.valueOf(balance)); } stockDbVO.setChange(new BigDecimal(stockDbVO.getNowPrice()).subtract(new BigDecimal(stockDbVO.getPreclose_px()))); BigDecimal preClose = new BigDecimal(stockDbVO.getPreclose_px()); if(!(preClose.compareTo(BigDecimal.ZERO) == 0)){ stockDbVO.setHcrate(stockDbVO.getChange().multiply(new BigDecimal(100).divide(preClose,2, RoundingMode.HALF_UP))); }else{ stockDbVO.setHcrate(stockDbVO.getChange().multiply(new BigDecimal(100))); } return stockDbVO; } @Override public StockVO getStock(String stockGid) { StockDbVO stockDbVO; stockDbVO = getStockDb(stockGid); StockVO stockVO = new StockVO(); BeanUtils.copyProperties(stockDbVO, stockVO); String nowPrice = stockVO.getNowPrice() == null ? "0" : stockVO.getNowPrice(); if(nowPrice.indexOf(".") < 3){ stockVO.setNowPrice(new BigDecimal(nowPrice).setScale(4,4).toString()); }else{ stockVO.setNowPrice(new BigDecimal(nowPrice).setScale(2,4).toString()); } return stockVO; } @Override public StockListVO getStockListVO(String stockGid) { StockDbVO stockDbVO; stockDbVO = getStockDb(stockGid); StockListVO stockListVO = new StockListVO(); BeanUtils.copyProperties(stockDbVO, stockListVO); String nowPrice = stockListVO.getNowPrice() == null ? "0" : stockListVO.getNowPrice(); if(nowPrice.indexOf(".") < 3){ stockListVO.setNowPrice(new BigDecimal(nowPrice).setScale(4,4).toString()); }else{ stockListVO.setNowPrice(new BigDecimal(nowPrice).setScale(2,4).toString()); } return stockListVO; } }