DbStockServiceImpl.java 3.4 KB

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