优化仲裁
This commit is contained in:
@@ -50,9 +50,28 @@ type ActualPureCoinAmounts struct {
|
||||
ConsumedM float64
|
||||
}
|
||||
|
||||
// ActualCheckoutSettlement 是正常结账与仲裁共用的实际消耗结算结果。
|
||||
type ActualCheckoutSettlement struct {
|
||||
OwnerRentIncomeCent int64
|
||||
DepositCompensationCent int64
|
||||
OwnerIncomeCent int64
|
||||
RentRefundCent int64
|
||||
DepositRefundCent int64
|
||||
RenterRefundCent int64
|
||||
PlatformFeeCent int64
|
||||
ActualRentAmountCent int64
|
||||
PureCoinAmountCent int64
|
||||
PureCoinDiscountCent int64
|
||||
PureCoinPayableCent int64
|
||||
ExtraItemAmountCent int64
|
||||
CoinConsumedM float64
|
||||
OvershootAmountCent int64
|
||||
ShortfallCent int64
|
||||
}
|
||||
|
||||
// CalculateActualPureCoinAmounts 按订单价格快照和实际消耗 M 计算纯币原价及等级优惠。
|
||||
func CalculateActualPureCoinAmounts(order model.RentalOrder, coinConsumedM float64) ActualPureCoinAmounts {
|
||||
settlement := calculateCheckoutSettlement(order, 0, coinConsumedM, 0)
|
||||
settlement := CalculateActualCheckoutSettlement(order, 0, coinConsumedM, 0)
|
||||
return ActualPureCoinAmounts{
|
||||
AmountCent: settlement.PureCoinAmountCent,
|
||||
DiscountCent: settlement.PureCoinDiscountCent,
|
||||
@@ -61,6 +80,31 @@ func CalculateActualPureCoinAmounts(order model.RentalOrder, coinConsumedM float
|
||||
}
|
||||
}
|
||||
|
||||
// CalculateActualCheckoutSettlement 按实际纯币和额外物品消耗计算完整结算。
|
||||
func CalculateActualCheckoutSettlement(order model.RentalOrder, consumableAmountCent int64, coinConsumedM float64, depositDeductAmountCent int64) ActualCheckoutSettlement {
|
||||
return toActualCheckoutSettlement(calculateCheckoutSettlement(order, consumableAmountCent, coinConsumedM, depositDeductAmountCent))
|
||||
}
|
||||
|
||||
func toActualCheckoutSettlement(settlement checkoutSettlement) ActualCheckoutSettlement {
|
||||
return ActualCheckoutSettlement{
|
||||
OwnerRentIncomeCent: settlement.OwnerRentIncomeCent,
|
||||
DepositCompensationCent: settlement.DepositCompensationCent,
|
||||
OwnerIncomeCent: settlement.OwnerIncomeCent,
|
||||
RentRefundCent: settlement.RentRefundCent,
|
||||
DepositRefundCent: settlement.DepositRefundCent,
|
||||
RenterRefundCent: settlement.RenterRefundCent,
|
||||
PlatformFeeCent: settlement.PlatformFeeCent,
|
||||
ActualRentAmountCent: settlement.ActualRentAmountCent,
|
||||
PureCoinAmountCent: settlement.PureCoinAmountCent,
|
||||
PureCoinDiscountCent: settlement.PureCoinDiscountCent,
|
||||
PureCoinPayableCent: settlement.PureCoinPayableCent,
|
||||
ExtraItemAmountCent: settlement.ExtraItemAmountCent,
|
||||
CoinConsumedM: settlement.CoinConsumedM,
|
||||
OvershootAmountCent: settlement.OvershootAmountCent,
|
||||
ShortfallCent: settlement.ShortfallCent,
|
||||
}
|
||||
}
|
||||
|
||||
func orderDurationHours(order model.RentalOrder) int {
|
||||
if order.EstimatedDurationHours > 0 {
|
||||
return order.EstimatedDurationHours
|
||||
|
||||
Reference in New Issue
Block a user