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.timeutil.DateTimeUtil; import com.nq.utils.HolidayUtil; import com.nq.utils.stock.sina.StockApi; 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 stockList = this.iStockService.findStockList(); for (Stock stock : stockList) { StockListVO stockListVO = StockApi.getStockRealTime( stock); 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)) { 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)); } }