You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
2.3 KiB
113 lines
2.3 KiB
package jcook
|
|
|
|
import (
|
|
"log"
|
|
"recook/internal/back"
|
|
jcook2 "recook/internal/v2/lib/jcook"
|
|
"recook/internal/v2/lib/shama"
|
|
"recook/internal/v2/lib/supply"
|
|
"recook/internal/v2/logic/app/jcook"
|
|
"recook/internal/v2/model/recook/goods"
|
|
"recook/tools"
|
|
"strconv"
|
|
|
|
"git.oa00.com/go/mysql"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type Proxy struct {
|
|
}
|
|
|
|
func (a *Proxy) Category(c *gin.Context) {
|
|
res := jcook.Logic.Cate()
|
|
back.Suc(c, "success", res)
|
|
return
|
|
}
|
|
|
|
type goodsStock struct {
|
|
SkuID uint `json:"sku_id" validate:"required"`
|
|
Address string `json:"address" validate:"required"`
|
|
Quantity uint `json:"quantity" validate:"required,gte=1"`
|
|
}
|
|
|
|
func (a *Proxy) Stock(c *gin.Context) {
|
|
var p goodsStock
|
|
err := tools.ParseParams(&p, c)
|
|
if err != nil {
|
|
back.Fail(c, err.Error())
|
|
return
|
|
}
|
|
var gs goods.RecookGoodsSkuModel
|
|
err = mysql.Db.First(&gs, "id = ?", p.SkuID).Error
|
|
if err != nil {
|
|
back.Fail(c, err.Error())
|
|
return
|
|
}
|
|
if len(gs.ThirdPartySkuId) == 0 {
|
|
back.Fail(c, "该商品不需要调用")
|
|
}
|
|
if gs.ThirdPartyType == 3 {
|
|
id, _ := strconv.Atoi(gs.ThirdPartySkuId)
|
|
req := jcook2.SkuStockReq{
|
|
Address: p.Address,
|
|
SkuList: []jcook2.SkuQuantity{
|
|
{
|
|
SkuID: uint(id),
|
|
Quantity: 1,
|
|
},
|
|
},
|
|
}
|
|
client := jcook2.GetClient()
|
|
var resp []jcook2.SkuStockResp
|
|
if err = client.Exec(req, &resp); err != nil {
|
|
back.Err(c, err.Error())
|
|
return
|
|
}
|
|
back.Suc(c, "", gin.H{
|
|
"stock_state": resp[0].StockState,
|
|
})
|
|
}
|
|
|
|
if gs.ThirdPartyType == 4 {
|
|
id, _ := strconv.Atoi(gs.ThirdPartySkuId)
|
|
req := shama.SkuStockReq{
|
|
Address: p.Address,
|
|
SkuList: []shama.SkuQuantity{
|
|
{
|
|
SkuID: uint(id),
|
|
Quantity: p.Quantity,
|
|
},
|
|
},
|
|
}
|
|
client := shama.GetClient()
|
|
var resp []shama.SkuStockResp
|
|
if err = client.Exec(req, &resp); err != nil {
|
|
log.Println(err)
|
|
back.Suc(c, "", gin.H{
|
|
"stock_state": 0,
|
|
})
|
|
return
|
|
}
|
|
back.Suc(c, "", gin.H{
|
|
"stock_state": resp[0].StockState,
|
|
})
|
|
}
|
|
if gs.ThirdPartyType == 5 {
|
|
id, _ := strconv.Atoi(gs.ThirdPartySkuId)
|
|
stock, err := supply.Api.Sku.Stock(p.Address, []supply.SkuStockItem{{
|
|
SkuId: uint(id),
|
|
Quantity: p.Quantity,
|
|
}})
|
|
if err != nil {
|
|
log.Println(err)
|
|
back.Suc(c, "", gin.H{
|
|
"stock_state": 0,
|
|
})
|
|
return
|
|
}
|
|
back.Suc(c, "", gin.H{
|
|
"stock_state": stock[0].State,
|
|
})
|
|
}
|
|
}
|