12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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.apache.commons.lang.ObjectUtils;
- 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();
- }
- //todo
- double d = Double.parseDouble(stockDbVO.getBusiness_amount());
- long businessAmount = (long) d;
- stockDbVO.setBusiness_amount(businessAmount + "");
- if(!stockDbVO.getBusiness_balance().contains("万")){
- 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 = 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;
- }
- }
|