|
|
|
@ -2,6 +2,7 @@ package manage
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"recook/internal/define"
|
|
|
|
|
"recook/internal/model/order"
|
|
|
|
|
"recook/internal/model/user"
|
|
|
|
|
"recook/internal/v2/lib/db"
|
|
|
|
|
"recook/internal/v2/model/gys/enterprise"
|
|
|
|
@ -124,6 +125,29 @@ func (r *RecookOrderGoodsDetailModel) TableName() string {
|
|
|
|
|
return "recook_order_goods_detail"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (r *RecookOrderGoodsDetailModel) GetSelfProfit(level int) decimal.Decimal {
|
|
|
|
|
base := r.GetBase()
|
|
|
|
|
switch level {
|
|
|
|
|
case 0:
|
|
|
|
|
return decimal.Zero
|
|
|
|
|
case 1:
|
|
|
|
|
self := base.Mul(order.Self.GetProfit()).Round(2)
|
|
|
|
|
brand := base.Mul(order.Brand.GetProfit()).Round(2)
|
|
|
|
|
return self.Add(brand)
|
|
|
|
|
case 2:
|
|
|
|
|
// 店铺买
|
|
|
|
|
self := base.Mul(order.Self.GetProfit()).Round(2)
|
|
|
|
|
brand := base.Mul(order.Brand.GetProfit()).Round(2)
|
|
|
|
|
shop := base.Mul(order.Shop.GetProfit()).Round(2)
|
|
|
|
|
return self.Add(brand).Add(shop)
|
|
|
|
|
case 10:
|
|
|
|
|
// 子公司 100%自购
|
|
|
|
|
return base.Mul(order.All.GetProfit())
|
|
|
|
|
default:
|
|
|
|
|
return decimal.Zero
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (r *RecookOrderGoodsDetailModel) GetBase() decimal.Decimal {
|
|
|
|
|
cost := r.PurchasePrice.Mul(decimal.NewFromFloat(1.03))
|
|
|
|
|
base := r.UnitPrice.Sub(cost).Mul(decimal.NewFromFloat32(define.Coefficient))
|
|
|
|
|