fix(order): 支持待号主交接及异常状态下客服重置交接倒计时

This commit is contained in:
yml2213
2026-09-09 16:05:48 +08:00
parent 02d091434e
commit 17d4f7be9e
4 changed files with 114 additions and 6 deletions
@@ -254,7 +254,8 @@ func (r *Repository) AdminResetHandoff(ctx context.Context, adminID uint64, orde
}
func resetTargetForOrder(order model.RentalOrder) (adminResetTarget, bool) {
if order.Status == orderStatusPendingHandoff && order.HandoffStatus == handoffStatusOwnerTimeout {
if (order.Status == orderStatusPendingHandoff || order.Status == orderStatusAbnormal) &&
(order.HandoffStatus == handoffStatusOwnerTimeout || order.HandoffStatus == handoffStatusPendingOwner) {
return adminResetTarget{
OrderStatus: orderStatusPendingHandoff,
HandoffStatus: handoffStatusPendingOwner,
@@ -267,7 +268,8 @@ func resetTargetForOrder(order model.RentalOrder) (adminResetTarget, bool) {
RefreshStageTime: true,
}, true
}
if order.Status == orderStatusAbnormal && order.HandoffStatus == handoffStatusRenterConfirmTimeout {
if (order.Status == orderStatusPendingHandoff || order.Status == orderStatusAbnormal) &&
(order.HandoffStatus == handoffStatusRenterConfirmTimeout || order.HandoffStatus == handoffStatusPendingRenterConfirm) {
return adminResetTarget{
OrderStatus: orderStatusPendingHandoff,
HandoffStatus: handoffStatusPendingRenterConfirm,
@@ -280,9 +282,10 @@ func resetTargetForOrder(order model.RentalOrder) (adminResetTarget, bool) {
RefreshStageTime: true,
}, true
}
if order.Status == orderStatusAbnormal &&
if (order.Status == orderStatusPendingCheckoutConfirm || order.Status == orderStatusAbnormal) &&
(order.HandoffStatus == handoffStatusOwnerCheckoutConfirmTimeout ||
order.HandoffStatus == handoffStatusOwnerReturnConfirmTimeout) {
order.HandoffStatus == handoffStatusOwnerReturnConfirmTimeout ||
order.HandoffStatus == handoffStatusPendingOwnerCheckout) {
return adminResetTarget{
OrderStatus: orderStatusPendingCheckoutConfirm,
HandoffStatus: handoffStatusPendingOwnerCheckout,
@@ -295,7 +298,8 @@ func resetTargetForOrder(order model.RentalOrder) (adminResetTarget, bool) {
RefreshStageTime: true,
}, true
}
if order.Status == orderStatusOverdue && order.HandoffStatus == handoffStatusReturnOverdue {
if (order.Status == orderStatusOverdue || order.Status == orderStatusRenting || order.Status == orderStatusAbnormal) &&
order.HandoffStatus == handoffStatusReturnOverdue {
return adminResetTarget{
OrderStatus: orderStatusRenting,
HandoffStatus: handoffStatusReceived,