添加库存接口

master
kanade 3 years ago
parent 9bb1708ea4
commit 2cc07d6bde

@ -20,6 +20,7 @@ import (
"recook/internal/model/vend"
"recook/internal/v2/lib/jcook"
"recook/internal/v2/lib/shama"
"recook/internal/v2/lib/supply"
"recook/internal/v2/model/flashsale"
goods2 "recook/internal/v2/model/recook/goods"
"recook/tools"
@ -295,6 +296,42 @@ func CreatePreviewNormalOrder(c *gin.Context) {
}
expressFee = resp2.Fee
preOrderAddr.IsDeliveryArea = 1
case 5: // 供应链接口
if len(p.Address) == 0 {
p.Address = defaultAddr.GetAddress()
}
id, _ := strconv.Atoi(sku.ThirdPartySkuId)
stock, err := supply.Api.Sku.Stock(p.Address, []supply.SkuStockItem{{
SkuId: uint(id),
Quantity: 1,
}})
if err != nil {
back.Err(c, err.Error())
return
}
for _, skuStock := range stock {
if skuStock.State == supply.SkuStateOut {
back.Err(c, "该地区该商品无货")
return
}
}
freightFees, err := supply.Api.Order.FreightFee(p.Address, []supply.OrderFreightFeeItem{{
SkuId: uint(id),
Quantity: 1,
Price: sku.PurchasePrice,
}})
if err != nil {
back.Err(c, err.Error())
return
}
for _, freightFee := range freightFees {
if freightFee.ErrCode == supply.ReplyOrderFreightFeeErrCodeErr {
back.Err(c, freightFee.ErrMsg)
return
}
expressFee = expressFee.Add(freightFee.FreightFee)
}
preOrderAddr.IsDeliveryArea = 1
}
} else if defaultAddr.ID > 0 {

@ -17,6 +17,7 @@ var Api = &api{}
type api struct {
Config Config
Sku sku
Order order
Mq mq
}
type Config struct {

@ -0,0 +1,34 @@
package supply
import "github.com/shopspring/decimal"
const (
orderFreightFee = "/order/freight_fee" // 获取运费
ReplyOrderFreightFeeErrCodeNone = 0 // 无错误
ReplyOrderFreightFeeErrCodeErr = 1 // 有错误
)
type order struct {
}
type OrderFreightFeeItem struct {
SkuId uint `binding:"required" label:"skuId"`
Quantity uint `binding:"required" label:"数量"`
Price decimal.Decimal `binding:"required" label:"价格"`
}
type ReplyOrderFreightFee struct {
SkuIds []uint `json:"skuIds"`
FreightFee decimal.Decimal `json:"freightFee"`
ErrCode uint `json:"errCode"`
ErrMsg string `json:"errMsg"`
}
// FreightFee @Title 获取运费
func (o *order) FreightFee(address string, skus []OrderFreightFeeItem) (result []ReplyOrderFreightFee, err error) {
err = exec(orderFreightFee, map[string]interface{}{
"address": address,
"skus": skus,
}, &result)
return
}

@ -6,6 +6,9 @@ const (
skuPrices = "/sku/prices" // 商品价格
skuGroups = "/sku/groups" // 商品分组信息
skuStock = "/sku/stock" // 商品库存
SkuStateIn = 1 // 有货
SkuStateOut = 2 // 无货
)
type sku struct {

Loading…
Cancel
Save