Files
baseapi/platformapi/mtwmapi/act_test.go
邹宗楠 88e7b96fec 1
2023-04-06 18:25:24 +08:00

219 lines
7.2 KiB
Go

package mtwmapi
import (
"fmt"
"git.rosy.net.cn/jx-callback/globals"
"testing"
"time"
"git.rosy.net.cn/baseapi/utils"
)
func TestFullDiscountBatchSave(t *testing.T) {
result, err := api.FullDiscountBatchSave(testPoiCode, &FullDiscountActInfo{
// ActIDs: "12345678",
ActName: "测试活动0402",
StartTime: time.Now().Unix(),
EndTime: time.Now().Add(24 * time.Hour).Unix(),
ActType: ActTypeStoreFullDiscount,
}, []*FullDiscountActDetail{
&FullDiscountActDetail{
OriginalPrice: 10000,
ActPrice: 1,
},
}, /*[]*ActSkuInfo{
&ActSkuInfo{
AppFoodCode: "30902",
DayLimit: 1,
},
}*/nil)
if err != nil {
t.Fatal(err)
}
// 30902
t.Log(result)
}
func TestFullDiscountList(t *testing.T) {
result, err := api.FullDiscountList(testPoiCode, ActTypeStoreFullDiscount)
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestFullDiscountFoodsList(t *testing.T) {
result, err := api.FullDiscountFoodsList(testPoiCode, "497726932")
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestFulllDiscountShippingFeeBatchSave(t *testing.T) {
err := api.FulllDiscountShippingFeeBatchSave(testPoiCode, []*ShippingFeeActData{&ShippingFeeActData{}})
if err != nil {
t.Fatal(err)
}
}
func TestFulllDiscountShippingFeeList(t *testing.T) {
result, err := api.FulllDiscountShippingFeeList(testPoiCode)
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestRetailDiscountBatchSave(t *testing.T) {
result, _, err := api.RetailDiscountBatchSave2("12944552", 0, []*RetailDiscountActData{
&RetailDiscountActData{
AppFoodCode: "6094573",
StartTime: time.Now().Unix(),
EndTime: time.Now().Add(24 * time.Hour).Unix(),
OrderLimit: 1,
DayLimit: 9999,
SettingType: SettingTypeAsDiscount,
DiscountCoefficient: 9,
},
})
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestRetailDiscountList(t *testing.T) {
result, err := api.RetailDiscountList("8694203", RetailActTypeSecKill)
if err != nil {
t.Fatal(err)
}
for _, v := range result {
globals.SugarLogger.Debugf("%s", utils.Format4Output(v, false))
}
//t.Log(utils.Format4Output(result, false))
}
func TestInStoreCouponList(t *testing.T) {
result, err := api.InStoreCouponList(testPoiCode, 1, 100)
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestParseErr4RetailDiscountDelete(t *testing.T) {
errStr := `
{"error_list":[{"act_id":1053302130,"error_msg":"活动ID不存在"},{"act_id":1053302127,"error_msg":"活动ID不存在"},{"act_id":1053302128,"error_msg":"活动ID不存在"},{"act_id":1053302129,"error_msg":"活动ID不存在"},{"act_id":1053302135,"error_msg":"活动ID不存在"},{"act_id":1053302132,"error_msg":"活动ID不存在"},{"act_id":1053302123,"error_msg":"活动ID不存在"},{"act_id":1053302125,"error_msg":"活动ID不存在"},{"act_id":1053302124,"error_msg":"活动ID不存在"},{"act_id":1053302133,"error_msg":"活动ID不存在"},{"act_id":1053302126,"error_msg":"活动ID不存在"},{"act_id":1053302134,"error_msg":"活动ID不存在"},{"act_id":1053302131,"error_msg":"活动ID不存在"}]}
`
errExt := utils.NewErrorCode(errStr, "")
failedList := ParseErr4RetailDiscountDelete(errExt)
t.Log(utils.Format4Output(failedList, false))
}
func TestGetByAppPoiCodeAndType(t *testing.T) {
result, err := api.GetByAppPoiCodeAndType("10305601", 1, 1)
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestSgin(t *testing.T) {
timestamp := time.Now().Unix()
sign := api.signParams("https://waimaiopen.meituan.com/api/v1/wm/IM/getConnectionToken", map[string]interface{}{"timestamp": timestamp, "app_id": 589})
fmt.Println(sign)
fmt.Println(timestamp)
}
func TestBaokuanHuodong(t *testing.T) {
// 获取门店所有的爆款活动
storeId := 103201
vendorStoreId := "8694421"
actList, err := api.RetailDiscountList(vendorStoreId, 56)
fmt.Println(err)
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)
}
}
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
}