feat:商品预约导出

feat:个人菜谱预约统计
feat:预定扣库存
feat:过期订单自动退款
This commit is contained in:
dzc committed 2026-08-23 10:59:54 +08:00
1 parent a859b0ab19
commit e1cf5d5b90
43 files changed
+4060 -845

No files matched your search

@@ -33,6 +33,9 @@ public enum HardAfterSaleOperateTypeEnum {
/** 系统根据订单快照和商户配置免审完成退款。 */
SYSTEM_AUTO_REFUND("31", "系统自动退款"),
/** 系统按每日菜谱预约过期快照创建整单退款。 */
SYSTEM_EXPIRED_RESERVE_REFUND("32", "系统过期预约退款"),
/** 会员取消尚未审核的退款申请。 */
MEMBER_CANCEL("40", "会员取消退款"),
;
@@ -21,7 +21,12 @@ public enum HardAutoRefundTriggerTypeEnum {
/**
* 管理端技术人员对耗尽任务执行的一次额外尝试。
*/
MANUAL("30", "人工技术重试", false);
MANUAL("30", "人工技术重试", false),
/**
* 管理端业务人员对已到期候选订单确认后执行的逐单退款,不复用技术重试权限。
*/
EXPIRED_MANUAL("40", "后台逐单过期退款", false);
/**
* 数据库存储的稳定触发编码。
@@ -43,6 +43,10 @@ public class HardAutoRefundTaskPageDto {
@Schema(description = "任务状态")
private String status;
/** 任务场景编码;候选列表固定筛选过期预约任务。 */
@Schema(description = "任务场景")
private String taskType;
/**
* 任务创建时间闭区间,数组长度应为 2。
*/
@@ -26,6 +26,12 @@ public class HardCarDto extends HardCarEntity implements BaseIsIncludeTreeInterf
private Long merchantId;
/** 订单类型协议编码;详情查询传预约编码时仅统计预约订单,其他场景为空表示不限定。 */
private String orderType;
/** 是否只保留关联预约规则或预约记录的订单;为空或 false 时不增加预约关联限制。 */
private Boolean apptIdOrApptRuleIdNotNull;
private List<Long> mchIds;
/** 预计使用日期范围。 */
@@ -18,7 +18,8 @@ import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* Hardware 自动退款持久化任务。一个售后单最多创建一条任务,失败后由该记录持续驱动恢复。
* Hardware 自动退款持久化任务。售后免审任务创建时绑定售后单,过期预约任务在实际执行前允许暂不绑定,
* 失败后由该记录持续驱动恢复。
*/
@Data
@Builder
@@ -38,11 +39,15 @@ public class HardAutoRefundTaskEntity extends Model<HardAutoRefundTaskEntity> {
private Long id;
/**
* 售后单 ID,是任务唯一业务键和钱包退款幂等键。
* 售后单 ID;普通售后任务创建时必填,过期预约任务创建系统售后单前为空,完成后作为钱包退款幂等键。
*/
@Schema(description = "售后单ID")
private Long afterSaleId;
/** 任务场景编码;10为用户免审售后,20为过期预约退款。 */
@Schema(description = "任务场景")
private String taskType;
/**
* 原 Hardware 订单 ID,用于订单级分布式锁和退款状态聚合。
*/
@@ -73,6 +78,14 @@ public class HardAutoRefundTaskEntity extends Model<HardAutoRefundTaskEntity> {
@Schema(description = "免审资格截止时间")
private LocalDateTime eligibilityDeadline;
/** 过期预约任务的订单快照触发时间;旧售后任务为空。 */
@Schema(description = "过期退款触发时间")
private LocalDateTime triggerTime;
/** 任务创建时快照的退库存开关,1恢复、0不恢复。 */
@Schema(description = "退库存快照")
private String restoreInventory;
/**
* 当前任务状态编码,对应 HardAutoRefundTaskStatusEnum。
*/
@@ -159,6 +159,22 @@ public class HardOrderEntity extends Model<HardOrderEntity> {
@Schema(description = "自动退款申请截止时间")
private LocalDateTime autoRefundDeadline;
/** 每日菜谱过期退款配置 ID 快照;仅支付成功且下单时开关开启的新订单写入。 */
@Schema(description = "过期预约退款配置ID快照")
private Long expiredRefundConfigId;
/** 预约订单支付成功时解析出的实际餐段结束时间;为空表示无法安全确定过期资格。 */
@Schema(description = "过期预约餐段实际结束时间快照")
private LocalDateTime expiredRefundUsageEndTime;
/** 实际餐段结束时间加配置延迟后的过期退款触发时间。 */
@Schema(description = "过期预约退款触发时间")
private LocalDateTime expiredRefundDeadline;
/** 过期退款是否恢复库存的订单快照,1恢复、0不恢复。 */
@Schema(description = "过期预约退款退库存快照")
private String expiredRefundRestoreInventory;
/**
* 订单设备类型
*/
@@ -42,4 +42,12 @@ public class HardAutoRefundTaskVo extends HardAutoRefundTaskEntity {
*/
@Schema(description = "售后状态")
private String afterSaleStatus;
/** 预约订单实际使用日期,过期候选列表展示用。 */
@Schema(description = "预约日期")
private java.time.LocalDate apptUseDate;
/** 预约餐段编码,过期候选列表展示用。 */
@Schema(description = "餐段")
private String hourType;
}