feat:订单导出优化

feat:分账统计模块
This commit is contained in:
dzc committed 2026-08-26 15:44:15 +08:00
1 parent 14c2acb6c2
commit 4bf5930e64
22 files changed
+1892 -392

No files matched your search

@@ -0,0 +1,34 @@
package com.bsd.pjcloud.thirdparty.dto.pay;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 第三方支付统计查询条件。
*
* <p>统计始终按支付订单的支付时间归属,时间范围由管理端明确传入,避免空条件扫描全历史支付数据。</p>
*/
@Data
@Schema(description = "第三方支付统计查询条件")
public class ThirdPayTotalQueryDto {
/**
* 支付所属商户主键;为空表示查询当前权限范围内全部商户。
*/
@Schema(description = "商户ID")
private Long mchId;
/**
* 支付平台类型编码,沿用 mini_platform_type 字典;为空表示全部支付方式。
*/
@Schema(description = "支付平台类型")
private String payPlatformType;
/**
* 支付时间范围,必须包含开始和结束两个时间点,最大跨度一年。
*/
@Schema(description = "支付时间范围")
private LocalDateTime[] payTimeList;
}
@@ -0,0 +1,60 @@
package com.bsd.pjcloud.thirdparty.vo.pay;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* 第三方支付统计的商户与支付方式明细。
*
* <p>金额字段统一使用分传输;管理端展示时再转换为元。退款快照无法还原金额时,
* 对应不可核对数量会增加且不会把未知金额当作零。</p>
*/
@Data
@Schema(description = "第三方支付统计明细")
public class ThirdPayTotalRowVo {
/** 商户主键;历史订单缺失商户时允许为空。 */
private Long mchId;
/** 商户名称;远程商户服务不可用时返回商户信息不可用。 */
private String mchName;
/** 支付平台类型编码,未知历史编码原样保留。 */
private String payPlatformType;
/** 支付成功订单数,按支付订单主键去重。 */
private Long payOrderCount = 0L;
/** 支付成功金额,单位分。 */
private Long payAmount = 0L;
/** 退款成功订单数,按支付订单主键去重。 */
private Long refundOrderCount = 0L;
/** 可从退款快照解析出的退款金额,单位分。 */
private Long refundAmount = 0L;
/** 分账成功记录数。 */
private Long fzSuccessCount = 0L;
/** 分账成功金额,单位分。 */
private Long fzSuccessAmount = 0L;
/** 成功退分账记录数。 */
private Long fzRefundSuccessCount = 0L;
/** 可从退分账快照解析出的金额,单位分。 */
private Long fzRefundSuccessAmount = 0L;
/** 分账成功金额扣除已解析退分账金额后的平台净收款,单位分。 */
private Long platformNetAmount;
/** 退分账金额是否全部可由历史快照核对。 */
private boolean platformNetAmountComplete = true;
/** 退款成功但金额无法从历史快照解析的订单数。 */
private Long refundAmountUnavailableCount = 0L;
/** 成功退分账但金额无法从历史快照解析的记录数。 */
private Long fzRefundAmountUnavailableCount = 0L;
}
@@ -0,0 +1,21 @@
package com.bsd.pjcloud.thirdparty.vo.pay;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 第三方支付统计接口返回值。
*/
@Data
@Schema(description = "第三方支付统计结果")
public class ThirdPayTotalStatisticsVo {
/** 按商户和支付方式分组的明细,未知维度也必须保留。 */
private List<ThirdPayTotalRowVo> rows = new ArrayList<>();
/** 当前查询范围内全部明细的合计。 */
private ThirdPayTotalSummaryVo total = new ThirdPayTotalSummaryVo();
}
@@ -0,0 +1,12 @@
package com.bsd.pjcloud.thirdparty.vo.pay;
import io.swagger.v3.oas.annotations.media.Schema;
/**
* 第三方支付统计范围合计。
*
* <p>字段口径与明细一致,维度字段为空表示全部商户和支付方式。</p>
*/
@Schema(description = "第三方支付统计合计")
public class ThirdPayTotalSummaryVo extends ThirdPayTotalRowVo {
}