1
This commit is contained in:
@@ -28,17 +28,6 @@ func TestImWaiterStatusModify(t *testing.T) {
|
|||||||
api.ImWaiterStatusModify(1, "19854102", 1)
|
api.ImWaiterStatusModify(1, "19854102", 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestImMsgChange(t *testing.T) {
|
|
||||||
data := &JdParamJsonObj{
|
|
||||||
StatusId: "",
|
|
||||||
BillId: "320406",
|
|
||||||
ExtendJsonData: "{\"ver\":\"4.2\",\"fromChannelId\":-1,\"mid\":376841421,\"body\":{\"chatinfo\":{\"venderId\":\"store_10352814_1000051632\",\"firstMsg\":true,\"source\":\"jimitwo_service_smart_sdk\",\"IMService\":false,\"repeatConsult\":1,\"sid\":\"8b457541accd5e63eb4845f94c4852e8\",\"oGroupId\":113057083,\"askType\":\"o2o\",\"appId\":\"im.waiter\",\"verification\":\"slide\",\"repeatHuman\":1,\"isJdSuperMarket\":\"0\",\"deviceNo\":\"dd_dvc_aes_73FF2098F02392E999FE00A26817AE212E55DF89C9D405370B4B09A908F3A355\",\"label\":1,\"storeId\":\"1000051632\",\"oSid\":\"9ec16e789610328114db937025384666\",\"distinguishPersonJimi\":2,\"proVer\":\"smart_android_15.2.90\",\"entry\":\"sdk_recent\",\"askAllocateType\":\"multiChat\",\"leaveMsgTable\":1,\"venderName\":\"京西菜市-新都三河店\",\"disputeId\":-1,\"ddSessionType\":\"1\",\"systemVer\":\"android_12_BRA-AL00\",\"eidtoken\":\"jdd01SVZE72NCBZ6AXTRFHLIRLNUSF25PCOYF4OPNU3BOITK5SR62TUHMBIDGFBOYGQ7TWY7WRDPLHA3LP6NME42NE5IQNXASKIGJA6ULRAI01234567\",\"region\":\"CN\"},\"llmStream\":0,\"thumbnail\":\"\",\"param\":{\"$ref\":\"$.body.chatinfo\"},\"type\":\"text\",\"requestData\":{\"entry\":\"sdk_recent\",\"venderId\":\"store_10352814_1000051632\"},\"content\":\"低处不胜暖\",\"sid\":\"8b457541accd5e63eb4845f94c4852e8\"},\"type\":\"chat_message\",\"clientTime\":1765873013013,\"datetime\":1765873013299,\"len\":0,\"from\":{\"app\":\"im.customer\",\"art\":\"\",\"clientType\":\"android\",\"pin\":\"jd_52db6569f724f\"},\"subType\":\"text\",\"id\":\"bdf9475389e94265835d90c41912629c\",\"to\":{\"app\":\"im.waiter\",\"pin\":\"liyang12345ly\"},\"lang\":\"zh_CN\",\"timestamp\":1765873013299}",
|
|
||||||
StoreId: "11998833",
|
|
||||||
Timestamp: "2025-12-16 16:16:53",
|
|
||||||
}
|
|
||||||
ImMsgChange(data, "msChatMessage")
|
|
||||||
}
|
|
||||||
|
|
||||||
func Test(t *testing.T) {
|
func Test(t *testing.T) {
|
||||||
api.MessagePushService(&ContextMsg{
|
api.MessagePushService(&ContextMsg{
|
||||||
Id: "1766037788592184572_Q12",
|
Id: "1766037788592184572_Q12",
|
||||||
|
|||||||
@@ -179,11 +179,11 @@ func TestProcessQuestionPic(t *testing.T) {
|
|||||||
for _, v := range [][]string{
|
for _, v := range [][]string{
|
||||||
[]string{
|
[]string{
|
||||||
"http://img10.360buyimg.com/o2o/jfs/a.jpg",
|
"http://img10.360buyimg.com/o2o/jfs/a.jpg",
|
||||||
",,,jfs/a.jpg",
|
",jfs/a.jpg",
|
||||||
},
|
},
|
||||||
[]string{
|
[]string{
|
||||||
"http://img10.360buyimg.com/o2o/jfs/a.jpg,https://img10.360buyimg.com/o2o/jfs/b.jpg",
|
"http://img10.360buyimg.com/o2o/jfs/a.jpg,https://img10.360buyimg.com/o2o/jfs/b.jpg",
|
||||||
" , ,, jfs/a.jpg,https:jfs/b.jpg",
|
" , , jfs/a.jpg,https:jfs/b.jpg",
|
||||||
},
|
},
|
||||||
[]string{
|
[]string{
|
||||||
"https://img10.360buyimg.com/o2o/jfs/a.jpg",
|
"https://img10.360buyimg.com/o2o/jfs/a.jpg",
|
||||||
|
|||||||
@@ -129,6 +129,11 @@ func TestNewAddSku(t *testing.T) {
|
|||||||
globals.SugarLogger.Debugf("--------result := %v", err)
|
globals.SugarLogger.Debugf("--------result := %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdateCurrentQty(t *testing.T) {
|
||||||
|
err1 := api.UpdateCurrentQty(utils.Int64ToStr(time.Now().Unix()), "23988364", 2023436550, 9999)
|
||||||
|
fmt.Println(err1)
|
||||||
|
}
|
||||||
|
|
||||||
func TestNewAddSku2(t *testing.T) {
|
func TestNewAddSku2(t *testing.T) {
|
||||||
param := map[string]interface{}{
|
param := map[string]interface{}{
|
||||||
"traceId": "33F7CD45502711F190B1525400E86DC0,18981810340",
|
"traceId": "33F7CD45502711F190B1525400E86DC0,18981810340",
|
||||||
|
|||||||
@@ -410,12 +410,11 @@ type JDSkuList struct {
|
|||||||
func (a *API) UnBindStoreGoods(skuId int64) {
|
func (a *API) UnBindStoreGoods(skuId int64) {
|
||||||
jdParams := map[string]interface{}{
|
jdParams := map[string]interface{}{
|
||||||
"skuId": skuId,
|
"skuId": skuId,
|
||||||
"stationNo": "14986394",
|
"stationNo": "23988364",
|
||||||
"opPin": "liulei",
|
"opPin": "liulei",
|
||||||
}
|
}
|
||||||
data, err := a.AccessAPINoPage("StoreGoodsPlatformService/unBindStoreGoods", jdParams, nil, nil, genNoPageResultParser("code", "msg", "data", "0"))
|
_, err := a.AccessAPINoPage("StoreGoodsPlatformService/unBindStoreGoods", jdParams, nil, nil, genNoPageResultParser("code", "msg", "data", "0"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fmt.Println(data)
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,9 @@ package jdapi
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -126,47 +125,38 @@ func TestBatchUpdateCurrentQtys(t *testing.T) {
|
|||||||
//baseapi.SugarLogger.Debug(utils.Format4Output(result, false))
|
//baseapi.SugarLogger.Debug(utils.Format4Output(result, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
type Object2222 struct {
|
var data = []int64{}
|
||||||
Clients map[string]int
|
|
||||||
*sync.RWMutex
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewTcpClient222() *Object2222 {
|
func TestUnBindStoreGoods(t *testing.T) {
|
||||||
t := &Object2222{
|
for _, v := range data {
|
||||||
Clients: make(map[string]int),
|
api.UnBindStoreGoods(v)
|
||||||
}
|
fmt.Println(v)
|
||||||
t.RWMutex = new(sync.RWMutex)
|
time.Sleep(200 * time.Microsecond)
|
||||||
return t
|
|
||||||
}
|
|
||||||
func TestLock(t *testing.T) {
|
|
||||||
obj := NewTcpClient222()
|
|
||||||
go func() {
|
|
||||||
fmt.Println("1")
|
|
||||||
for i := 0; i < 100000; i++ {
|
|
||||||
obj.setParam(utils.Int2Str(i), i)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
go func() {
|
|
||||||
fmt.Println("2")
|
|
||||||
for i := 0; i < 100000; i++ {
|
|
||||||
fmt.Println(obj.getParam(utils.Int2Str(i)))
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
for i := 0; i < 100000; i++ {
|
|
||||||
fmt.Println(obj.Clients[utils.Int2Str(i)])
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Object2222) setParam(key string, v int) {
|
var data2 = []int64{}
|
||||||
t.Lock()
|
|
||||||
defer t.Unlock()
|
func TestUpdateSku2(t *testing.T) {
|
||||||
t.Clients[key] = v
|
i2 := len(data2) % 50
|
||||||
|
if i2 != 0 {
|
||||||
|
i2 = len(data2)/50 + 1
|
||||||
|
} else {
|
||||||
|
i2 = len(data2) / 50
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Object2222) getParam(key string) int {
|
for i := 0; i < i2; i++ {
|
||||||
t.RLock()
|
|
||||||
defer t.RUnlock()
|
bility := make([]*StockVendibility, 0, 50)
|
||||||
return t.Clients[key]
|
for _, v := range data2 {
|
||||||
|
bility = append(bility, &StockVendibility{OutSkuId: utils.Int64ToStr(v), DoSale: false})
|
||||||
|
fmt.Println(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err := api.BatchUpdateVendibility("liulei", "", "23988364", bility, "test")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err.Error())
|
||||||
|
}
|
||||||
|
time.Sleep(200 * time.Microsecond)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,6 +95,51 @@ func (a *API) GetStoreBillList(param *Bill) (map[string]*SettleOrderList, []*Bil
|
|||||||
return nil, fineList, settleID, nil
|
return nil, fineList, settleID, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//京西菜市(高攀店) 33797914 成都市 17508251223 0.00 10.00 10.00 100.0 4.0 0 0 6214862811223223 实时
|
||||||
|
//0.00 0.00 0.00 0.00 7030017.00 席伟 17508251223 席伟 17508251223 0.00 0.00 40.87 0.00 0.00 0.00
|
||||||
|
//0.00 0.00 0.00 0.00 0.4 1.5 6.00 0.00 28.26 684.0 0.0 40.87 34.87 -692.21 -692.21 0.00
|
||||||
|
|
||||||
|
func (a *API) GetStoreBillList2(param *Bill) (map[string]*SettleOrderList, []*BillListData, int64, error) {
|
||||||
|
var settleAmount int64 = 0 // 平台实际结算
|
||||||
|
var promotionServiceFee int64 = 0
|
||||||
|
var activityPoiAmount int64 = 0
|
||||||
|
var activityAgentAmount int64 = 0
|
||||||
|
var platformChargeFee int64 = 0
|
||||||
|
var performanceServiceFee int64 = 0
|
||||||
|
|
||||||
|
for {
|
||||||
|
result, err := a.AccessAPI3("bill/list", true, utils.Struct2Map(param, "", false))
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var data *StoreBillListRes
|
||||||
|
if err := utils.Map2StructByJson(result, &data, false); err != nil {
|
||||||
|
return nil, nil, 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(data.Data); i++ {
|
||||||
|
settleAmount += data.Data[i].SettleAmount
|
||||||
|
promotionServiceFee += data.Data[i].PromotionServiceFee
|
||||||
|
activityPoiAmount += data.Data[i].ActivityPoiAmount
|
||||||
|
activityAgentAmount += data.Data[i].ActivityAgentAmount
|
||||||
|
platformChargeFee += data.Data[i].PlatformChargeFee
|
||||||
|
performanceServiceFee += data.Data[i].PerformanceServiceFee
|
||||||
|
}
|
||||||
|
|
||||||
|
if int64(data.ExtraInfo.TotalCount) >= (param.Offset * param.Limit) {
|
||||||
|
param.Offset += param.Limit
|
||||||
|
} else {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(settleAmount)
|
||||||
|
fmt.Println(promotionServiceFee)
|
||||||
|
return nil, nil, 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
// StoreBillListReq 门店结算查询条件
|
// StoreBillListReq 门店结算查询条件
|
||||||
type StoreBillListReq struct {
|
type StoreBillListReq struct {
|
||||||
AppPoiCode string `json:"app_poi_code"` // APP方门店id
|
AppPoiCode string `json:"app_poi_code"` // APP方门店id
|
||||||
|
|||||||
@@ -8,11 +8,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestBillList(t *testing.T) {
|
func TestBillList(t *testing.T) {
|
||||||
now := time.Now()
|
from := time.Date(2026, 7, 13, 0, 0, 0, 0, time.Local)
|
||||||
from := time.Date(now.Year(), now.Month(), now.Day()-5, 0, 0, 0, 0, time.Local)
|
to := time.Date(2026, 7, 19, 23, 59, 59, 59, time.Local)
|
||||||
to := time.Date(now.Year(), now.Month(), now.Day()-1, 23, 59, 59, 59, time.Local)
|
|
||||||
param := &Bill{
|
param := &Bill{
|
||||||
AppPoiCode: "14799080",
|
AppPoiCode: "33797914",
|
||||||
StartDate: from.Unix(),
|
StartDate: from.Unix(),
|
||||||
EndDate: to.Unix(),
|
EndDate: to.Unix(),
|
||||||
Offset: 0,
|
Offset: 0,
|
||||||
@@ -20,7 +19,7 @@ func TestBillList(t *testing.T) {
|
|||||||
AccessToken: api.token,
|
AccessToken: api.token,
|
||||||
}
|
}
|
||||||
|
|
||||||
_, fine, _, err := api.GetStoreBillList(param)
|
_, fine, _, err := api.GetStoreBillList2(param)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Debugf("err := %v", err)
|
globals.SugarLogger.Debugf("err := %v", err)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -208,6 +208,16 @@ func (a *API) AccessAPI2(cmd string, isGet bool, bizParams map[string]interface{
|
|||||||
return platformapi.ErrLevelCodeIsNotOK, newErr
|
return platformapi.ErrLevelCodeIsNotOK, newErr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if errObj2, ok := jsonResult1["error_list"]; ok {
|
||||||
|
errorInfo := errObj2.([]interface{})
|
||||||
|
errStr := ""
|
||||||
|
code := int64(0)
|
||||||
|
for _, v := range errorInfo {
|
||||||
|
errStr += v.(map[string]interface{})["msg"].(string)
|
||||||
|
code = utils.MustInterface2Int64(v.(map[string]interface{})["code"])
|
||||||
|
}
|
||||||
|
newErr := utils.NewErrorIntCode(errStr, int(code))
|
||||||
|
return platformapi.ErrLevelCodeIsNotOK, newErr
|
||||||
}
|
}
|
||||||
return platformapi.ErrLevelSuccess, nil
|
return platformapi.ErrLevelSuccess, nil
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -371,6 +371,17 @@ type GetRiderDeliveryPath struct {
|
|||||||
//} `json:"data"`
|
//} `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReviewAfterSalesInfo 售后参数
|
||||||
|
type ReviewAfterSalesInfo struct {
|
||||||
|
WmOrderIdView int64 `json:"wm_order_id_view"` // 订单展示ID
|
||||||
|
RefundId int64 `json:"refund_id"` // 售后单ID
|
||||||
|
ReviewType int `json:"review_type"` // 0-同意退货;1-同意退款或同意仅退款无需退货;2-驳回退货/退款。
|
||||||
|
RejectReasonCode int `json:"reject_reason_code"` // 驳回code,当review_type=2必填
|
||||||
|
RejectOtherReason string `json:"reject_other_reason"` // 驳回原因说明,当reject_reason_code = -1 必填
|
||||||
|
IsReturnGoods int `json:"is_return_goods"` // 是否需要返货 0-不返货/1-返货 review_type=1时选填,不传默认为0,
|
||||||
|
OutOfStockItemIds string `json:"out_of_stock_item_ids"` // 商品行item_id,多个item_id之间用逗号隔开,当订单有多个商品时
|
||||||
|
}
|
||||||
|
|
||||||
func (a *API) OrderReceived(orderID int64) (err error) {
|
func (a *API) OrderReceived(orderID int64) (err error) {
|
||||||
_, err = a.AccessAPI("order/poi_received", true, map[string]interface{}{
|
_, err = a.AccessAPI("order/poi_received", true, map[string]interface{}{
|
||||||
KeyOrderID: orderID,
|
KeyOrderID: orderID,
|
||||||
@@ -462,6 +473,7 @@ func (a *API) OrderArrived(orderID int64) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderRefundAgree 同意售后
|
||||||
func (a *API) OrderRefundAgree(orderID int64, reason string) (err error) {
|
func (a *API) OrderRefundAgree(orderID int64, reason string) (err error) {
|
||||||
_, err = a.AccessAPI("order/refund/agree", true, map[string]interface{}{
|
_, err = a.AccessAPI("order/refund/agree", true, map[string]interface{}{
|
||||||
KeyOrderID: orderID,
|
KeyOrderID: orderID,
|
||||||
@@ -470,6 +482,7 @@ func (a *API) OrderRefundAgree(orderID int64, reason string) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderRefundReject 拒绝售后
|
||||||
func (a *API) OrderRefundReject(orderID int64, reason string) (err error) {
|
func (a *API) OrderRefundReject(orderID int64, reason string) (err error) {
|
||||||
_, err = a.AccessAPI("order/refund/reject", true, map[string]interface{}{
|
_, err = a.AccessAPI("order/refund/reject", true, map[string]interface{}{
|
||||||
KeyOrderID: orderID,
|
KeyOrderID: orderID,
|
||||||
@@ -478,6 +491,12 @@ func (a *API) OrderRefundReject(orderID int64, reason string) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReviewAfterSales 新版售后要求
|
||||||
|
func (a *API) ReviewAfterSales(param *ReviewAfterSalesInfo) (err error) {
|
||||||
|
_, err = a.AccessAPI("ecommerce/order/reviewAfterSales", true, utils.Struct2MapByJson(param))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
func (a *API) OrderApplyPartRefund(orderID int64, reason string, removeSkuList []*RefundSku) (err error) {
|
func (a *API) OrderApplyPartRefund(orderID int64, reason string, removeSkuList []*RefundSku) (err error) {
|
||||||
_, err = a.AccessAPI("order/applyPartRefund", false, map[string]interface{}{
|
_, err = a.AccessAPI("order/applyPartRefund", false, map[string]interface{}{
|
||||||
KeyOrderID: orderID,
|
KeyOrderID: orderID,
|
||||||
@@ -864,7 +883,7 @@ func (a *API) GetOrderAddress(orderId int64, reasonType int) (address string, er
|
|||||||
// UploadMediaToOrder 订单上传图片,订单在骑手取货前且未超过订单预计送达时间时可以进行图片上传
|
// UploadMediaToOrder 订单上传图片,订单在骑手取货前且未超过订单预计送达时间时可以进行图片上传
|
||||||
func (a *API) UploadMediaToOrder(orderId string, images interface{}) error {
|
func (a *API) UploadMediaToOrder(orderId string, images interface{}) error {
|
||||||
byteData := utils.MustMarshal(images)
|
byteData := utils.MustMarshal(images)
|
||||||
_, err := a.AccessAPI("ecommerce/order/uploadMedia", false, map[string]interface{}{"order_id": orderId, "media_list": string(byteData)})
|
_, err := a.AccessAPI2("ecommerce/order/uploadMedia", false, map[string]interface{}{"order_id": orderId, "media_list": string(byteData)}, "error_list", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,3 +50,15 @@ func TestGetRecommendSku(t *testing.T) {
|
|||||||
}
|
}
|
||||||
api.GetRecommendSku(param, "")
|
api.GetRecommendSku(param, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestReviewAfterSales(t *testing.T) {
|
||||||
|
api.ReviewAfterSales(&ReviewAfterSalesInfo{
|
||||||
|
WmOrderIdView: 2002231460826744707,
|
||||||
|
RefundId: 86155877585,
|
||||||
|
ReviewType: 0,
|
||||||
|
RejectReasonCode: 0,
|
||||||
|
RejectOtherReason: "",
|
||||||
|
IsReturnGoods: 1,
|
||||||
|
OutOfStockItemIds: "",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ func getTimeFromTimestamp(timeStamp int64) time.Time {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestOrderGetOrderDetail(t *testing.T) {
|
func TestOrderGetOrderDetail(t *testing.T) {
|
||||||
result, err := api.OrderGetOrderDetail(2602201502045507987, false)
|
result, err := api.OrderGetOrderDetail(3502231341944704147, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -487,7 +487,7 @@ func TestGetOrderAddress(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUploadMediaToOrder(t *testing.T) {
|
func TestUploadMediaToOrder(t *testing.T) {
|
||||||
api.UploadMediaToOrder("2202182431134417666", []string{"https://img.meituan.net/retailsp/12b8489847a14dbf128527aa2c7dfbd448308.jpg"})
|
api.UploadMediaToOrder("4102234401395379455", []string{"https://img.meituan.net/retailsp/12b8489847a14dbf128527aa2c7dfbd448308.jpg"})
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test111(t *testing.T) {
|
func Test111(t *testing.T) {
|
||||||
|
|||||||
@@ -439,18 +439,18 @@ func TestRetailDelete(t *testing.T) {
|
|||||||
|
|
||||||
// 测试删除门店分类列表
|
// 测试删除门店分类列表
|
||||||
func TestDeleteCat(t *testing.T) {
|
func TestDeleteCat(t *testing.T) {
|
||||||
result, err := api.RetailCatList("33889953")
|
result, err := api.RetailCatList("33998402")
|
||||||
fmt.Println(result, err)
|
fmt.Println(result, err)
|
||||||
for _, v := range result {
|
for _, v := range result {
|
||||||
if v.Children != nil {
|
if v.Children != nil {
|
||||||
for _, v2 := range v.Children {
|
for _, v2 := range v.Children {
|
||||||
err = api.RetailCatDelete("33889953", "", v2.Name, 1)
|
err = api.RetailCatDelete("33998402", "", v2.Name, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = api.RetailCatDelete("33889953", "", v.Name, 1)
|
err = api.RetailCatDelete("33998402", "", v.Name, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
continue
|
continue
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
|||||||
Reference in New Issue
Block a user