1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package tmv3
import (
"context"
"github.com/alibabacloud-go/linkedmall-20230930/v2/client"
"github.com/alibabacloud-go/tea/tea"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/os/gtime"
"github.com/gogf/gf/util/gconv"
)
type OrderCreateReq struct {
DeliveryAddress OrderDeliveryAddress `json:"deliveryAddress"`
BuyerId string `json:"buyerId"`
ProductList []OrderItem `json:"productList"`
OuterPurchaseOrderId string
}
type OrderCreateRes struct {
RequestId string `json:"requestId"`
PurchaseOrderId string `json:"purchaseOrderId"`
}
// Create 创建采购单
func (s orderTm) Create(ctx context.Context, req OrderCreateReq) (res *OrderCreateRes, err error) {
Start := gtime.TimestampMilli()
ctx = context.WithValue(ctx, "URI", "CreatePurchaseOrder")
defer func() {
Log(ctx, req, res, err, Start)
}()
Request := &client.CreatePurchaseOrderRequest{}
var Body = new(client.PurchaseOrderCreateCmd)
Body.SetBuyerId(req.BuyerId)
Body.SetOuterPurchaseOrderId(req.OuterPurchaseOrderId)
var DeliveryAddress = new(client.AddressInfo)
DeliveryAddress.SetDivisionCode(req.DeliveryAddress.DivisionCode)
DeliveryAddress.SetAddressDetail(req.DeliveryAddress.AddressDetail)
DeliveryAddress.SetReceiverPhone(req.DeliveryAddress.ReceiverPhone)
DeliveryAddress.SetReceiver(req.DeliveryAddress.Receiver)
DeliveryAddress.SetTownDivisionCode(req.DeliveryAddress.TownDivisionCode)
Body.SetDeliveryAddress(DeliveryAddress)
var list []*client.ProductDTO
for _, item := range req.ProductList {
list = append(list, &client.ProductDTO{
ProductId: tea.String(item.ProductId),
PurchaserId: tea.String(PurchaserId),
Quantity: tea.Int32(gconv.Int32(item.Quantity)),
SkuId: tea.String(item.SkuId),
})
}
Body.SetProductList(list)
Request.SetBody(Body)
r, err := server.CreatePurchaseOrder(Request)
if err != nil {
return
}
err = gjson.New(r.Body).Scan(&res)
return
}