提交 8d21d2ff authored 作者: limeng's avatar limeng

增加查询商品接口

上级 39fd6e02
package yz
import (
"bytes"
"context"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/os/gtime"
"github.com/gogf/gf/util/gconv"
"time"
"fmt"
"bytes"
"net/http"
"log"
"io"
"os"
"io/ioutil"
"log"
"mime/multipart"
"net/http"
"os"
"time"
)
type Config struct {
......@@ -27,7 +26,7 @@ type Config struct {
type CommonRes struct {
Success bool `json:"success"`
Code string `json:"code"`
Code int `json:"code"`
Message string `json:"message"`
TraceId string `json:"trace_id"`
}
......@@ -54,7 +53,6 @@ func (s *client) post(ctx context.Context, method string, params g.Map) (str str
Request.SetHeader("Content-Type", "application/json")
url := method + "?access_token=" + server.AccessToken
resp, err := Request.Timeout(time.Second*5).Post(url, params)
fmt.Println(url)
defer func() {
_ = resp.Close()
paramStr := gjson.New(params).MustToJsonString()
......@@ -74,72 +72,58 @@ func (s *client) post(ctx context.Context, method string, params g.Map) (str str
}
//post 请求
func (s *client) postImg(ctx context.Context, method string, params string) (str string, err error) {
g.Dump(89876)
Start := gtime.TimestampMilli()
url := method + "?access_token=" + server.AccessToken
client := http.Client{}
bodyBuf := &bytes.Buffer{}
bodyWrite := multipart.NewWriter(bodyBuf)
g.Dump(898761)
file, err := os.Open(params)
g.Dump(8987612)
defer file.Close()
if err != nil {
g.Dump(66666)
log.Println("err")
}
// file 为key
g.Dump(89876123)
fileWrite, err := bodyWrite.CreateFormFile("image", params)
_, err = io.Copy(fileWrite, file)
g.Dump(898761234)
if err != nil {
g.Dump(777777)
log.Println("err")
}
bodyWrite.Close() //要关闭,会将w.w.boundary刷写到w.writer中
// 创建请求
g.Dump(8987612345)
contentType := bodyWrite.FormDataContentType()
req, err := http.NewRequest(http.MethodPost, url, bodyBuf)
if err != nil {
g.Dump(888888)
log.Println("err")
}
// 设置头
g.Dump(8987612346)
req.Header.Set("Content-Type", contentType)
resp, err := client.Do(req)
if err != nil {
g.Dump(99999)
log.Println("err")
}
g.Dump(8987612347)
if resp==nil{
return
}
defer func() {
_ = resp.Body.Close()
paramStr := gjson.New(params).MustToJsonString()
ctx = context.WithValue(ctx, "Method", "POST")
ctx = context.WithValue(ctx, "URI", url)
_ = os.Remove(params)
if err != nil {
g.Dump(123456)
g.Log().Ctx(ctx).Cat(pkgName).Cat("error").Infof("参数【%v】错误【%v】响应时间【%v ms】", paramStr, err.Error(), gtime.TimestampMilli()-Start)
} else {
g.Log().Ctx(ctx).Cat(pkgName).Infof("参数【%v】响应【%v】响应时间【%v ms】", paramStr, str, gtime.TimestampMilli()-Start)
}
}()
g.Dump(89876123478)
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
g.Dump(999999888)
log.Println("err")
}
g.Dump(8987612347889)
str = string(b)
return
}
......
......@@ -4,15 +4,43 @@ import (
"context"
"encoding/json"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/util/gconv"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/util/gconv"
)
type goodsJD struct {
}
var Goods = goodsJD{}
type UpdateGoodsReq struct {
Param UpdateGoodsParam `json:"param"`
}
type UpdateGoodsParam struct {
ItemId int `json:"item_id"`
//NodeKdtId int `json:"node_kdt_id"`
ItemDeliveryParam ItemDeliveryParam `json:"item_delivery_param"`
ItemWeight int `json:"item_weight"`
ItemNo string `json:"item_no"`
SkuList []SkuListUpdate `json:"sku_list"`
Desc string `json:"desc"`
ImageIds []int64 `json:"image_ids"`
SkuValueProps []SkuValueProps `json:"sku_value_props"`
ItemType int `json:"item_type"`
ItemPriceParam ItemPriceParam `json:"item_price_param"`
Title string `json:"title"`
IsDisplay int `json:"is_display"`
Quantity int `json:"quantity"`
HideStock int `json:"hide_stock"`
}
type SkuListUpdate struct {
//SkuProps []SkuProps `json:"sku_props"`
Price int `json:"price"`
MaxGuidePrice int `json:"max_guide_price"`
CostPrice int `json:"cost_price"`
SkuNo string `json:"sku_no"`
StockNum int `json:"stock_num"`
SkuId int64 `json:"sku_id"`
}
type AddGoodsReq struct {
Param AddGoodsParam `json:"param"`
}
......@@ -21,14 +49,14 @@ type ItemDeliveryParam struct {
DeliverySetting DeliverySetting `json:"delivery_setting"`
}
type DeliverySetting struct {
Express bool `json:"express"`
Express bool `json:"express"`
}
type SkuList struct {
SkuProps []SkuProps `json:"sku_props"`
Price int `json:"price"`
MaxGuidePrice int `json:"max_guide_price"`
CostPrice int `json:"cost_price"`
SkuNo int `json:"sku_no"`
SkuNo string `json:"sku_no"`
StockNum int `json:"stock_num"`
}
type SkuProps struct {
......@@ -36,7 +64,7 @@ type SkuProps struct {
PropName string `json:"prop_name"`
PropNameId int `json:"prop_name_id"`
PropValueId int `json:"prop_value_id"`
}
type SkuValueProps struct {
Name string `json:"name"`
......@@ -44,16 +72,16 @@ type SkuValueProps struct {
Id int `json:"id"`
}
type ItemPriceParam struct {
Origin int `json:"origin"`
Origin string `json:"origin"`
CostPrice int `json:"cost_price"`
Price int `json:"price"`
}
type AddGoodsParam struct {
ItemId int `json:"item_id"`
NodeKdtId int `json:"node_kdt_id"`
//NodeKdtId int `json:"node_kdt_id"`
ItemDeliveryParam ItemDeliveryParam `json:"item_delivery_param"`
ItemWeight int `json:"item_weight"`
ItemNo int `json:"item_no"`
ItemNo string `json:"item_no"`
SkuList []SkuList `json:"sku_list"`
Desc string `json:"desc"`
ImageIds []int64 `json:"image_ids"`
......@@ -76,6 +104,21 @@ type UplpadImgReq struct {
Image string `json:"image"`
}
type FindGoodsDataReq struct {
ItemId int `json:"item_id"`
}
type FindGoodsDataRes struct {
CommonRes
Data GoodsData `json:"data"`
}
type GoodsData struct {
SkuList []SkuListData `json:"sku_list"`
}
type SkuListData struct {
SkuId int64 `json:"sku_id"`
SkuNo string `json:"sku_no"`
}
// type UplpadImgRes struct {
// CommonRes
// Data struct {
......@@ -85,8 +128,7 @@ type UplpadImgReq struct {
// }
type UplpadImgRes struct {
TraceId string `json:"trace_id"`
Code int `json:"code"`
CommonRes
Data struct {
KdtId int `json:"kdt_id"`
ImageUrl string `json:"image_url"`
......@@ -94,14 +136,12 @@ type UplpadImgRes struct {
ImageId int64 `json:"image_id"`
Height int `json:"height"`
} `json:"data"`
Success bool `json:"success"`
Message string `json:"message"`
}
// 添加商品
func (*goodsJD) AddGoods(ctx context.Context, req *AddGoodsReq) (res *AddGoodsRes, err error) {
// g.Dump(11111111,req)
// return
g.Dump(11111111,req)
return
method := "youzan.item.add/1.0.1"
param := gconv.Map(req)
......@@ -114,7 +154,8 @@ func (*goodsJD) AddGoods(ctx context.Context, req *AddGoodsReq) (res *AddGoodsRe
}
// 编辑商品
func (*goodsJD) UpdateGoods(ctx context.Context, req *AddGoodsReq) (res *AddGoodsRes, err error) {
func (*goodsJD) UpdateGoods(ctx context.Context, req *UpdateGoodsReq) (res *AddGoodsRes, err error) {
method := "youzan.item.incremental.update/1.0.1"
param := gconv.Map(req)
result, err := server.requestApi(ctx, method, param)
......@@ -134,14 +175,22 @@ func (*goodsJD) UploadImg(ctx context.Context, req *UplpadImgReq) (res *UplpadIm
//}
result, err := server.requestApiImg(ctx, method, req.Image)
if err != nil {
g.Dump("111111123",err)
return
}
err = json.Unmarshal([]byte(result), &res)
g.Dump("11111112344444",err)
return
}
// 商品详情
func (*goodsJD) FindGoodsData(ctx context.Context, req *FindGoodsDataReq) (res *FindGoodsDataRes, err error) {
method := "youzan.item.detail.get/1.0.0"
param := gconv.Map(req)
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = json.Unmarshal([]byte(result), &res)
return
}
//type UpDateStockReq struct {
// Quantity string `json:"quantity"`
// ItemId string `json:"item_id"`
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论