diff --git a/business/partner/purchase/tao_vegetable/act.go b/business/partner/purchase/tao_vegetable/act.go index 776408dab..3a3cfea4b 100644 --- a/business/partner/purchase/tao_vegetable/act.go +++ b/business/partner/purchase/tao_vegetable/act.go @@ -2,6 +2,7 @@ package tao_vegetable import ( "fmt" + "math/rand" "time" "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability2770/domain" @@ -17,18 +18,17 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/globals" - "git.rosy.net.cn/jx-callback/globals/api" ) -func actType2Txd(actType int) *int64 { +func actType2Txd(actType int) int64 { if actType == model.ActSkuDirectDown { actType = tao_vegetable.DiscountTypeDeductMoney } else if actType == model.ActSkuSecKill { actType = tao_vegetable.DiscountTypeOnePrice - } else { + } else if actType == model.ActSkuDiscount { actType = tao_vegetable.DiscountTypeDiscounts } - return utils.Int64ToPointer(int64(actType)) + return int64(actType) } func actOrderRules2Mtwm(actOrderRules []*model.ActOrderRule) (actDetails []*mtwmapi.FullDiscountActDetail) { @@ -46,12 +46,12 @@ func act2TxdActivity(act *model.Act2) (activity *domain.AlibabaRetailMarketingIt actName := act.GetRealActName() activity = &domain.AlibabaRetailMarketingItemdiscountActivityCreateItemDiscountActivityOperateRequest{ ActivityName: &actName, - CreatorId: &act.VendorActID, + CreatorId: utils.String2Pointer(utils.Int2Str(rand.Int())), CreatorName: &act.LastOperator, Description: &act.Advertising, - Terminals: &[]int32{tao_vegetable.TerminalsAPP, tao_vegetable.TerminalsPOS}, - //StoreIds: &[]string{act.Act.}, - DiscountType: actType2Txd(act.Type), + Terminals: &[]int32{tao_vegetable.TerminalsAPP}, + //StoreIds: &[]string{act.s}, + DiscountType: utils.Int64ToPointer(actType2Txd(act.Type)), StartTime: utils.Int64ToPointer(act.BeginAt.UnixNano() / int64(time.Millisecond)), EndTime: utils.Int64ToPointer(act.EndAt.UnixNano() / int64(time.Millisecond)), } @@ -65,7 +65,7 @@ func storeSku2ActData(act *model.Act2, actStoreSku []*model.ActStoreSku2, handle fixPriceMoney = int64(0) discountRate = int64(0) decreaseMoney = int64(0) - limitDaily = int64(0) + limitDaily = int64(1) ) if act.LimitCount > 0 { limitCount = int64(act.LimitCount) @@ -77,28 +77,19 @@ func storeSku2ActData(act *model.Act2, actStoreSku []*model.ActStoreSku2, handle } for _, v := range actStoreSku { + globals.SugarLogger.Debugf("打印初始商品参数 sku=%s", utils.Format4Output(v, false)) if handler == nil || handler(v.SyncStatus) { stock := int64(0) if v.Stock > 0 { stock = int64(v.Stock) } - sType := *actType2Txd(v.Type) - switch sType { - case tao_vegetable.DiscountTypeDeductMoney: - decreaseMoney = v.VendorPrice - v.ActualActPrice - case tao_vegetable.DiscountTypeOnePrice: - fixPriceMoney = v.ActualActPrice - case tao_vegetable.DiscountTypeDiscounts: - discountRate = int64(v.PricePercentage * 10) - } - actData = &domain.AlibabaRetailMarketingItemdiscountActivitySkuAddItemDiscountActivityElementOperateRequest{ SkuElements: &[]domain.AlibabaRetailMarketingItemdiscountActivitySkuAddSkuActivityElementDto{{ - SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), - FixPriceMoney: &fixPriceMoney, - DiscountRate: &discountRate, - DecreaseMoney: &decreaseMoney, + SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), + //FixPriceMoney: &fixPriceMoney, + //DiscountRate: &discountRate, + //DecreaseMoney: &decreaseMoney, Limit: &domain.AlibabaRetailMarketingItemdiscountActivitySkuAddLimitDto{ TotalLimitCnt: &stock, DailyTotalLimitCnt: &limitDaily, @@ -107,11 +98,42 @@ func storeSku2ActData(act *model.Act2, actStoreSku []*model.ActStoreSku2, handle OrderLimitCnt: &limitCount, }, }}, - CreatorId: &v.VendorSkuID, + CreatorId: utils.String2Pointer(utils.Int2Str(rand.Int())), CreatorName: &v.LastOperator, OutActId: utils.String2Pointer(utils.Int2Str(v.ActID)), } - //actData = append(actData, temp) + + sType := actType2Txd(v.Type) + globals.SugarLogger.Debugf("sType=%d", sType) + switch sType { + case tao_vegetable.DiscountTypeDeductMoney: + decreaseMoney = v.VendorPrice - v.ActualActPrice + actData.SkuElements = &[]domain.AlibabaRetailMarketingItemdiscountActivitySkuAddSkuActivityElementDto{{ + SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), + DecreaseMoney: &decreaseMoney, + Limit: &domain.AlibabaRetailMarketingItemdiscountActivitySkuAddLimitDto{ + OrderLimitCnt: &limitCount, + }, + }} + case tao_vegetable.DiscountTypeOnePrice: + fixPriceMoney = v.ActualActPrice + actData.SkuElements = &[]domain.AlibabaRetailMarketingItemdiscountActivitySkuAddSkuActivityElementDto{{ + SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), + FixPriceMoney: &fixPriceMoney, + Limit: &domain.AlibabaRetailMarketingItemdiscountActivitySkuAddLimitDto{ + OrderLimitCnt: &limitCount, + }, + }} + case tao_vegetable.DiscountTypeDiscounts: + discountRate = int64(v.PricePercentage * 10) + actData.SkuElements = &[]domain.AlibabaRetailMarketingItemdiscountActivitySkuAddSkuActivityElementDto{{ + SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)), + DiscountRate: &discountRate, + Limit: &domain.AlibabaRetailMarketingItemdiscountActivitySkuAddLimitDto{ + OrderLimitCnt: &limitCount, + }, + }} + } } } return actData @@ -130,14 +152,15 @@ func storeSku2ActData4Delete(actStoreSku []*model.ActStoreSku2, handler func(int } //删除活动的商品详情 -func actSku2Delete(actIDs []string) (map[string]domain.AlibabaRetailMarketingItemdiscountActivitySkuDeleteItemDiscountActivityElementOperateRequest, error) { +func actSku2Delete(actIDs []string, vendorOrgCode, vendorStoreID string) (map[string]domain.AlibabaRetailMarketingItemdiscountActivitySkuDeleteItemDiscountActivityElementOperateRequest, error) { var ( SkuElement []domain.AlibabaRetailMarketingItemdiscountActivitySkuDeleteSkuActivityElementDto deData = make(map[string]domain.AlibabaRetailMarketingItemdiscountActivitySkuDeleteItemDiscountActivityElementOperateRequest, 0) ) for _, v := range actIDs { i := utils.Str2Int64(v) - if skus, err := api.TaoVegetableApi.ActivitySkuQuery(i); err == nil { + //if skus, err := api.TaoVegetableApi.ActivitySkuQuery(i); err == nil { + if skus, err := getAPI(vendorOrgCode, 0, vendorStoreID).ActivitySkuQuery(i); err == nil { //查询商品 for _, sku := range skus { SkuElement = append(SkuElement, domain.AlibabaRetailMarketingItemdiscountActivitySkuDeleteSkuActivityElementDto{ @@ -145,7 +168,7 @@ func actSku2Delete(actIDs []string) (map[string]domain.AlibabaRetailMarketingIte }) } //查询活动详情 - act, err := api.TaoVegetableApi.ActivityQuery(i, "") + act, err := getAPI(vendorOrgCode, 0, vendorStoreID).ActivityQuery(i, "") if err != nil { return nil, err } @@ -175,7 +198,8 @@ func createOneShopAct(act *model.Act2, vendorStoreID string, actStoreSku []*mode if globals.EnableMtwmStoreWrite { globals.SugarLogger.Debugf("进入创建活动") //创建活动 - actID, err1 := api.TaoVegetableApi.ActivityCreate(*actData) + actData.StoreIds = &[]string{vendorStoreID} + actID, err1 := getAPI(act.VendorOrgCode, 0, vendorStoreID).ActivityCreate(*actData) globals.SugarLogger.Debugf("createOneShopAct actData=%s,err=%v", utils.Format4Output(actData, false), err1) if err1 != nil || actID == 0 { failedList = append(failedList, &partner.StoreSkuInfoWithErr{ @@ -188,7 +212,7 @@ func createOneShopAct(act *model.Act2, vendorStoreID string, actStoreSku []*mode } //活动增加商品 actSkuData.ActId = &actID - err3, successSkuCode, failSkuCode := api.TaoVegetableApi.ActivitySkuCreate(*actSkuData) + err3, successSkuCode, failSkuCode := getAPI(act.VendorOrgCode, 0, vendorStoreID).ActivitySkuCreate(*actSkuData) globals.SugarLogger.Debugf("createOneShopAct actSkuData=%s,err=%v", utils.Format4Output(actSkuData, false), err3) err = err3 actStoreSkuMap := make(map[int]*model.ActStoreSku2) @@ -227,14 +251,14 @@ func cancelOneShopAct(act *model.Act2, vendorStoreID string, actStoreSku []*mode actStoreSkuMap[v.VendorActID] = v } //查找删除的活动商品 - sku2Delete, err := actSku2Delete(list) + sku2Delete, err := actSku2Delete(list, act.VendorOrgCode, vendorStoreID) if err != nil { return nil, err } //删除活动以及商品 for k, v := range sku2Delete { - if err = api.TaoVegetableApi.ActivitySkuDelete(v); err == nil { - err = api.TaoVegetableApi.ActivityDelete(*v.CreatorId, *v.CreatorName, utils.Str2Int64(k)) + if err = getAPI(act.VendorOrgCode, 0, vendorStoreID).ActivitySkuDelete(v); err == nil { + err = getAPI(act.VendorOrgCode, 0, vendorStoreID).ActivityDelete(*v.CreatorId, *v.CreatorName, utils.Str2Int64(k)) } if err != nil { failedList = append(failedList, &partner.StoreSkuInfoWithErr{