From a867040c5114f6720ed97a4bb3bcb83a4f80502b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Wed, 23 Apr 2025 11:34:59 +0800 Subject: [PATCH] package com.ruoyi.bst.reconciliationDate.domain; MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; /** * 渠道对账对象 bst_reconciliation_date * * @author ruoyi * @date 2025-04-23 */ @Data public class ReconciliationDate extends BaseEntity { private static final long serialVersionUID = 1L; private Long id; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("日期") private Date date; @Excel(name = "渠道ID") @ApiModelProperty("渠道ID") private Long channelId; @Excel(name = "渠道名称") @ApiModelProperty("渠道名称") private String channelName; @Excel(name = "运营区ID") @ApiModelProperty("运营区ID") private Long areaId; @Excel(name = "骑行订单支付金额") @ApiModelProperty("骑行订单支付金额") private BigDecimal orderPayAmount; @Excel(name = "骑行订单退款金额") @ApiModelProperty("骑行订单退款金额") private BigDecimal orderRefundAmount; @Excel(name = "骑行订单实收金额") @ApiModelProperty("骑行订单实收金额") private BigDecimal orderActualAmount; @Excel(name = "支付总金额") @ApiModelProperty("支付总金额") private BigDecimal payAmount; @Excel(name = "退款总金额") @ApiModelProperty("退款总金额") private BigDecimal refundAmount; @Excel(name = "实收金额") @ApiModelProperty("实收金额") private BigDecimal actualAmount; @Excel(name = "用户分成") @ApiModelProperty("用户分成") private BigDecimal userBonus; @Excel(name = "用户分成退款") @ApiModelProperty("用户分成退款") private BigDecimal userBonusRefund; @Excel(name = "用户实收金额") @ApiModelProperty("用户实收金额") private BigDecimal userActualBonus; @Excel(name = "平台分成") @ApiModelProperty("平台分成") private BigDecimal platformBonus; @Excel(name = "平台分成退款") @ApiModelProperty("平台分成退款") private BigDecimal platformBonusRefund; @Excel(name = "平台实收金额") @ApiModelProperty("平台实收金额") private BigDecimal platformActualBonus; @Excel(name = "分成总金额") @ApiModelProperty("分成总金额") private BigDecimal totalBonus; @Excel(name = "分成退款总金额") @ApiModelProperty("分成退款总金额") private BigDecimal totalBonusRefund; @Excel(name = "实际分成金额") @ApiModelProperty("实际分成金额") private BigDecimal actualBonus; @Excel(name = "支付实收和分成差额") @ApiModelProperty("支付实收和分成差额") private BigDecimal difference; @Excel(name = "渠道成本") @ApiModelProperty("渠道成本") private BigDecimal channelCost; } --- .../ReconciliationDateTask.java | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 ruoyi-web/src/main/java/com/ruoyi/task/reconciliationDate/ReconciliationDateTask.java 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); + } + +}