package com.ruoyi.task.bonus; import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.ss.bonus.domain.BonusQuery; import com.ruoyi.ss.bonus.domain.BonusVO; import com.ruoyi.ss.bonus.domain.enums.BonusStatus; import com.ruoyi.ss.bonus.service.BonusService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.util.List; /** * @author wjh * 2024/9/27 */ @Component @Slf4j public class BonusTask { @Autowired private BonusService bonusService; /** * 分成打款 */ public void payBonus() { // 查询预计分成时间当前时间之前,且为待分成的分成单 BonusQuery query = new BonusQuery(); query.setStatus(BonusStatus.WAIT_DIVIDE.getStatus()); query.setPrePayTimeEnd(LocalDateTime.now()); List list = bonusService.selectBonusList(query); if (CollectionUtils.isEmptyElement(list)) { log.info("暂无待分成的分成单"); return; } for (BonusVO bonus : list) { try { bonusService.payBonus(bonus); } catch (Exception e) { log.warn("分成打款失败:id={}, e={}", bonus.getId(), e.getMessage()); } } } }