美团力荐
This commit is contained in:
6
platformapi/ebaiapi/elm_lm.go
Normal file
6
platformapi/ebaiapi/elm_lm.go
Normal file
@@ -0,0 +1,6 @@
|
||||
package ebaiapi
|
||||
|
||||
// GetStoreIMStatus 获取门店的im状态
|
||||
func (a *API) GetStoreIMStatus(platformShopId string) {
|
||||
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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, "")
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user