美团力荐
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) {
|
func TestRetailDiscountBatchSave(t *testing.T) {
|
||||||
result, _, err := api.RetailDiscountBatchSave2("7845503", 0, []*RetailDiscountActData{
|
result, _, err := api.RetailDiscountBatchSave2("12944552", 0, []*RetailDiscountActData{
|
||||||
&RetailDiscountActData{
|
&RetailDiscountActData{
|
||||||
AppFoodCode: "6039423",
|
AppFoodCode: "6094573",
|
||||||
StartTime: time.Now().Unix(),
|
StartTime: time.Now().Unix(),
|
||||||
EndTime: time.Now().Add(24 * time.Hour).Unix(),
|
EndTime: time.Now().Add(24 * time.Hour).Unix(),
|
||||||
OrderLimit: 1,
|
OrderLimit: 1,
|
||||||
DayLimit: -1,
|
DayLimit: 9999,
|
||||||
SettingType: SettingTypeAsDiscount,
|
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,
|
|
||||||
},
|
},
|
||||||
|
//&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 {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -190,3 +190,96 @@ func TestGetByAppPoiCodeAndType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
t.Log(utils.Format4Output(result, false))
|
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
|
package mtwmapi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"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)
|
err = utils.Map2StructByJson(result[orderID], &distributeOrderDetail, true)
|
||||||
return distributeOrderDetail, err
|
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))
|
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/sg/promotion/invite/centerList": actURL,
|
||||||
"api/invite/detail": actURL,
|
"api/invite/detail": actURL,
|
||||||
"v2/logon/setToken": orderURL,
|
"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("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("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")
|
request.Header.Set("Pragma", "no-cache")
|
||||||
|
if subURL == `reuse/sc/product/retail/r/searchListPage` {
|
||||||
|
//request.Header.Set("")
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
request, _ = http.NewRequest(http.MethodGet, utils.GenerateGetURL(rootURL, subURL, params), nil)
|
request, _ = http.NewRequest(http.MethodGet, utils.GenerateGetURL(rootURL, subURL, params), nil)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user