Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop

This commit is contained in:
邹宗楠
2023-07-10 09:27:01 +08:00

View File

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