feat 添加折扣属性
This commit is contained in:
parent
0653521e73
commit
7957d28fe0
@ -41,6 +41,7 @@ type Product struct {
|
|||||||
DWPrice float64 `json:"dwPrice"`
|
DWPrice float64 `json:"dwPrice"`
|
||||||
Freight float64 `json:"freight"` //运费
|
Freight float64 `json:"freight"` //运费
|
||||||
ExchangeRate float64 `json:"exchangeRate" gorm:"-"` //汇率
|
ExchangeRate float64 `json:"exchangeRate" gorm:"-"` //汇率
|
||||||
|
Discount int `json:"discount" gorm:"-"` //折扣
|
||||||
Rate float64 `json:"rate" gorm:"index"` //利润率
|
Rate float64 `json:"rate" gorm:"index"` //利润率
|
||||||
PriceStatus PriceStatus `json:"priceStatus"` //价格状态
|
PriceStatus PriceStatus `json:"priceStatus"` //价格状态
|
||||||
Remark string `json:"remark"` //备注
|
Remark string `json:"remark"` //备注
|
||||||
@ -79,23 +80,30 @@ func (p *Product) CalRate() {
|
|||||||
if p.Freight == 0 {
|
if p.Freight == 0 {
|
||||||
p.Freight = defaultFreight
|
p.Freight = defaultFreight
|
||||||
}
|
}
|
||||||
|
if p.Discount == 0 {
|
||||||
|
p.Discount = 100
|
||||||
|
}
|
||||||
|
|
||||||
//先计算打九折的价格
|
//先计算打九折的价格
|
||||||
tmpPrice := p.USPrice * 0.9 // 这是打九折的价格
|
tmpPrice := p.USPrice * 0.9 // 这是打九折的价格
|
||||||
p.CNYPrice = tmpPrice*p.ExchangeRate + p.Freight
|
p.CNYPrice = tmpPrice*p.ExchangeRate + p.Freight
|
||||||
calculationProcess = append(calculationProcess, fmt.Sprintf("【九折】%.2f * 0.9 * %.2f + %.2f = %.2f", p.USPrice, p.ExchangeRate, p.Freight, p.CNYPrice))
|
calculationProcess = append(calculationProcess, fmt.Sprintf("【九折】%.2f * 0.9 * %.2f + %.2f = %.2f", p.USPrice, p.ExchangeRate, p.Freight, p.CNYPrice))
|
||||||
if p.USPrice >= 150 {
|
var discountPrice = p.USPrice
|
||||||
calculationProcess = append(calculationProcess, fmt.Sprintf("【150 -20 】(%.2f - 20) * %.2f + %.2f = %.2f", p.USPrice, p.ExchangeRate, p.Freight, (p.USPrice-20)*p.ExchangeRate+p.Freight))
|
if 0 < p.Discount && p.Discount < 100 {
|
||||||
if p.USPrice-20 < tmpPrice {
|
discountPrice = p.USPrice * float64(p.Discount) / 100
|
||||||
|
}
|
||||||
|
if discountPrice >= 150 {
|
||||||
|
calculationProcess = append(calculationProcess, fmt.Sprintf("【150 -20】(%.2f * %d%% - 20) * %.2f + %.2f = %.2f", p.USPrice, p.Discount, p.ExchangeRate, p.Freight, (discountPrice-20)*p.ExchangeRate+p.Freight))
|
||||||
|
if discountPrice-20 < tmpPrice {
|
||||||
// 符合满150-20,而且比九折便宜
|
// 符合满150-20,而且比九折便宜
|
||||||
tmpPrice = p.USPrice - 20
|
tmpPrice = discountPrice - 20
|
||||||
p.CNYPrice = tmpPrice*p.ExchangeRate + p.Freight
|
p.CNYPrice = tmpPrice*p.ExchangeRate + p.Freight
|
||||||
}
|
}
|
||||||
} else if p.USPrice >= 100 {
|
} else if discountPrice >= 100 {
|
||||||
calculationProcess = append(calculationProcess, fmt.Sprintf("【100 -10 】(%.2f - 10) * %.2f + %.2f = %.2f", p.USPrice, p.ExchangeRate, p.Freight, (p.USPrice-10)*p.ExchangeRate+p.Freight))
|
calculationProcess = append(calculationProcess, fmt.Sprintf("【100 -10】(%.2f * %d%% - 10) * %.2f + %.2f = %.2f", p.USPrice, p.Discount, p.ExchangeRate, p.Freight, (discountPrice-10)*p.ExchangeRate+p.Freight))
|
||||||
if p.USPrice-10 < tmpPrice {
|
if discountPrice-10 < tmpPrice {
|
||||||
// 符合满100 -10,而且比九折便宜
|
// 符合满100 -10,而且比九折便宜
|
||||||
tmpPrice = p.USPrice - 10
|
tmpPrice = discountPrice - 10
|
||||||
p.CNYPrice = tmpPrice*p.ExchangeRate + p.Freight
|
p.CNYPrice = tmpPrice*p.ExchangeRate + p.Freight
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user