修复平台代管订单流程

This commit is contained in:
yml2213
2026-07-25 19:17:19 +08:00
parent e0cb15f408
commit 4bc25b87d8
35 changed files with 2216 additions and 284 deletions
@@ -20,7 +20,9 @@ func (r *Repository) finalizeCheckout(tx *gorm.DB, order *model.RentalOrder, che
order.HandoffStatus = handoffStatusReturned
order.SettlementStatus = settlementStatusSettled
order.SettledAt = &now
order.OwnerSettledAt = &now
if !isPlatformSettlementOrder(*order) {
order.OwnerSettledAt = &now
}
if err := completeAssets(tx, listing, account); err != nil {
return nil, err
}
@@ -48,6 +50,16 @@ func (r *Repository) finalizeCheckout(tx *gorm.DB, order *model.RentalOrder, che
}
func appendCheckoutOwnerIncome(tx *gorm.DB, order *model.RentalOrder, settlement checkoutSettlement) error {
if isPlatformSettlementOrder(*order) {
amountCent := settlement.OwnerRentIncomeCent + settlement.DepositCompensationCent
order.OfflineSettlementAmountCent = amountCent
if amountCent > 0 {
order.OfflineSettlementStatus = offlineSettlementStatusPending
} else {
order.OfflineSettlementStatus = offlineSettlementStatusNone
}
return nil
}
orderID := order.ID
var ownerEntries []wallet.Entry
if settlement.OwnerRentIncomeCent > 0 {
@@ -102,6 +114,22 @@ func applyCheckoutSettlement(checkout *model.OrderCheckout, settlement checkoutS
func appendCheckoutCompletedNotifications(tx *gorm.DB, order *model.RentalOrder, renterContent string) error {
orderID := order.ID
if isPlatformSettlementOrder(*order) {
if err := notification.Append(tx, notification.Entry{
UserID: order.RenterID,
Type: "settlement",
Title: "订单已完成",
Content: renterContent,
BizType: "order",
BizID: &orderID,
}); err != nil {
return err
}
if order.OfflineSettlementAmountCent > 0 {
return appendManagedAdminNotification(tx, *order, "settlement", "代管订单待线下结算", "订单已完成,请按线下流程向卖家转出结算金额并回填状态。")
}
return nil
}
return notification.Append(tx,
notification.Entry{
UserID: order.RenterID,