修复平台代管订单流程
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user