peter
2025-11-26 566a1b9fda0276e2cc4a35f7ba322c0e599a2c84
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package com.nq.service.impl;
 
 
import com.nq.dao.SiteProductMapper;
import com.nq.dao.StockMarketsDayMapper;
 
import com.nq.pojo.SiteProduct;
import com.nq.pojo.Stock;
 
import com.nq.pojo.StockMarketsDay;
 
import com.nq.service.ISiteProductService;
import com.nq.service.IStockMarketsDayService;
 
import com.nq.service.IStockService;
 
 
import com.nq.utils.DateTimeUtil;
 
import com.nq.utils.HolidayUtil;
import com.nq.utils.stock.sina.SinaStockApi;
 
import com.nq.vo.stock.StockListVO;
 
import java.math.BigDecimal;
 
import java.text.SimpleDateFormat;
import java.util.Date;
 
import java.util.List;
 
import org.slf4j.Logger;
 
import org.slf4j.LoggerFactory;
 
import org.springframework.beans.factory.annotation.Autowired;
 
import org.springframework.stereotype.Service;
 
@Service("iStockMarketsDayService")
public class StockMarketsDayServiceImpl implements IStockMarketsDayService {
 
    private static final Logger log = LoggerFactory.getLogger(StockMarketsDayServiceImpl.class);
 
    @Autowired
    IStockService iStockService;
 
    @Autowired
    StockMarketsDayMapper stockMarketsDayMapper;
 
    @Autowired
    SiteProductMapper siteProductMapper;
 
    @Autowired
    ISiteProductService iSiteProductService;
 
 
    public void saveStockMarketDay() {
        log.info("【保存股票日内行情 定时任务】 开始保存 ... ");
 
        List<Stock> stockList = this.iStockService.findStockList();
 
        for (Stock stock : stockList) {
            StockListVO stockListVO = SinaStockApi.assembleStockListVO(
                    SinaStockApi.getSinaStock(stock.getStockGid()));
 
            Date nowDate = new Date();
 
            String ymd_date = DateTimeUtil.dateToStr(nowDate, "yyyy-MM-dd");
 
            String hm_date = DateTimeUtil.dateToStr(nowDate, "HH:mm");
 
 
            StockMarketsDay stockMarketsDay = new StockMarketsDay();
 
            stockMarketsDay.setStockId(stock.getId());
 
            stockMarketsDay.setStockName(stock.getStockName());
 
            stockMarketsDay.setStockCode(stock.getStockCode());
 
            stockMarketsDay.setStockGid(stock.getStockGid());
 
            stockMarketsDay.setYmd(ymd_date);
 
            stockMarketsDay.setHms(hm_date);
 
            stockMarketsDay.setNowPrice(new BigDecimal(stockListVO.getNowPrice()));
 
            stockMarketsDay.setCreaseRate(new BigDecimal(stockListVO.getHcrate().toString()));
 
            stockMarketsDay.setOpenPx(stockListVO.getOpen_px());
 
            stockMarketsDay.setClosePx(stockListVO.getPreclose_px());
 
            stockMarketsDay.setBusinessBalance(stockListVO.getBusiness_balance());
 
            stockMarketsDay.setBusinessAmount(stockListVO.getBusiness_amount());
 
            stockMarketsDay.setAddTime(nowDate);
 
            stockMarketsDay.setAddTimeStr(DateTimeUtil.dateToStr(nowDate));
 
 
            int insertCount = this.stockMarketsDayMapper.insert(stockMarketsDay);
 
            if (insertCount > 0) {
 
                continue;
 
            }
 
            log.error("保存股票 {} 失败, 时间 = {}", stock.getStockName(), ymd_date);
 
        }
 
    }
 
    public void saveHoliday() {
        log.info("【同步节假日开关 定时任务】 开始保存 ... ");
 
        SiteProduct siteProduct = iSiteProductService.getProductSetting();
        // 判断1周末 2节假日不能出金
        SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");
        String httpArg = f.format(new Date());
        String jsonResult = HolidayUtil.request(httpArg);
        if ("1".equals(jsonResult) || "2".equals(jsonResult)) {
            //return ServerResponse.createByErrorMsg("周末或节假日不能购买!");
            siteProduct.setHolidayDisplay(true);
        } else {
            siteProduct.setHolidayDisplay(false);
        }
        siteProductMapper.updateByPrimaryKeySelective(siteProduct);
 
    }
 
 
    public BigDecimal selectRateByDaysAndStockCode(Integer stockId, int days) {
        return this.stockMarketsDayMapper.selectRateByDaysAndStockCode(stockId, Integer.valueOf(days));
    }
 
}