All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 6m53s
统一处理百分比和系数两种折扣输入方式,增加边界保护 在金额计算中使用math.Round进行四舍五入处理 添加相关单元测试确保计算准确性
15 lines
365 B
Go
15 lines
365 B
Go
package order
|
|
|
|
import (
|
|
"math"
|
|
"github.com/perfect-panel/server/internal/model/coupon"
|
|
)
|
|
|
|
func calculateCoupon(amount int64, couponInfo *coupon.Coupon) int64 {
|
|
if couponInfo.Type == 1 {
|
|
return int64(math.Round(float64(amount) * (float64(couponInfo.Discount) / float64(100))))
|
|
} else {
|
|
return min(couponInfo.Discount, amount)
|
|
}
|
|
}
|