实现租客成长等级并优化展示

This commit is contained in:
yml2213
2026-07-26 11:25:25 +08:00
parent 756fa342cb
commit 321f0781cf
27 changed files with 948 additions and 16 deletions
@@ -12,6 +12,7 @@ import (
"hfb_sys/backend/internal/model"
"hfb_sys/backend/internal/modules/adminnotification"
"hfb_sys/backend/internal/modules/notification"
"hfb_sys/backend/internal/modules/rentergrowth"
"hfb_sys/backend/internal/modules/wallet"
"hfb_sys/backend/pkg/money"
@@ -110,6 +111,11 @@ func (r *Repository) Arbitrate(ctx context.Context, adminID uint64, id uint64, r
if err := tx.Save(&row).Error; err != nil {
return err
}
if order.Status == "completed" {
if err := rentergrowth.AwardOrderCompleted(tx, &order, arbitrationActualRentCent(order, settlement), rentergrowth.SourceOrderCompleted); err != nil {
return err
}
}
if err := tx.Save(&order).Error; err != nil {
return err
}
@@ -194,6 +200,21 @@ func (r *Repository) Arbitrate(ctx context.Context, adminID uint64, id uint64, r
return &dto, nil
}
func arbitrationActualRentCent(order model.RentalOrder, settlement arbitrationSettlement) int64 {
rentRefundCent := settlement.RenterRefundAmountCent - settlement.RenterDepositRefundCent
if rentRefundCent < 0 {
rentRefundCent = 0
}
if rentRefundCent > order.RentAmountCent {
rentRefundCent = order.RentAmountCent
}
actualRentCent := order.RentAmountCent - rentRefundCent
if actualRentCent < 0 {
return 0
}
return actualRentCent
}
func isPlatformManagedOrder(order model.RentalOrder) bool {
return order.SettlementMode == "platform_managed" || order.HandoffMode == "platform"
}