update: Added support for floating-point calculations for discounts

This commit is contained in:
EUForest 2025-11-21 17:40:03 +08:00
parent c1efb23354
commit 95ddba2332

View File

@ -3,7 +3,7 @@ package order
import "github.com/perfect-panel/server/internal/types" import "github.com/perfect-panel/server/internal/types"
func getDiscount(discounts []types.SubscribeDiscount, inputMonths int64) float64 { func getDiscount(discounts []types.SubscribeDiscount, inputMonths int64) float64 {
var finalDiscount int64 = 100 var finalDiscount float64 = 100
for _, discount := range discounts { for _, discount := range discounts {
if inputMonths >= discount.Quantity && discount.Discount < finalDiscount { if inputMonths >= discount.Quantity && discount.Discount < finalDiscount {
@ -11,5 +11,5 @@ func getDiscount(discounts []types.SubscribeDiscount, inputMonths int64) float64
} }
} }
return float64(finalDiscount) / float64(100) return finalDiscount / float64(100)
} }