[Snow Team] backend-fixer: auto-commit work
This commit is contained in:
@@ -185,11 +185,17 @@ func (r *Repository) Create(renterID uint64, req CreateRequest) (*OrderDTO, erro
|
||||
OwnerID: listing.OwnerID,
|
||||
RenterID: renterID,
|
||||
EstimatedDurationHours: rentHours,
|
||||
RentAmount: float64(pricing.RentAmountCent) / 100,
|
||||
RentAmountCent: pricing.RentAmountCent,
|
||||
OwnerRentAmount: float64(pricing.OwnerRentAmountCent) / 100,
|
||||
OwnerRentAmountCent: pricing.OwnerRentAmountCent,
|
||||
DepositAmount: paidDepositAmount,
|
||||
DepositAmountCent: int64(math.Round(paidDepositAmount * 100)),
|
||||
DepositOriginalAmount: depositOriginalAmount,
|
||||
DepositOriginalAmountCent: int64(math.Round(depositOriginalAmount * 100)),
|
||||
DepositWaivedAmount: waivedDepositAmount,
|
||||
DepositWaivedAmountCent: int64(math.Round(waivedDepositAmount * 100)),
|
||||
PlatformFee: float64(pricing.PlatformFeeCent) / 100,
|
||||
PlatformFeeCent: pricing.PlatformFeeCent,
|
||||
AccountSnapshot: snapshot,
|
||||
Status: "pending_payment",
|
||||
@@ -690,10 +696,10 @@ func (r *Repository) CounterCheckout(userID uint64, orderID uint64, req CounterC
|
||||
return nil, err
|
||||
}
|
||||
dto := toCheckoutDTOForUser(*checkout, userID, model.RentalOrder{
|
||||
OwnerID: userID,
|
||||
RentAmountCent: int64(math.Round(checkout.RentAmount * 100)),
|
||||
OwnerID: userID,
|
||||
RentAmountCent: int64(math.Round(checkout.RentAmount * 100)),
|
||||
OwnerRentAmountCent: int64(math.Round(checkout.OwnerRentAmount * 100)),
|
||||
DepositAmountCent: int64(math.Round(checkout.DepositAmount * 100)),
|
||||
DepositAmountCent: int64(math.Round(checkout.DepositAmount * 100)),
|
||||
})
|
||||
return &dto, nil
|
||||
}
|
||||
@@ -1244,21 +1250,30 @@ func buildCheckout(order model.RentalOrder, initiatedBy uint64, status string, c
|
||||
return model.OrderCheckout{}, err
|
||||
}
|
||||
return model.OrderCheckout{
|
||||
OrderID: order.ID,
|
||||
InitiatedBy: initiatedBy,
|
||||
Status: status,
|
||||
RentAmount: float64(settlement.ActualRentAmountCent) / 100,
|
||||
OwnerRentAmount: float64(settlement.OwnerRentIncomeCent) / 100,
|
||||
PlatformFee: float64(settlement.PlatformFeeCent) / 100,
|
||||
DepositAmount: depositAmountFromCent,
|
||||
ConsumableAmount: consumableAmount,
|
||||
CoinConsumedM: roundQuantity(coinConsumedM),
|
||||
OtherAmount: otherAmount,
|
||||
DepositDeductAmount: roundMoney(deductAmount),
|
||||
RenterRefundAmount: float64(settlement.RenterRefundCent) / 100,
|
||||
OwnerIncomeAmount: float64(settlement.OwnerIncomeCent) / 100,
|
||||
Content: content,
|
||||
EvidenceURLS: evidence,
|
||||
OrderID: order.ID,
|
||||
InitiatedBy: initiatedBy,
|
||||
Status: status,
|
||||
RentAmount: float64(settlement.ActualRentAmountCent) / 100,
|
||||
RentAmountCent: settlement.ActualRentAmountCent,
|
||||
OwnerRentAmount: float64(settlement.OwnerRentIncomeCent) / 100,
|
||||
OwnerRentAmountCent: settlement.OwnerRentIncomeCent,
|
||||
PlatformFee: float64(settlement.PlatformFeeCent) / 100,
|
||||
PlatformFeeCent: settlement.PlatformFeeCent,
|
||||
DepositAmount: depositAmountFromCent,
|
||||
DepositAmountCent: order.DepositAmountCent,
|
||||
ConsumableAmount: consumableAmount,
|
||||
ConsumableAmountCent: int64(math.Round(consumableAmount * 100)),
|
||||
CoinConsumedM: roundQuantity(coinConsumedM),
|
||||
OtherAmount: otherAmount,
|
||||
OtherAmountCent: int64(math.Round(otherAmount * 100)),
|
||||
DepositDeductAmount: roundMoney(deductAmount),
|
||||
DepositDeductAmountCent: settlement.DepositCompensationCent,
|
||||
RenterRefundAmount: float64(settlement.RenterRefundCent) / 100,
|
||||
RenterRefundAmountCent: settlement.RenterRefundCent,
|
||||
OwnerIncomeAmount: float64(settlement.OwnerIncomeCent) / 100,
|
||||
OwnerIncomeAmountCent: settlement.OwnerIncomeCent,
|
||||
Content: content,
|
||||
EvidenceURLS: evidence,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@ import (
|
||||
|
||||
func TestCalculateCheckoutSettlementRefundsUnusedRent(t *testing.T) {
|
||||
order := model.RentalOrder{
|
||||
RentAmount: 383,
|
||||
OwnerRentAmount: 353,
|
||||
DepositAmount: 150,
|
||||
RentAmountCent: 38300,
|
||||
OwnerRentAmountCent: 35300,
|
||||
DepositAmountCent: 15000,
|
||||
AccountSnapshot: datatypes.JSON([]byte(`{
|
||||
"haf_coin_amount": 100000000,
|
||||
"asset_summary": {
|
||||
@@ -30,35 +30,35 @@ func TestCalculateCheckoutSettlementRefundsUnusedRent(t *testing.T) {
|
||||
settlement := calculateCheckoutSettlement(order, 7, 90, 0)
|
||||
|
||||
// 角精度:243.7 = roundMoney(236.7 + 7)
|
||||
if settlement.ActualRentAmount != 243.7 {
|
||||
t.Fatalf("ActualRentAmount = %.1f, want 243.7", settlement.ActualRentAmount)
|
||||
if float64(settlement.ActualRentAmountCent)/100 != 243.7 {
|
||||
t.Fatalf("ActualRentAmount = %.1f, want 243.7", float64(settlement.ActualRentAmountCent)/100)
|
||||
}
|
||||
// 角精度:216.7 = roundMoney(209.7 + 7) 卖家币价+消耗品
|
||||
if settlement.OwnerRentIncome != 216.7 {
|
||||
t.Fatalf("OwnerRentIncome = %.1f, want 216.7", settlement.OwnerRentIncome)
|
||||
if float64(settlement.OwnerRentIncomeCent)/100 != 216.7 {
|
||||
t.Fatalf("OwnerRentIncome = %.1f, want 216.7", float64(settlement.OwnerRentIncomeCent)/100)
|
||||
}
|
||||
// 角精度:27.0 = roundMoney(27) 平台费
|
||||
if settlement.PlatformFee != 27.0 {
|
||||
t.Fatalf("PlatformFee = %.1f, want 27.0", settlement.PlatformFee)
|
||||
if float64(settlement.PlatformFeeCent)/100 != 27.0 {
|
||||
t.Fatalf("PlatformFee = %.1f, want 27.0", float64(settlement.PlatformFeeCent)/100)
|
||||
}
|
||||
// 角精度:139.3 = roundMoney(383 - 243.7)
|
||||
if settlement.RentRefund != 139.3 {
|
||||
t.Fatalf("RentRefund = %.1f, want 139.3", settlement.RentRefund)
|
||||
if float64(settlement.RentRefundCent)/100 != 139.3 {
|
||||
t.Fatalf("RentRefund = %.1f, want 139.3", float64(settlement.RentRefundCent)/100)
|
||||
}
|
||||
if settlement.DepositRefund != 150 {
|
||||
t.Fatalf("DepositRefund = %.1f, want 150.0", settlement.DepositRefund)
|
||||
if float64(settlement.DepositRefundCent)/100 != 150 {
|
||||
t.Fatalf("DepositRefund = %.1f, want 150.0", float64(settlement.DepositRefundCent)/100)
|
||||
}
|
||||
// 角精度:289.3 = roundMoney(139.3 + 150)
|
||||
if settlement.RenterRefund != 289.3 {
|
||||
t.Fatalf("RenterRefund = %.1f, want 289.3", settlement.RenterRefund)
|
||||
if float64(settlement.RenterRefundCent)/100 != 289.3 {
|
||||
t.Fatalf("RenterRefund = %.1f, want 289.3", float64(settlement.RenterRefundCent)/100)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCalculateCheckoutSettlementUsesBuyerAndSellerRatiosSeparately(t *testing.T) {
|
||||
order := model.RentalOrder{
|
||||
RentAmount: 383,
|
||||
OwnerRentAmount: 353,
|
||||
DepositAmount: 150,
|
||||
RentAmountCent: 38300,
|
||||
OwnerRentAmountCent: 35300,
|
||||
DepositAmountCent: 15000,
|
||||
AccountSnapshot: datatypes.JSON([]byte(`{
|
||||
"haf_coin_amount": 100000000,
|
||||
"asset_summary": {
|
||||
@@ -74,24 +74,24 @@ func TestCalculateCheckoutSettlementUsesBuyerAndSellerRatiosSeparately(t *testin
|
||||
settlement := calculateCheckoutSettlement(order, 0, 50, 0)
|
||||
|
||||
// 角精度:131.5 = roundMoney(131.5)
|
||||
if settlement.ActualRentAmount != 131.5 {
|
||||
t.Fatalf("租客侧实际租金 = %.1f, want 131.5", settlement.ActualRentAmount)
|
||||
if float64(settlement.ActualRentAmountCent)/100 != 131.5 {
|
||||
t.Fatalf("租客侧实际租金 = %.1f, want 131.5", float64(settlement.ActualRentAmountCent)/100)
|
||||
}
|
||||
// 角精度:116.5 = roundMoney(116.5)
|
||||
if settlement.OwnerRentIncome != 116.5 {
|
||||
t.Fatalf("卖家侧租金收入 = %.1f, want 116.5", settlement.OwnerRentIncome)
|
||||
if float64(settlement.OwnerRentIncomeCent)/100 != 116.5 {
|
||||
t.Fatalf("卖家侧租金收入 = %.1f, want 116.5", float64(settlement.OwnerRentIncomeCent)/100)
|
||||
}
|
||||
// 角精度:15.0 = roundMoney(15)
|
||||
if settlement.PlatformFee != 15.0 {
|
||||
t.Fatalf("平台差价 = %.1f, want 15.0", settlement.PlatformFee)
|
||||
if float64(settlement.PlatformFeeCent)/100 != 15.0 {
|
||||
t.Fatalf("平台差价 = %.1f, want 15.0", float64(settlement.PlatformFeeCent)/100)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCalculateCheckoutSettlementAddsDepositCompensation(t *testing.T) {
|
||||
order := model.RentalOrder{
|
||||
RentAmount: 383,
|
||||
OwnerRentAmount: 353,
|
||||
DepositAmount: 150,
|
||||
RentAmountCent: 38300,
|
||||
OwnerRentAmountCent: 35300,
|
||||
DepositAmountCent: 15000,
|
||||
AccountSnapshot: datatypes.JSON([]byte(`{
|
||||
"haf_coin_amount": 100000000,
|
||||
"asset_summary": {
|
||||
@@ -106,20 +106,20 @@ func TestCalculateCheckoutSettlementAddsDepositCompensation(t *testing.T) {
|
||||
|
||||
settlement := calculateCheckoutSettlement(order, 120, 100, 30)
|
||||
|
||||
if settlement.ActualRentAmount != 383 {
|
||||
t.Fatalf("ActualRentAmount = %.2f, want 383.00", settlement.ActualRentAmount)
|
||||
if float64(settlement.ActualRentAmountCent)/100 != 383 {
|
||||
t.Fatalf("ActualRentAmount = %.2f, want 383.00", float64(settlement.ActualRentAmountCent)/100)
|
||||
}
|
||||
if settlement.OwnerRentIncome != 353 {
|
||||
t.Fatalf("OwnerRentIncome = %.2f, want 353.00", settlement.OwnerRentIncome)
|
||||
if float64(settlement.OwnerRentIncomeCent)/100 != 353 {
|
||||
t.Fatalf("OwnerRentIncome = %.2f, want 353.00", float64(settlement.OwnerRentIncomeCent)/100)
|
||||
}
|
||||
if settlement.DepositCompensation != 30 {
|
||||
t.Fatalf("DepositCompensation = %.2f, want 30.00", settlement.DepositCompensation)
|
||||
if float64(settlement.DepositCompensationCent)/100 != 30 {
|
||||
t.Fatalf("DepositCompensation = %.2f, want 30.00", float64(settlement.DepositCompensationCent)/100)
|
||||
}
|
||||
if settlement.OwnerIncome != 383 {
|
||||
t.Fatalf("OwnerIncome = %.2f, want 383.00", settlement.OwnerIncome)
|
||||
if float64(settlement.OwnerIncomeCent)/100 != 383 {
|
||||
t.Fatalf("OwnerIncome = %.2f, want 383.00", float64(settlement.OwnerIncomeCent)/100)
|
||||
}
|
||||
if settlement.RenterRefund != 120 {
|
||||
t.Fatalf("RenterRefund = %.2f, want 120.00", settlement.RenterRefund)
|
||||
if float64(settlement.RenterRefundCent)/100 != 120 {
|
||||
t.Fatalf("RenterRefund = %.2f, want 120.00", float64(settlement.RenterRefundCent)/100)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user