美团力荐

This commit is contained in:
邹宗楠
2023-03-28 18:01:06 +08:00
parent 3b694d9462
commit 56451a4fb9
5 changed files with 226 additions and 76 deletions

View File

@@ -0,0 +1,6 @@
package ebaiapi
// GetStoreIMStatus 获取门店的im状态
func (a *API) GetStoreIMStatus(platformShopId string) {
}

View File

@@ -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
}

View File

@@ -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)
}

View File

@@ -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, "")
}

View File

@@ -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)
}