同步错误返回修改,err都是nil

This commit is contained in:
苏尹岚
2020-01-21 17:38:46 +08:00
parent d63950d91d
commit c7d8d2033c
5 changed files with 91 additions and 3 deletions

View File

@@ -3397,11 +3397,12 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i
sql := `
SELECT t1.store_id,count(*) sec_kill_count, count(t1.price < 100 or NULL) sec_kill_count2
FROM(
SELECT a.store_id, a.sku_id, d.type, MIN(b.act_price) price
SELECT a.store_id, a.sku_id, d.type, MIN(e.actual_act_price) price
FROM store_sku_bind a
LEFT JOIN act_store_sku b ON a.store_id = b.store_id AND b.sku_id = a.sku_id
LEFT JOIN act_map c ON c.act_id = b.act_id
LEFT JOIN act d ON d.id = c.act_id
LEFT JOIN act_store_sku_map e ON e.store_id = a.store_id AND e.sku_id = a.sku_id AND e.vendor_id = c.vendor_id AND e.act_id = d.id
WHERE 1=1
AND a.store_id = ?
AND c.vendor_id = ?
@@ -3409,6 +3410,7 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i
AND d.type = ?
AND a.status = ?
AND a.deleted_at = ?
AND e.actual_act_price <> 0
GROUP BY 1,2,3)t1
GROUP BY 1
`
@@ -3501,7 +3503,7 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i
}
return result, err
}
taskSeq := tasksch.NewSeqTask2("爆品预警", ctx, isContinueWhenError, taskSeqFunc, 3)
taskSeq := tasksch.NewSeqTask2("爆品预警", ctx, isContinueWhenError, taskSeqFunc, 2)
tasksch.HandleTask(taskSeq, nil, true).Run()
if !isAsync {
_, err = taskSeq.GetResult(0)

View File

@@ -1,6 +1,7 @@
package cms
import (
"errors"
"fmt"
"regexp"
"sort"
@@ -500,6 +501,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
err = nil
failedList = nil // 因为batchSize为1可以这样处理
}
failedList, err = buildFailedListAndErr(failedList, err, batchedStoreSkuList, nil, storeID, vendorID, "删除门店商品")
if len(failedList) > 0 {
task.AddFailedList(failedList)
}
@@ -534,6 +536,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(batchedStoreSkuList, err2, storeID, vendorID, "查询是否有该商品")...)
}
}
failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "创建门店商品")
if len(failedList) > 0 {
task.AddFailedList(failedList)
}
@@ -555,6 +558,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
_, err = putils.FreeBatchStoreSkuSyncInfo("更新门店商品基础信息", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) {
var failedList []*partner.StoreSkuInfoWithErr
failedList, err = singleStoreHandler.UpdateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList)
failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "更新门店商品基础信息")
if len(failedList) > 0 {
task.AddFailedList(failedList)
}
@@ -571,6 +575,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
_, err = putils.FreeBatchStoreSkuInfo("更新门店商品库存", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
var failedList []*partner.StoreSkuInfoWithErr
failedList, err = storeSkuHandler.UpdateStoreSkusStock(ctx, storeDetail.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList)
failedList, err = buildFailedListAndErr(failedList, err, batchedStoreSkuList, nil, storeID, vendorID, "更新门店商品库存")
if len(failedList) > 0 {
task.AddFailedList(failedList)
}
@@ -595,6 +600,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
_, err = putils.FreeBatchStoreSkuInfo(name, func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
var failedList []*partner.StoreSkuInfoWithErr
failedList, err = storeSkuHandler.UpdateStoreSkusStatus(ctx, storeDetail.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList, status)
failedList, err = buildFailedListAndErr(failedList, err, batchedStoreSkuList, nil, storeID, vendorID, "更新门店商品状态")
if len(failedList) > 0 {
task.AddFailedList(failedList)
}
@@ -613,6 +619,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
}
var failedList []*partner.StoreSkuInfoWithErr
failedList, err = storeSkuHandler.UpdateStoreSkusPrice(ctx, storeDetail.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList)
failedList, err = buildFailedListAndErr(failedList, err, batchedStoreSkuList, nil, storeID, vendorID, "更新门店商品价格")
if len(failedList) > 0 {
task.AddFailedList(failedList)
}
@@ -657,6 +664,52 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
return err
}
func buildFailedListAndErr(failedList []*partner.StoreSkuInfoWithErr, err error, list1 []*partner.StoreSkuInfo, list2 []*dao.StoreSkuSyncInfo, storeID, vendorID int, syncType string) (result []*partner.StoreSkuInfoWithErr, err2 error) {
if err != nil && len(failedList) == 0 {
if list1 != nil {
for _, v := range list1 {
failed := &partner.StoreSkuInfoWithErr{
StoreSkuInfo: v,
VendoreID: vendorID,
StoreID: storeID,
SyncType: syncType,
ErrMsg: err.Error(),
}
failedList = append(failedList, failed)
}
}
if list2 != nil {
for _, v := range list2 {
storeSkuInfo := &partner.StoreSkuInfo{
SkuID: v.SkuID,
VendorSkuID: v.VendorSkuID,
NameID: v.NameID,
VendorNameID: v.VendorNameID,
VendorPrice: v.VendorPrice,
Status: v.Status,
}
failed := &partner.StoreSkuInfoWithErr{
StoreSkuInfo: storeSkuInfo,
VendoreID: vendorID,
StoreID: storeID,
SyncType: syncType,
ErrMsg: err.Error(),
}
failedList = append(failedList, failed)
}
}
return failedList, err
} else if err == nil && len(failedList) > 0 {
var errMsg = ""
for _, v := range failedList {
errMsg += v.ErrMsg
}
err2 := errors.New(errMsg)
return failedList, err2
}
return failedList, err
}
func isNeedHandleAct(causeFlag int) bool {
return globals.IsStoreSkuAct && (causeFlag&model.SyncFlagPriceMask != 0)
}