实现租客成长等级并优化展示
This commit is contained in:
@@ -82,6 +82,13 @@ func (row orderRow) toAdminDTO() OrderDTO {
|
||||
DepositOriginalAmountCent: effectiveDepositOriginalAmountCent(row.RentalOrder),
|
||||
DepositWaivedAmountCent: row.DepositWaivedAmountCent,
|
||||
PlatformFeeCent: &platformFeeCent,
|
||||
RentOriginalAmountCent: effectiveRentOriginalAmountCent(row.RentalOrder),
|
||||
RentDiscountAmountCent: row.RentDiscountAmountCent,
|
||||
RenterGrowthLevel: effectiveRenterGrowthLevel(row.RentalOrder),
|
||||
RenterGrowthLevelName: effectiveRenterGrowthLevelName(row.RentalOrder),
|
||||
RenterDiscountBps: effectiveRenterDiscountBps(row.RentalOrder),
|
||||
GrowthPointsAwarded: row.GrowthPointsAwarded,
|
||||
GrowthPointsAwardedAt: row.GrowthPointsAwardedAt,
|
||||
AccountSnapshot: row.AccountSnapshot,
|
||||
Status: row.Status,
|
||||
HandoffStatus: row.HandoffStatus,
|
||||
@@ -154,6 +161,34 @@ func effectiveDepositOriginalAmountCent(order model.RentalOrder) int64 {
|
||||
return order.DepositAmountCent
|
||||
}
|
||||
|
||||
func effectiveRentOriginalAmountCent(order model.RentalOrder) int64 {
|
||||
if order.RentOriginalAmountCent > 0 {
|
||||
return order.RentOriginalAmountCent
|
||||
}
|
||||
return order.RentAmountCent + order.RentDiscountAmountCent
|
||||
}
|
||||
|
||||
func effectiveRenterGrowthLevel(order model.RentalOrder) string {
|
||||
if order.RenterGrowthLevel != "" {
|
||||
return order.RenterGrowthLevel
|
||||
}
|
||||
return "normal"
|
||||
}
|
||||
|
||||
func effectiveRenterGrowthLevelName(order model.RentalOrder) string {
|
||||
if order.RenterGrowthLevelName != "" {
|
||||
return order.RenterGrowthLevelName
|
||||
}
|
||||
return "普通"
|
||||
}
|
||||
|
||||
func effectiveRenterDiscountBps(order model.RentalOrder) int {
|
||||
if order.RenterDiscountBps > 0 {
|
||||
return order.RenterDiscountBps
|
||||
}
|
||||
return 10000
|
||||
}
|
||||
|
||||
func toCheckoutAdminDTO(checkout model.OrderCheckout) CheckoutDTO {
|
||||
rentAmountCent := checkout.RentAmountCent
|
||||
ownerRentAmountCent := checkout.OwnerRentAmountCent
|
||||
@@ -275,6 +310,13 @@ func applyOrderPriceView(dto *OrderDTO, order model.RentalOrder, userID uint64)
|
||||
dto.DisplayAmountCent = ownerAmountCent
|
||||
dto.RentAmountCent = nil
|
||||
dto.OwnerRentAmountCent = &ownerAmountCent
|
||||
dto.RentOriginalAmountCent = 0
|
||||
dto.RentDiscountAmountCent = 0
|
||||
dto.RenterGrowthLevel = ""
|
||||
dto.RenterGrowthLevelName = ""
|
||||
dto.RenterDiscountBps = 0
|
||||
dto.GrowthPointsAwarded = 0
|
||||
dto.GrowthPointsAwardedAt = nil
|
||||
sanitizeOrderSnapshot(&dto.AccountSnapshot, "owner")
|
||||
case userID == order.RenterID:
|
||||
rentAmountCent := order.RentAmountCent
|
||||
@@ -282,12 +324,24 @@ func applyOrderPriceView(dto *OrderDTO, order model.RentalOrder, userID uint64)
|
||||
dto.DisplayAmountCent = rentAmountCent
|
||||
dto.RentAmountCent = &rentAmountCent
|
||||
dto.OwnerRentAmountCent = nil
|
||||
dto.RentOriginalAmountCent = effectiveRentOriginalAmountCent(order)
|
||||
dto.RentDiscountAmountCent = order.RentDiscountAmountCent
|
||||
dto.RenterGrowthLevel = effectiveRenterGrowthLevel(order)
|
||||
dto.RenterGrowthLevelName = effectiveRenterGrowthLevelName(order)
|
||||
dto.RenterDiscountBps = effectiveRenterDiscountBps(order)
|
||||
sanitizeOrderSnapshot(&dto.AccountSnapshot, "renter")
|
||||
default:
|
||||
dto.PriceRole = ""
|
||||
dto.DisplayAmountCent = 0
|
||||
dto.RentAmountCent = nil
|
||||
dto.OwnerRentAmountCent = nil
|
||||
dto.RentOriginalAmountCent = 0
|
||||
dto.RentDiscountAmountCent = 0
|
||||
dto.RenterGrowthLevel = ""
|
||||
dto.RenterGrowthLevelName = ""
|
||||
dto.RenterDiscountBps = 0
|
||||
dto.GrowthPointsAwarded = 0
|
||||
dto.GrowthPointsAwardedAt = nil
|
||||
sanitizeOrderSnapshot(&dto.AccountSnapshot, "")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user