feat:售后订单增加批量审核

This commit is contained in:
dzc committed 2026-10-30 13:41:32 +08:00
1 parent 14c5856eb1
commit 2e21f4a1a3
9 files changed
+981 -13

No files matched your search

@@ -14,6 +14,9 @@ import java.util.List;
@Data
public class HardAfterSaleDto extends HardAfterSaleEntity implements BaseUserIdentityQueryInterface {
/** 批量预览指定的售后单主键;仅为查询条件,不对应持久化字段,空集合不限制范围。 */
private List<Long> afterSaleIds;
/** 售后申请用户主键集合;为空时不限制申请人。 */
private List<Long> userIds;
@@ -0,0 +1,21 @@
package com.bsd.pjcloud.hard.api.dto.order;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;
import java.util.List;
/** 后台批量审核已有退款申请的请求;原申请商品、金额及原因均由服务端读取,不接收客户端覆盖。 */
@Data
@Schema(description = "后台售后批量退款请求")
public class HardBatchAfterSaleRefundDto {
/** 售后单主键集合;保留勾选顺序,服务端去重并校验当前账号的数据范围,单次最多 1000 条。 */
@NotEmpty(message = "请选择需要退款的售后申请")
@Size(max = 1000, message = "单次最多选择1000条售后申请")
@Schema(description = "待审核售后单主键,单次最多1000条")
private List<@NotNull(message = "售后单id不能为空") Long> afterSaleIds;
}
@@ -8,7 +8,7 @@ import java.time.LocalDate;
import java.util.List;
/**
* 后台批量退款预览结果,按订单展示服务端实时核定的剩余可退商品和金额。
* 后台批量退款预览结果;普通订单展示剩余可退内容,售后模式展示指定申请保存的退款快照。
*/
@Data
@Schema(description = "后台批量退款预览结果")
@@ -27,13 +27,13 @@ public class HardBatchRefundPreviewVo {
private List<OrderItem> orders;
/**
* 批量退款预览汇总,数量和金额仅累计当前仍可退款的订单。
* 批量退款预览汇总,数量和金额仅累计可退款条目;普通模式按订单,售后模式按申请计数。
*/
@Data
@Schema(description = "批量退款预览汇总")
public static class Summary {
/** 当前请求中通过数据权限校验的订单数量。 */
/** 当前请求中通过数据权限校验的预览条目数;售后模式同一原订单的多条申请分别计数。 */
@Schema(description = "预览订单数")
private Integer selectedOrderCount;
@@ -53,15 +53,15 @@ public class HardBatchRefundPreviewVo {
@Schema(description = "菜品种类数")
private Integer productKindCount;
/** 可退款数量商品的剩余总份数,不包含称重商品。 */
/** 本次可退款数量商品的总份数,不包含称重商品;售后模式取原申请快照。 */
@Schema(description = "剩余可退商品总份数")
private Long productCount;
/** 可退款称重商品的剩余总重量,单位沿用购物车重量协议。 */
/** 本次可退款称重商品的总重量,单位沿用购物车重量协议;售后模式取原申请快照。 */
@Schema(description = "剩余可退商品总重量")
private BigDecimal productWeight;
/** 可退款订单的剩余可退总金额,单位为分。 */
/** 本次可退款总金额,单位分;普通模式累计剩余金额,售后模式累计原申请金额。 */
@Schema(description = "剩余可退总金额,单位分")
private Long refundPrice;
}
@@ -73,6 +73,18 @@ public class HardBatchRefundPreviewVo {
@Schema(description = "批量退款订单预览明细")
public static class OrderItem {
/** 已有售后申请的主键;仅售后批量审核模式返回,用于区分同一原订单的不同申请。 */
@Schema(description = "售后申请主键,普通订单退款为空")
private Long afterSaleId;
/** 申请创建时保存的售后单号;仅售后模式返回,历史数据可能为空。 */
@Schema(description = "售后单号")
private String afterSaleNo;
/** 原售后申请原因,仅供审核展示;批量确认不会覆盖申请原因。 */
@Schema(description = "原申请退款原因")
private String applyReason;
/** Hardware 订单主键,也是异步任务逐笔退款的稳定业务标识。 */
@Schema(description = "订单主键")
private Long orderId;
@@ -105,7 +117,7 @@ public class HardBatchRefundPreviewVo {
@Schema(description = "商户名称")
private String merchantName;
/** 当前已完成退款后剩余可退金额,单位为分。 */
/** 本次预计退款金额,单位为分;普通订单取剩余金额,售后模式取原申请核定金额。 */
@Schema(description = "剩余可退金额,单位分")
private Integer refundPrice;
@@ -117,13 +129,13 @@ public class HardBatchRefundPreviewVo {
@Schema(description = "不可退款原因")
private String unavailableReason;
/** 当前订单扣除待审核和已完成售后占用后的剩余商品。 */
/** 本次退款商品;普通订单取剩余商品,售后模式仅取该售后申请保存的商品快照。 */
@Schema(description = "剩余可退商品")
private List<ProductItem> products;
}
/**
* 单个商品的剩余可退数量、重量和商品金额。
* 本次退款商品的数量、重量和金额;普通模式使用剩余商品,售后模式使用原申请快照。
*/
@Data
@Schema(description = "批量退款商品预览明细")
@@ -149,7 +161,7 @@ public class HardBatchRefundPreviewVo {
@Schema(description = "剩余可退重量")
private BigDecimal productWeight;
/** 原购物车商品总价扣除有效售后占用后的剩余可退金额,单位为分。 */
/** 本次退款商品分摊金额,单位分;售后模式直接读取原申请保存的总价。 */
@Schema(description = "剩余可退商品金额,单位分")
private Long refundPrice;
}