fix: 增加平台供货价

master
howell 3 years ago
parent d469ded996
commit d8d63c6f2e

@ -65,21 +65,22 @@ type priceSub struct {
}
type allPrice struct {
OriginalPrice decimal.Decimal `gorm:"column:original_price" json:"originalPrice"` // 重新计算折扣价
DiscountPrice decimal.Decimal `gorm:"column:discount_price" json:"discountPrice"`
Commission decimal.Decimal `gorm:"column:commission" json:"commission"`
PurchasePrice decimal.Decimal `gorm:"column:purchase_price" json:"purchasePrice"`
Min uint `gorm:"column:min_num" json:"min"`
Limit uint `gorm:"column:limit_num" json:"limit"`
SalePrice decimal.Decimal `gorm:"column:sale_price" json:"sale_price"`
OriginalPrice decimal.Decimal `gorm:"column:original_price" json:"originalPrice"` // 重新计算折扣价
DiscountPrice decimal.Decimal `gorm:"column:discount_price" json:"discountPrice"`
Commission decimal.Decimal `gorm:"column:commission" json:"commission"`
PurchasePrice decimal.Decimal `gorm:"column:purchase_price" json:"purchasePrice"`
Min uint `gorm:"column:min_num" json:"min"`
Limit uint `gorm:"column:limit_num" json:"limit"`
SalePrice decimal.Decimal `gorm:"column:sale_price" json:"sale_price"`
SalePurchasePrice decimal.Decimal `gorm:"column:sale_purchase_price" json:"-"`
}
func (o allPrice) GetSalePrice(level int) decimal.Decimal {
if level == 10 {
return o.PurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
return o.SalePurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
}
s1 := o.PurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
s1 = s1.Add(o.DiscountPrice.Sub(o.PurchasePrice).Mul(decimal.NewFromFloat(0.2)).Round(2))
s1 := o.SalePurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
s1 = s1.Add(o.DiscountPrice.Sub(o.SalePurchasePrice).Mul(decimal.NewFromFloat(0.2)).Round(2))
return s1.Round(2)
}
@ -328,7 +329,8 @@ func QueryGoodsDetailNew(c *gin.Context) {
"MIN(commission) AS commission, " +
"MIN(purchase_price) AS purchase_price, " +
"MIN(min_num) AS min_num, " +
"MIN(limit_num) AS limit_num "
"MIN(limit_num) AS limit_num, " +
"MIN(sale_purchase_price) as sale_purchase_price"
dbc.DB.Table((&goods.Sku{}).TableName()).Select(selectMinPriceStr).First(&minAllPrice, "goods_id = ?", p.GoodsID)
minAllPrice.SalePrice = minAllPrice.GetSalePrice(u1.Level)
@ -338,7 +340,8 @@ func QueryGoodsDetailNew(c *gin.Context) {
"MAX(commission) AS commission, " +
"MAX(purchase_price) AS purchase_price, " +
"MAX(min_num) AS min_num, " +
"MAX(limit_num) AS limit_num "
"MAX(limit_num) AS limit_num, " +
"MAX(sale_purchase_price) as sale_purchase_price"
dbc.DB.Table((&goods.Sku{}).TableName()).Select(selectMaxPriceStr).First(&maxAllPrice, "goods_id = ?", p.GoodsID)
maxAllPrice.SalePrice = maxAllPrice.GetSalePrice(u1.Level)

@ -7,31 +7,32 @@ import (
)
type Sku struct {
ID uint `gorm:"column:id;primary_key" json:"id"`
GoodsID uint `gorm:"column:goods_id" json:"goodsId"`
Name string `gorm:"column:name" json:"name"`
CombineID string `gorm:"column:combine_id" json:"combineId"`
PicURL string `gorm:"column:pic_url" json:"picUrl"`
Code string `gorm:"column:code" json:"code"`
PurchasePrice decimal.Decimal `gorm:"column:purchase_price" json:"purchasePrice"`
OriginalPrice decimal.Decimal `gorm:"column:original_price" json:"originalPrice"` // 原价
DiscountPrice decimal.Decimal `gorm:"column:discount_price" json:"discountPrice"` // 折扣价
CommissionRate decimal.Decimal `gorm:"column:commission_rate" json:"commissionRate"` // 佣金比
Commission decimal.Decimal `gorm:"column:commission" json:"commission"` // 佣金
SalePrice decimal.Decimal `json:"sale_price" gorm:"-"`
ControlPrice decimal.Decimal `gorm:"column:control_price" json:"controlPrice"` // 供应商最低控价
SalesVolume uint `gorm:"column:sales_volume" json:"salesVolume"` // 销售量 销售量只简单累加
Inventory uint `gorm:"column:inventory" json:"inventory"` // 库存量 可以直接补货
SalesVolumeInc uint `gorm:"column:sales_volume_inc" json:"salesVolumeInc"` // 销售量的增量
Coupon decimal.Decimal `gorm:"coupon" json:"coupon"`
GoodsNum string `gorm:"goods_num" json:"goodsNum"` //商品货号
BmSkuId string `gorm:"bm_sku_id" json:"bm_sku_id"` //舶茂的skuid
BmShopId string `gorm:"bm_shop_id" json:"bm_shop_id"` //舶茂的商家id
ThirdPartySkuId string `gorm:"column:third_party_sku_id" json:"thirdPartySkuId"` //第三方skuid
ThirdPartyType int `gorm:"column:third_party_type" json:"thirdPartySkuType"` //第三方类型
SaleInventory uint `json:"sale_inventory" gorm:"column:sale_inventory"`
Limit uint `json:"limit" gorm:"column:limit_num"`
Min uint `json:"min" gorm:"column:min_num"`
ID uint `gorm:"column:id;primary_key" json:"id"`
GoodsID uint `gorm:"column:goods_id" json:"goodsId"`
Name string `gorm:"column:name" json:"name"`
CombineID string `gorm:"column:combine_id" json:"combineId"`
PicURL string `gorm:"column:pic_url" json:"picUrl"`
Code string `gorm:"column:code" json:"code"`
PurchasePrice decimal.Decimal `gorm:"column:purchase_price" json:"purchasePrice"`
OriginalPrice decimal.Decimal `gorm:"column:original_price" json:"originalPrice"` // 原价
DiscountPrice decimal.Decimal `gorm:"column:discount_price" json:"discountPrice"` // 折扣价
CommissionRate decimal.Decimal `gorm:"column:commission_rate" json:"commissionRate"` // 佣金比
Commission decimal.Decimal `gorm:"column:commission" json:"commission"` // 佣金
SalePrice decimal.Decimal `json:"sale_price" gorm:"-"`
ControlPrice decimal.Decimal `gorm:"column:control_price" json:"controlPrice"` // 供应商最低控价
SalesVolume uint `gorm:"column:sales_volume" json:"salesVolume"` // 销售量 销售量只简单累加
Inventory uint `gorm:"column:inventory" json:"inventory"` // 库存量 可以直接补货
SalesVolumeInc uint `gorm:"column:sales_volume_inc" json:"salesVolumeInc"` // 销售量的增量
Coupon decimal.Decimal `gorm:"coupon" json:"coupon"`
GoodsNum string `gorm:"goods_num" json:"goodsNum"` //商品货号
BmSkuId string `gorm:"bm_sku_id" json:"bm_sku_id"` //舶茂的skuid
BmShopId string `gorm:"bm_shop_id" json:"bm_shop_id"` //舶茂的商家id
ThirdPartySkuId string `gorm:"column:third_party_sku_id" json:"thirdPartySkuId"` //第三方skuid
ThirdPartyType int `gorm:"column:third_party_type" json:"thirdPartySkuType"` //第三方类型
SaleInventory uint `json:"sale_inventory" gorm:"column:sale_inventory"`
Limit uint `json:"limit" gorm:"column:limit_num"`
Min uint `json:"min" gorm:"column:min_num"`
SalePurchasePrice decimal.Decimal `json:"sale_purchase_price" gorm:"column:sale_purchase_price"` // 批发供货价
}
// TableName sets the insert table name for this struct type
@ -47,9 +48,9 @@ func (r *Sku) GetBase() decimal.Decimal {
func (o *Sku) GetSalePrice(level int) decimal.Decimal {
if level == 10 {
return o.PurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
return o.SalePurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
}
s1 := o.PurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
s1 = s1.Add(o.DiscountPrice.Sub(o.PurchasePrice).Mul(decimal.NewFromFloat(0.2)).Round(2))
s1 := o.SalePurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
s1 = s1.Add(o.DiscountPrice.Sub(o.SalePurchasePrice).Mul(decimal.NewFromFloat(0.2)).Round(2))
return s1.Round(2)
}

@ -270,6 +270,10 @@ func (o logic) OrderPreview(args OrderPreview) (err error, res OrderPreviewInfo)
sl := make([]ShopCartSku, 0)
for _, v := range skuList {
if v.SalePurchasePrice.IsZero() {
err = errors.New("价格异常")
return
}
qu := decimal.NewFromInt(int64(idMap[v.Id]))
goodsInfo := v.GoodsInfo
one := order_preview.GoodsDetail{
@ -293,7 +297,7 @@ func (o logic) OrderPreview(args OrderPreview) (err error, res OrderPreviewInfo)
PromotionGoodsId: 0,
PromotionName: "",
UnitPrice: v.GetSalePrice(u1.Level),
PurchasePrice: v.PurchasePrice,
PurchasePrice: v.SalePurchasePrice,
TotalCommission: decimal.Zero,
GoodsAmount: v.GetSalePrice(u1.Level).Mul(qu),
IsImport: goodsInfo.IsImport,

@ -12,53 +12,54 @@ import (
type RecookGoodsSkuModel struct {
db.BaseModel
Id uint `gorm:"column:id;primary_key" json:"id"`
GoodsId uint `gorm:"column:goods_id" json:"goodsId"`
Name string `gorm:"column:name" json:"name"`
CombineId string `gorm:"column:combine_id" json:"combineId"`
PicURL string `gorm:"column:pic_url" json:"picUrl"`
Code string `gorm:"column:code" json:"code"`
PurchasePrice decimal.Decimal `gorm:"column:purchase_price" json:"purchasePrice"`
OriginalPrice decimal.Decimal `gorm:"column:original_price" json:"originalPrice"` // 原价
DiscountPrice decimal.Decimal `gorm:"column:discount_price" json:"discountPrice"` // 折扣价
CommissionRate decimal.Decimal `gorm:"column:commission_rate" json:"commissionRate"` // 佣金比
Commission decimal.Decimal `gorm:"column:commission" json:"commission"` // 佣金
ControlPrice decimal.Decimal `gorm:"column:control_price" json:"controlPrice"` // 供应商最低控价
SalesVolume uint `gorm:"column:sales_volume" json:"salesVolume"` // 销售量 销售量只简单累加
Inventory uint `gorm:"column:inventory" json:"inventory"` // 库存量 可以直接补货
SalesVolumeInc uint `gorm:"column:sales_volume_inc" json:"salesVolumeInc"` // 销售量的增量
Coupon decimal.Decimal `gorm:"column:coupon" json:"coupon"`
GoodsNum string `gorm:"column:goods_num" json:"goodsNum"` //商品货号
BmSkuId string `gorm:"column:bm_sku_id" json:"bm_sku_id"` //舶茂的skuid
BmShopId string `gorm:"column:bm_shop_id" json:"bm_shop_id"` //舶茂的商家id
ThirdPartySkuId string `gorm:"column:third_party_sku_id" json:"thirdPartySkuId"` //第三方skuid
ThirdPartyType int `gorm:"column:third_party_type" json:"thirdPartySkuType"` //第三方类型
TMallPrice string `gorm:"column:tmall_price" json:"tmallPrice"`
TMallUrl string `gorm:"column:tmall_url" json:"tmallUrl"`
JdPrice string `gorm:"column:jd_price" json:"jdPrice"`
JdUrl string `gorm:"column:jd_url" json:"jdUrl"`
GysSkuID uint `gorm:"gys_sku_id" json:"gys_sku_id"`
Invoice RecookSkuInvoiceModel `gorm:"foreignKey:SkuId" json:"invoice"`
DetailPhoto []RecookGoodsDetailPhotoModel `gorm:"foreignKey:GoodsID;references:GoodsId"`
Goods RecookGoodsInfoModel `gorm:"foreignKey:GoodsId"`
SecKill flashsale.RecookSecKillGoodsModel `gorm:"foreignKey:Id;references:GoodsSkuId"`
SecKillTemp flashsale.RecookSecKillGoodsModelTemp `gorm:"foreignKey:Id;references:GoodsSkuId"`
Length float64 `json:"length"`
Width float64 `json:"width"`
Height float64 `json:"height"`
Weight float64 `json:"weight"`
Limit int `json:"limit" gorm:"column:limit_num"`
Min int `json:"min" gorm:"column:min_num"`
SaleInventory uint `json:"sale_inventory"`
GoodsInfo *RecookGoodsInfoModel `json:"-" gorm:"foreignKey:goods_id"`
Id uint `gorm:"column:id;primary_key" json:"id"`
GoodsId uint `gorm:"column:goods_id" json:"goodsId"`
Name string `gorm:"column:name" json:"name"`
CombineId string `gorm:"column:combine_id" json:"combineId"`
PicURL string `gorm:"column:pic_url" json:"picUrl"`
Code string `gorm:"column:code" json:"code"`
PurchasePrice decimal.Decimal `gorm:"column:purchase_price" json:"purchasePrice"`
OriginalPrice decimal.Decimal `gorm:"column:original_price" json:"originalPrice"` // 原价
DiscountPrice decimal.Decimal `gorm:"column:discount_price" json:"discountPrice"` // 折扣价
CommissionRate decimal.Decimal `gorm:"column:commission_rate" json:"commissionRate"` // 佣金比
Commission decimal.Decimal `gorm:"column:commission" json:"commission"` // 佣金
ControlPrice decimal.Decimal `gorm:"column:control_price" json:"controlPrice"` // 供应商最低控价
SalesVolume uint `gorm:"column:sales_volume" json:"salesVolume"` // 销售量 销售量只简单累加
Inventory uint `gorm:"column:inventory" json:"inventory"` // 库存量 可以直接补货
SalesVolumeInc uint `gorm:"column:sales_volume_inc" json:"salesVolumeInc"` // 销售量的增量
Coupon decimal.Decimal `gorm:"column:coupon" json:"coupon"`
GoodsNum string `gorm:"column:goods_num" json:"goodsNum"` //商品货号
BmSkuId string `gorm:"column:bm_sku_id" json:"bm_sku_id"` //舶茂的skuid
BmShopId string `gorm:"column:bm_shop_id" json:"bm_shop_id"` //舶茂的商家id
ThirdPartySkuId string `gorm:"column:third_party_sku_id" json:"thirdPartySkuId"` //第三方skuid
ThirdPartyType int `gorm:"column:third_party_type" json:"thirdPartySkuType"` //第三方类型
TMallPrice string `gorm:"column:tmall_price" json:"tmallPrice"`
TMallUrl string `gorm:"column:tmall_url" json:"tmallUrl"`
JdPrice string `gorm:"column:jd_price" json:"jdPrice"`
JdUrl string `gorm:"column:jd_url" json:"jdUrl"`
GysSkuID uint `gorm:"gys_sku_id" json:"gys_sku_id"`
Invoice RecookSkuInvoiceModel `gorm:"foreignKey:SkuId" json:"invoice"`
DetailPhoto []RecookGoodsDetailPhotoModel `gorm:"foreignKey:GoodsID;references:GoodsId"`
Goods RecookGoodsInfoModel `gorm:"foreignKey:GoodsId"`
SecKill flashsale.RecookSecKillGoodsModel `gorm:"foreignKey:Id;references:GoodsSkuId"`
SecKillTemp flashsale.RecookSecKillGoodsModelTemp `gorm:"foreignKey:Id;references:GoodsSkuId"`
Length float64 `json:"length"`
Width float64 `json:"width"`
Height float64 `json:"height"`
Weight float64 `json:"weight"`
Limit int `json:"limit" gorm:"column:limit_num"`
Min int `json:"min" gorm:"column:min_num"`
SaleInventory uint `json:"sale_inventory"`
GoodsInfo *RecookGoodsInfoModel `json:"-" gorm:"foreignKey:goods_id"`
SalePurchasePrice decimal.Decimal `json:"sale_purchase_price" gorm:"column:sale_purchase_price"`
}
func (r *RecookGoodsSkuModel) GetSalePrice(level int) decimal.Decimal {
if level == 10 {
return r.PurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
return r.SalePurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
}
s1 := r.PurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
s1 = s1.Add(r.DiscountPrice.Sub(r.PurchasePrice).Mul(decimal.NewFromFloat(0.2)).Round(2))
s1 := r.SalePurchasePrice.Mul(decimal.NewFromFloat(1.03)).Round(2)
s1 = s1.Add(r.DiscountPrice.Sub(r.SalePurchasePrice).Mul(decimal.NewFromFloat(0.2)).Round(2))
return s1.Round(2)
}

Loading…
Cancel
Save