package com.yami.trading.admin.controller.loanOrder.job; import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yami.trading.admin.controller.loanOrder.LoanOrderService; import com.yami.trading.bean.loanOrder.LoanOrder; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; /** * 质押借币 利息JOB * */ @Component @Slf4j public class LoanInterestJob { private Logger logger = LoggerFactory.getLogger(LoanInterestJob.class); @Autowired private LoanOrderService loanOrderService; @Scheduled(fixedDelay = 300000, initialDelay = 5000) public void taskJob() { try { int pageNo = 1; int pageSize = 300; // 小于当前时间,新增的订单都不查 Date date = new Date(); while (true) { Page page = loanOrderService.pagedQueryInterestOrder(pageNo, pageSize, date); List orders = page.getRecords(); // 分页没数据时表示已经计算结束 if (CollectionUtils.isEmpty(orders)) { break; } try { loanOrderService.updateInterest(orders); } catch (Throwable e) { logger.error("error:", e); } logger.info("loan interest finished, count:" + orders.size()); pageNo++; } } catch (Throwable e) { logger.error("PledgeGalaxyOrderProfit run fail", e); } } }