diff --git a/platformapi/ebaiapi/elm_lm.go b/platformapi/ebaiapi/elm_lm.go new file mode 100644 index 00000000..4de2235d --- /dev/null +++ b/platformapi/ebaiapi/elm_lm.go @@ -0,0 +1,6 @@ +package ebaiapi + +// GetStoreIMStatus 获取门店的im状态 +func (a *API) GetStoreIMStatus(platformShopId string) { + +} diff --git a/platformapi/mtwmapi/act_test.go b/platformapi/mtwmapi/act_test.go index 96e8a45c..5e0a7040 100644 --- a/platformapi/mtwmapi/act_test.go +++ b/platformapi/mtwmapi/act_test.go @@ -65,88 +65,88 @@ func TestFulllDiscountShippingFeeList(t *testing.T) { } func TestRetailDiscountBatchSave(t *testing.T) { - result, _, err := api.RetailDiscountBatchSave2("7845503", 0, []*RetailDiscountActData{ + result, _, err := api.RetailDiscountBatchSave2("12944552", 0, []*RetailDiscountActData{ &RetailDiscountActData{ - AppFoodCode: "6039423", + AppFoodCode: "6094573", StartTime: time.Now().Unix(), EndTime: time.Now().Add(24 * time.Hour).Unix(), OrderLimit: 1, - DayLimit: -1, + DayLimit: 9999, SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.5, - }, - &RetailDiscountActData{ - AppFoodCode: "6043140", - StartTime: time.Now().Unix(), - EndTime: time.Now().Add(24 * time.Hour).Unix(), - OrderLimit: 1, - DayLimit: -1, - SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.5, - }, - &RetailDiscountActData{ - AppFoodCode: "31765", - StartTime: time.Now().Unix(), - EndTime: time.Now().Add(24 * time.Hour).Unix(), - OrderLimit: 1, - DayLimit: -1, - SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.5, - }, - &RetailDiscountActData{ - AppFoodCode: "31239", - StartTime: time.Now().Unix(), - EndTime: time.Now().Add(24 * time.Hour).Unix(), - OrderLimit: 1, - DayLimit: -1, - SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.5, - }, - &RetailDiscountActData{ - AppFoodCode: "6042282", - StartTime: time.Now().Unix(), - EndTime: time.Now().Add(24 * time.Hour).Unix(), - OrderLimit: 1, - DayLimit: -1, - SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.5, - }, - &RetailDiscountActData{ - AppFoodCode: "31901", - StartTime: time.Now().Unix(), - EndTime: time.Now().Add(24 * time.Hour).Unix(), - OrderLimit: 1, - DayLimit: -1, - SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.5, - }, - &RetailDiscountActData{ - AppFoodCode: "6043147", - StartTime: time.Now().Unix(), - EndTime: time.Now().Add(24 * time.Hour).Unix(), - OrderLimit: 1, - DayLimit: -1, - SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.5, - }, - &RetailDiscountActData{ - AppFoodCode: "30645", - StartTime: time.Now().Unix(), - EndTime: time.Now().Add(24 * time.Hour).Unix(), - OrderLimit: 1, - DayLimit: -1, - SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.5, - }, - &RetailDiscountActData{ - AppFoodCode: "30729", - StartTime: time.Now().Unix(), - EndTime: time.Now().Add(24 * time.Hour).Unix(), - OrderLimit: 1, - DayLimit: -1, - SettingType: SettingTypeAsDiscount, - DiscountCoefficient: 9.5, + DiscountCoefficient: 9, }, + //&RetailDiscountActData{ + // AppFoodCode: "6043140", + // StartTime: time.Now().Unix(), + // EndTime: time.Now().Add(24 * time.Hour).Unix(), + // OrderLimit: 1, + // DayLimit: -1, + // SettingType: SettingTypeAsDiscount, + // DiscountCoefficient: 9.5, + //}, + //&RetailDiscountActData{ + // AppFoodCode: "31765", + // StartTime: time.Now().Unix(), + // EndTime: time.Now().Add(24 * time.Hour).Unix(), + // OrderLimit: 1, + // DayLimit: -1, + // SettingType: SettingTypeAsDiscount, + // DiscountCoefficient: 9.5, + //}, + //&RetailDiscountActData{ + // AppFoodCode: "31239", + // StartTime: time.Now().Unix(), + // EndTime: time.Now().Add(24 * time.Hour).Unix(), + // OrderLimit: 1, + // DayLimit: -1, + // SettingType: SettingTypeAsDiscount, + // DiscountCoefficient: 9.5, + //}, + //&RetailDiscountActData{ + // AppFoodCode: "6042282", + // StartTime: time.Now().Unix(), + // EndTime: time.Now().Add(24 * time.Hour).Unix(), + // OrderLimit: 1, + // DayLimit: -1, + // SettingType: SettingTypeAsDiscount, + // DiscountCoefficient: 9.5, + //}, + //&RetailDiscountActData{ + // AppFoodCode: "31901", + // StartTime: time.Now().Unix(), + // EndTime: time.Now().Add(24 * time.Hour).Unix(), + // OrderLimit: 1, + // DayLimit: -1, + // SettingType: SettingTypeAsDiscount, + // DiscountCoefficient: 9.5, + //}, + //&RetailDiscountActData{ + // AppFoodCode: "6043147", + // StartTime: time.Now().Unix(), + // EndTime: time.Now().Add(24 * time.Hour).Unix(), + // OrderLimit: 1, + // DayLimit: -1, + // SettingType: SettingTypeAsDiscount, + // DiscountCoefficient: 9.5, + //}, + //&RetailDiscountActData{ + // AppFoodCode: "30645", + // StartTime: time.Now().Unix(), + // EndTime: time.Now().Add(24 * time.Hour).Unix(), + // OrderLimit: 1, + // DayLimit: -1, + // SettingType: SettingTypeAsDiscount, + // DiscountCoefficient: 9.5, + //}, + //&RetailDiscountActData{ + // AppFoodCode: "30729", + // StartTime: time.Now().Unix(), + // EndTime: time.Now().Add(24 * time.Hour).Unix(), + // OrderLimit: 1, + // DayLimit: -1, + // SettingType: SettingTypeAsDiscount, + // DiscountCoefficient: 9.5, + //}, }) if err != nil { t.Fatal(err) @@ -190,3 +190,96 @@ func TestGetByAppPoiCodeAndType(t *testing.T) { } t.Log(utils.Format4Output(result, false)) } + +func TestBaokuanHuodong(t *testing.T) { + // 获取门店所有的爆款活动 + storeId := 668887 + vendorStoreId := "17056471" + + actList, _ := api.RetailDiscountList(vendorStoreId, 56) + if len(actList) > 0 { + allActivitySkuIdList := make([]string, 0, 0) // 此门店全部的折扣(爆款)活动商品 + activationActivitySkuIdList := make([]*StoreSkuInfo, 0, 0) // 此门店正在进行的折扣(爆款)活动商品 + loseActivitySkuIdList := make([]*StoreSkuInfo, 0, 0) // 此门店已经结束的折扣(爆款)活动商品 + for _, ac := range actList { + allActivitySkuIdList = append(allActivitySkuIdList, utils.Int64ToStr(ac.ItemID)) + // 已经生效的爆款活动 + if ac.Status == 1 && ac.SkuId != "" { + activity := &StoreSkuInfo{ + SkuID: utils.Str2Int(ac.SkuId), + IsSpecialty: 1, + } + activationActivitySkuIdList = append(activationActivitySkuIdList, activity) + } + // 已经失效的爆款活动 + if ac.Status == 0 && ac.SkuId != "" { + lose := &StoreSkuInfo{ + SkuID: utils.Str2Int(ac.SkuId), + IsSpecialty: 0, + } + loseActivitySkuIdList = append(loseActivitySkuIdList, lose) + } + } + // 取消当前力荐商品 + loseActivitySkuIdList = append(loseActivitySkuIdList, &StoreSkuInfo{ + SkuID: utils.Str2Int("31794"), + IsSpecialty: 0, + }) + if err := UpdateStoreSkusSpecTag(nil, "589", storeId, vendorStoreId, loseActivitySkuIdList); err != nil { + globals.SugarLogger.Debugf("取消力荐错误:= %v", err) + } + // 重新推荐力荐商品 + if err := UpdateStoreSkusSpecTag(nil, "589", storeId, vendorStoreId, activationActivitySkuIdList); err != nil { + globals.SugarLogger.Debugf("重推力荐错误:= %v", err) + } + } + +} + +func UpdateStoreSkusSpecTag(aa interface{}, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*StoreSkuInfo) (err error) { + var foodDataList = []map[string]interface{}{} + for _, v := range storeSkuList { + var foodData = make(map[string]interface{}) + if v.IsSpecialty == -1 { + v.IsSpecialty = 0 + } + foodData["is_specialty"] = v.IsSpecialty + foodData["app_food_code"] = v.SkuID + foodDataList = append(foodDataList, foodData) + } + if len(foodDataList) == 1 { + err = api.RetailInitData("1111", vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0]) + } else if len(foodDataList) > 0 { + _, err = api.RetailBatchInitData("22222", vendorStoreID, foodDataList) + } + return err +} + +type StoreSkuInfo struct { + SkuID int `json:"skuID,omitempty"` + VendorSkuID string `json:"vendorSkuID,omitempty"` + NameID int `json:"nameID,omitempty"` + VendorNameID string `json:"vendorNameID,omitempty"` + + Stock int `json:"stock,omitempty"` + VendorPrice int64 `json:"price,omitempty"` + Status int `json:"status,omitempty"` + + Seq int `json:"seq,omitempty"` + + ActPrice int64 `json:"actPrice,omitempty"` + VendorActID string `json:"vendorActID,omitempty"` + IsSpecialty int `json:"isSpecialty,omitempty"` + JxPrice int64 `json:"jxPrice,omitempty"` + JxUnitPrice int64 `json:"jxUnitPrice,omitempty"` + VendorSkuID2 string `json:"vendorSkuID2,omitempty"` + JdsStockSwitch int `json:"jdsStockSwitch"` + IsDeletedBySku bool `json:"isDeletedBySku"` + VendorOrgCode string `json:"vendorOrgCode"` + SpecUnit string `json:"specUnit"` + SpecQuality float32 `json:"specQuality"` + + VendorMainId string `json:"vendorMainId"` // 主商品id + VendorSkuAttrId string `json:"vendorSkuAttrId"` //主商品sku_id + VendorSonSkuID string `json:"vendorSonSkuID"` // 子商品skuid +} diff --git a/platformapi/mtwmapi/order_page.go b/platformapi/mtwmapi/order_page.go index 3f869228..11ccd2cd 100644 --- a/platformapi/mtwmapi/order_page.go +++ b/platformapi/mtwmapi/order_page.go @@ -1,6 +1,7 @@ package mtwmapi import ( + "fmt" "git.rosy.net.cn/baseapi/utils" ) @@ -67,3 +68,28 @@ func (a *API) GetDistributeOrderDetail(orderID, poiCode string) (distributeOrder err = utils.Map2StructByJson(result[orderID], &distributeOrderDetail, true) return distributeOrderDetail, err } + +type RecommendSkuGet struct { + WmPoiId int64 `json:"wmPoiId"` // 平台门店id + PageNum int64 `json:"pageNum"` // 页数 + PageSize int64 `json:"pageSize"` // 页码 + NeedTag int64 `json:"needTag"` + Name string `json:"name"` + BrandId int64 `json:"brandId"` + TagId int64 `json:"tagId"` + SearchWord string `json:"searchWord"` + State int64 `json:"state"` + LabelIds int64 `json:"labelIds"` + SaleStatus int64 `json:"saleStatus"` + LimitSale int64 `json:"limitSale"` + NeedCombinationSpu int64 `json:"needCombinationSpu"` + NoStockAutoClear int64 `json:"noStockAutoClear"` + MedicareType int64 `json:"medicareType"` +} + +// GetRecommendSku 获取美团力荐商品 +func (a *API) GetRecommendSku(params *RecommendSkuGet, cookie string) { + result, err2 := a.AccessUserPage2("reuse/sc/product/retail/r/searchListPage", utils.Struct2MapByJson(params), true) + fmt.Println(result) + fmt.Println(err2) +} diff --git a/platformapi/mtwmapi/order_page_test.go b/platformapi/mtwmapi/order_page_test.go index 8756bd92..29e5fb23 100644 --- a/platformapi/mtwmapi/order_page_test.go +++ b/platformapi/mtwmapi/order_page_test.go @@ -29,3 +29,24 @@ func TestCancelReason(t *testing.T) { } baseapi.SugarLogger.Debug(utils.Format4Output(result, false)) } + +func TestGetRecommendSku(t *testing.T) { + param := &RecommendSkuGet{ + WmPoiId: 17056471, + PageNum: 1, + PageSize: 100, + NeedTag: 1, + Name: "", + BrandId: 0, + TagId: 0, + SearchWord: "", + State: 0, + LabelIds: 1, + SaleStatus: 0, + LimitSale: 0, + NeedCombinationSpu: 2, + NoStockAutoClear: -1, + MedicareType: 1, + } + api.GetRecommendSku(param, "") +} diff --git a/platformapi/mtwmapi/user_page.go b/platformapi/mtwmapi/user_page.go index f3236f50..a9a383ab 100644 --- a/platformapi/mtwmapi/user_page.go +++ b/platformapi/mtwmapi/user_page.go @@ -48,6 +48,7 @@ var ( "api/sg/promotion/invite/centerList": actURL, "api/invite/detail": actURL, "v2/logon/setToken": orderURL, + "reuse/sc/product/retail/r/searchListPage": orderURL, } ) @@ -74,6 +75,9 @@ func (a *API) AccessUserPage2(subURL string, params map[string]interface{}, isPo request.Header.Set("Content-Type", "application/x-www-form-urlencoded") request.Header.Set("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1") request.Header.Set("Pragma", "no-cache") + if subURL == `reuse/sc/product/retail/r/searchListPage` { + //request.Header.Set("") + } } else { request, _ = http.NewRequest(http.MethodGet, utils.GenerateGetURL(rootURL, subURL, params), nil) }