支持平台代管客服一键交接

This commit is contained in:
yml2213
2026-08-20 16:43:45 +08:00
parent b0d4d5bfef
commit cc974f954f
3 changed files with 84 additions and 5 deletions
@@ -13,7 +13,13 @@ import (
)
func canAdminForceHandoff(order model.RentalOrder) bool {
if isPlatformHandoffOrder(order) || isPlatformSettlementOrder(order) {
if isPlatformHandoffOrder(order) {
if order.Status == orderStatusPendingHandoff {
return order.HandoffStatus == handoffStatusPendingRenterConfirm
}
return order.Status == orderStatusAbnormal && order.HandoffStatus == handoffStatusRenterConfirmTimeout
}
if isPlatformSettlementOrder(order) {
return false
}
if order.Status == orderStatusPendingHandoff {
@@ -24,11 +30,18 @@ func canAdminForceHandoff(order model.RentalOrder) bool {
return order.Status == orderStatusAbnormal && order.HandoffStatus == handoffStatusRenterConfirmTimeout
}
func forceHandoffRecordType(order model.RentalOrder) string {
if isPlatformHandoffOrder(order) {
return "platform_handoff"
}
return "owner_handoff"
}
func forceHandoffNeedsContent(order model.RentalOrder) bool {
return order.HandoffStatus == handoffStatusPendingOwner || order.HandoffStatus == handoffStatusOwnerTimeout
}
// AdminForceHandoff 由客服确认普通号主订单已完成线下交接,并立即开始租期。
// AdminForceHandoff 由客服确认订单已完成交接,并立即开始租期。
func (r *Repository) AdminForceHandoff(ctx context.Context, adminID uint64, orderID uint64, req ForceHandoffRequest, meta AuditMeta) error {
return r.db.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
var order model.RentalOrder
@@ -60,7 +73,7 @@ func (r *Repository) AdminForceHandoff(ctx context.Context, adminID uint64, orde
if !needsContent {
var handoffCount int64
if err := tx.Model(&model.HandoffRecord{}).
Where("order_id = ? AND type = ?", order.ID, "owner_handoff").
Where("order_id = ? AND type = ?", order.ID, forceHandoffRecordType(order)).
Count(&handoffCount).Error; err != nil {
return err
}