Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -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{
|
||||
|
||||
Reference in New Issue
Block a user