Commit ee975ec5 by hcy

Merge branch 'hcy/2026.1.12-增加控制商品按钮' into dev

parents 39ef3bcc c70c6bdd
......@@ -97,7 +97,8 @@ type LySku struct {
OnwayStock int `json:"onway_stock"`
CompareRatio float64 `json:"compare_ratio"`
//兼容自营下单的字段,取成本价的第一个阶梯的人民币
Cost float64 `json:"cost"`
Cost float64 `json:"cost"`
CostNoTax float64 `json:"cost_no_tax"`
}
type DiscountRatio struct {
......
......@@ -45,6 +45,8 @@ todo 2 加入询价池、立即询价
todo 3 联系销售
规则1 且 规则2 不符合
return label_op 操作按钮,1加入购物车(立即购买) 2 加入询价池 3联系销售
*/
func (as *ActivityService) GetLabelOp(sku model.LySku) (op int) {
var taxCheck map[string]map[string]string
......@@ -53,15 +55,24 @@ func (as *ActivityService) GetLabelOp(sku model.LySku) (op int) {
}
forbidStatus, _ := Supplier.GetSkuForbidStatus(sku.SupplierId, sku.StandardBrand.StandardBrandId, sku.GoodsName, sku.GoodsId, sku.Eccn, sku.SpuId, sku.Canal, gconv.String(sku.ClassID1), gconv.String(sku.ClassID2), taxCheck)
op = 3 //联系销售
if sku.GoodsStatus == 1 && sku.IsExpire == 0 && forbidStatus == 0 && sku.Stock > 0 && sku.LadderPrice != nil && sku.Stock > sku.Moq {
if sku.AbilityLevel == 2 {
return 1 //可购买
} else {
return 2 //立即询价
switch sku.AbilityLevel { //履约级别:-1 无 0:弱履约,1:中履约;2:强履约
case -1:
op = 3
break
case 0:
op = 2
break
case 1:
op = 2
break
case 2:
op = 1 //可购买
break
}
} else {
return 3 //联系销售
}
return op
}
// 获取活动信息,目前是包括促销活动(系数打折)以及满赠活动
......
......@@ -248,6 +248,9 @@ func (ls *LyService) GetIsBuy(sku model.LySku) (isBuy int) {
if len(sku.LadderPrice) == 0 {
return
}
if sku.AbilityLevel == 0 {
return
}
if sku.Stock == 0 {
return
}
......@@ -309,13 +312,22 @@ func (ls *LyService) GetCoefficientAndPrice(sku model.LySku) model.LySku {
ladderPrice := sku.LadderPrice
//这里是存了一些特殊供应商价格的判断,数据库里不是所有供应商都是存的人民币/美金
sku = priceService.TransformSpecialSupplierPrice(sku)
//这里还有两个个特殊判断
//猎芯自营 L0018319 WMS同步过来的未税成本单价(人民币),需乘以关税,再填入到基石该SKU的 成本价——国内含税(¥)
// 香港自营(L0018562)WMS同步过来的未税成本单价(美金)
//需更新到 基石该SKU的 成本价——香港交货($)且也需乘美金转人民币汇率, 再乘以关税,填入到基石该SKU的 成本价——国内含税(¥)价
if sku.Canal == "L0018319" {
for _, price := range sku.OriginalPrice {
//这里要获取一个第一个阶梯的未税成本价
// L0003270 这个供应商的话
var costNoTax float64
if sku.Canal == "L0018319" || sku.Canal == "L0003270" {
for index, price := range sku.OriginalPrice {
priceCnNoTax := price.PriceCn
if index == 0 {
costNoTax = priceCnNoTax
if costNoTax == 0 {
continue
}
}
originalPrice = append(originalPrice, model.OriginPrice{
Purchases: price.Purchases,
PriceCn: c.MyRound(c.MulFloat(price.PriceCn, tax), 4),
......@@ -327,23 +339,33 @@ func (ls *LyService) GetCoefficientAndPrice(sku model.LySku) model.LySku {
}
}
if sku.Canal == "L0018562" {
if sku.Canal == "L0018562" || sku.Canal == "L0003270" {
redisCon := gredis.Conn("default_r")
defer redisCon.Close()
usdRatio, _ := redis.Float64(redisCon.Do("HGET", "erp_rate", 2))
for _, price := range sku.OriginalPrice {
for index, price := range sku.OriginalPrice {
priceCnNoTax := c.MulFloat(price.PriceUs, usdRatio)
if index == 0 {
costNoTax = priceCnNoTax
if costNoTax == 0 {
continue
}
}
originalPrice = append(originalPrice, model.OriginPrice{
Purchases: price.Purchases,
PriceCn: c.MyRound(c.MulFloat(price.PriceUs, usdRatio*tax), 4),
PriceCn: c.MyRound(c.MulFloat(priceCnNoTax, tax), 4),
PriceUs: price.PriceUs,
})
}
for index, price := range sku.LadderPrice {
if costNoTax == 0 {
continue
}
ladderPrice[index].PriceCn = c.MyRound(c.MulFloat(price.PriceUs, usdRatio*tax), 4)
}
}
sku.CostNoTax = costNoTax
//判断redis里面是否有成本价,有的话,那就直接去取价格,不需要生成阶梯价
//如果没有成本价字段,就要去生成阶梯价格
if len(ladderPrice) > 0 {
......@@ -380,7 +402,6 @@ func (ls *LyService) GetCoefficientAndPrice(sku model.LySku) model.LySku {
data[key].PriceCostCn = price.PriceCostCn
}
//判断原始价格有变化,那就要覆盖
if len(originalPrice) > 0 {
sku.OriginalPrice = originalPrice
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment