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 (
"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{