diff --git a/ruoyi-web/src/main/java/com/ruoyi/task/reconciliationDate/ReconciliationDateTask.java b/ruoyi-web/src/main/java/com/ruoyi/task/reconciliationDate/ReconciliationDateTask.java new file mode 100644 index 0000000..cb82178 --- /dev/null +++ b/ruoyi-web/src/main/java/com/ruoyi/task/reconciliationDate/ReconciliationDateTask.java @@ -0,0 +1,84 @@ +package com.ruoyi.task.reconciliationDate; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.ruoyi.bst.channel.domain.vo.ChannelNameVO; +import com.ruoyi.bst.channel.service.ChannelService; +import com.ruoyi.bst.reconciliationDate.domain.ReconciliationDate; +import com.ruoyi.bst.reconciliationDate.service.ReconciliationDateService; +import com.ruoyi.common.utils.collection.CollectionUtils; + +import lombok.extern.slf4j.Slf4j; + +@Component +@Slf4j +public class ReconciliationDateTask { + + @Autowired + private ChannelService channelService; + + @Autowired + private ReconciliationDateService reconciliationDateService; + + public void recordReconciliationDate(Integer lastDays) { + // 获取昨日日期 + LocalDate now = LocalDate.now(); + LocalDate startDay = now.minusDays(lastDays); + + // 查询所有支付渠道列表 + List channelList = channelService.selectAllChannelNameList(); + if (CollectionUtils.isEmptyElement(channelList)) { + log.error("渠道列表为空"); + return; + } + + + while (now.isAfter(startDay)) { + // 支付渠道 + for (ChannelNameVO channel : channelList) { + if (channel == null) { + continue; + } + this.insertReconciliationDate(startDay, channel.getChannelId(), channel.getName()); + } + + startDay = startDay.plusDays(1); + } + } + + private void insertReconciliationDate(LocalDate startDay, Long channelId, String channelName) { + // TODO 获取日期对账数据 + // TODO 保存对账数据 + // int insert = reconciliationDateService.insertReconciliationDate(po); + // if (insert != 1) { + // log.error("保存对账数据失败,{}", po); + // } + } + + private boolean isEmpty(ReconciliationDate po) { + // 所有数值类型都为空或者0,则认为对账数据为空 + return (po.getActualBonus() == null || po.getActualBonus().compareTo(BigDecimal.ZERO) == 0) + && (po.getChannelCost() == null || po.getChannelCost().compareTo(BigDecimal.ZERO) == 0) + && (po.getOrderPayAmount() == null || po.getOrderPayAmount().compareTo(BigDecimal.ZERO) == 0) + && (po.getOrderRefundAmount() == null || po.getOrderRefundAmount().compareTo(BigDecimal.ZERO) == 0) + && (po.getOrderActualAmount() == null || po.getOrderActualAmount().compareTo(BigDecimal.ZERO) == 0) + && (po.getPayAmount() == null || po.getPayAmount().compareTo(BigDecimal.ZERO) == 0) + && (po.getRefundAmount() == null || po.getRefundAmount().compareTo(BigDecimal.ZERO) == 0) + && (po.getActualAmount() == null || po.getActualAmount().compareTo(BigDecimal.ZERO) == 0) + && (po.getUserBonus() == null || po.getUserBonus().compareTo(BigDecimal.ZERO) == 0) + && (po.getUserBonusRefund() == null || po.getUserBonusRefund().compareTo(BigDecimal.ZERO) == 0) + && (po.getUserActualBonus() == null || po.getUserActualBonus().compareTo(BigDecimal.ZERO) == 0) + && (po.getPlatformBonus() == null || po.getPlatformBonus().compareTo(BigDecimal.ZERO) == 0) + && (po.getPlatformBonusRefund() == null || po.getPlatformBonusRefund().compareTo(BigDecimal.ZERO) == 0) + && (po.getPlatformActualBonus() == null || po.getPlatformActualBonus().compareTo(BigDecimal.ZERO) == 0) + && (po.getTotalBonus() == null || po.getTotalBonus().compareTo(BigDecimal.ZERO) == 0) + && (po.getTotalBonusRefund() == null || po.getTotalBonusRefund().compareTo(BigDecimal.ZERO) == 0) + && (po.getDifference() == null || po.getDifference().compareTo(BigDecimal.ZERO) == 0); + } + +}