DbStockServiceImpl.java 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.xc.service.impl;
  2. import com.xc.dao2.KLinkStockMapper;
  3. import com.xc.dao2.StockRestDataMapper;
  4. import com.xc.service.DbStockService;
  5. import com.xc.vo.stock.StockListVO;
  6. import com.xc.vo.stock.StockVO;
  7. import com.xc.vo2.StockDbVO;
  8. import org.apache.commons.lang.ObjectUtils;
  9. import org.springframework.beans.BeanUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import java.math.BigDecimal;
  13. import java.math.RoundingMode;
  14. @Service
  15. public class DbStockServiceImpl implements DbStockService {
  16. @Autowired
  17. private StockRestDataMapper stockRestDataMapper;
  18. @Autowired
  19. private KLinkStockMapper kLinkStockMapper;
  20. private StockDbVO getStockDb(String stockGid) {
  21. String dbTableName = String.format("data_rt_%s",stockGid);
  22. StockDbVO stockDbVO;
  23. if(kLinkStockMapper.selectDateOneCount(dbTableName) <= 0) {
  24. stockDbVO = stockRestDataMapper.selectRestDataByGidDateOne(dbTableName);
  25. }else{
  26. stockDbVO = stockRestDataMapper.selectRestDataByGid(dbTableName);
  27. }
  28. // StockDbVO stockDbVO = stockRestDataMapper.selectRestDataByGid(dbTableName);
  29. if(null == stockDbVO){
  30. return new StockDbVO();
  31. }
  32. //todo
  33. double d = Double.parseDouble(stockDbVO.getBusiness_amount());
  34. long businessAmount = (long) d;
  35. stockDbVO.setBusiness_amount(businessAmount + "");
  36. if(!stockDbVO.getBusiness_balance().contains("万")){
  37. double balance = Double.parseDouble(stockDbVO.getBusiness_balance());
  38. long businessBalance = (long) balance;
  39. if (balance > 10000) {
  40. stockDbVO.setBusiness_balance((int) (businessBalance / 10000) + "万");
  41. } else {
  42. stockDbVO.setBusiness_balance(String.valueOf(balance));
  43. }
  44. }
  45. stockDbVO.setChange(new BigDecimal(stockDbVO.getNowPrice()).subtract(new BigDecimal(stockDbVO.getPreclose_px())));
  46. BigDecimal preClose = new BigDecimal(stockDbVO.getPreclose_px());
  47. if(!(preClose.compareTo(BigDecimal.ZERO) == 0)){
  48. stockDbVO.setHcrate(stockDbVO.getChange().multiply(new BigDecimal(100).divide(preClose,2, RoundingMode.HALF_UP)));
  49. }else{
  50. stockDbVO.setHcrate(stockDbVO.getChange().multiply(new BigDecimal(100)));
  51. }
  52. return stockDbVO;
  53. }
  54. @Override
  55. public StockVO getStock(String stockGid) {
  56. StockDbVO stockDbVO;
  57. stockDbVO = getStockDb(stockGid);
  58. StockVO stockVO = new StockVO();
  59. BeanUtils.copyProperties(stockDbVO, stockVO);
  60. String nowPrice = stockVO.getNowPrice() == null ? "0" : stockVO.getNowPrice();
  61. if(nowPrice.indexOf(".") < 3){
  62. stockVO.setNowPrice(new BigDecimal(nowPrice).setScale(4,4).toString());
  63. }else{
  64. stockVO.setNowPrice(new BigDecimal(nowPrice).setScale(2,4).toString());
  65. }
  66. return stockVO;
  67. }
  68. @Override
  69. public StockListVO getStockListVO(String stockGid) {
  70. StockDbVO stockDbVO = getStockDb(stockGid);
  71. StockListVO stockListVO = new StockListVO();
  72. BeanUtils.copyProperties(stockDbVO, stockListVO);
  73. String nowPrice = stockListVO.getNowPrice() == null ? "0" : stockListVO.getNowPrice();
  74. if(nowPrice.indexOf(".") < 3){
  75. stockListVO.setNowPrice(new BigDecimal(nowPrice).setScale(4,4).toString());
  76. }else{
  77. stockListVO.setNowPrice(new BigDecimal(nowPrice).setScale(2,4).toString());
  78. }
  79. return stockListVO;
  80. }
  81. }