银豹同步测试

This commit is contained in:
苏尹岚
2020-04-30 12:43:40 +08:00
parent e83cde6d3d
commit 626fd62c9b
3 changed files with 100 additions and 89 deletions

View File

@@ -234,6 +234,12 @@ var (
"商品名称", "商品名称",
"备注", "备注",
} }
autoNotFoucsStoreMap = map[int]int{
667088: 667088,
model.MatterStoreID: model.MatterStoreID,
103038: 103038,
300397: 300397,
}
) )
func GetStoreSkus(ctx *jxcontext.Context, storeID int, skuIDs []int, isFocus bool, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { func GetStoreSkus(ctx *jxcontext.Context, storeID int, skuIDs []int, isFocus bool, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) {
@@ -3227,7 +3233,7 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe
skuNameMap = make(map[int]int) skuNameMap = make(map[int]int)
) )
//物料店不自动关注畅销品 //物料店不自动关注畅销品
if v.ID == model.MatterStoreID { if autoNotFoucsStoreMap[v.ID] != 0 {
return retVal, err return retVal, err
} }
sql := ` sql := `

View File

@@ -913,14 +913,14 @@ func (v *VendorSync) SyncStoreSkusFromYb(ctx *jxcontext.Context, storeIDs []int,
func syncStoreSkusFromYb(ctx *jxcontext.Context, storeID, vendorID int, vendorStoreID string, isAsync, isContinueWhenError bool) (hint string, err error) { func syncStoreSkusFromYb(ctx *jxcontext.Context, storeID, vendorID int, vendorStoreID string, isAsync, isContinueWhenError bool) (hint string, err error) {
var ( var (
db = dao.GetDB() db = dao.GetDB()
localSkuMap = make(map[string]*dao.StoreSkuSyncInfo) localSkuMap = make(map[string]*dao.StoreSkuSyncInfo)
vendorSkuMap = make(map[string]*partner.SkuNameInfo) vendorSkuMap = make(map[string]*partner.SkuNameInfo)
skuBindInfosDel []*StoreSkuBindInfo // skuBindInfosDel []*StoreSkuBindInfo
skuBindInfosUpt []*StoreSkuBindInfo // skuBindInfosUpt []*StoreSkuBindInfo
addList []*partner.SkuNameInfo addList []*partner.SkuNameInfo
updateList []*partner.SkuNameInfo updateList []*partner.SkuNameInfo
deleteList []*dao.StoreSkuSyncInfo deleteList []*dao.StoreSkuSyncInfo
) )
handler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) handler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
@@ -953,91 +953,93 @@ func syncStoreSkusFromYb(ctx *jxcontext.Context, storeID, vendorID int, vendorSt
// fmt.Println("remoteSkuList", len(remoteSkuList)) // fmt.Println("remoteSkuList", len(remoteSkuList))
// fmt.Println("addList", len(addList)) // fmt.Println("addList", len(addList))
// fmt.Println("updateList", len(updateList)) // fmt.Println("updateList", len(updateList))
// fmt.Println("deleteList", len(deleteList)) for _, v := range deleteList {
fmt.Println("deleteList", utils.Format4Output(v.SkuID, false))
}
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
store, _ := dao.GetStoreDetail(db, storeID, vendorID) // store, _ := dao.GetStoreDetail(db, storeID, vendorID)
switch step { switch step {
case 0: case 0:
if len(addList) > 0 { // if len(addList) > 0 {
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { // taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
var ( // var (
v = batchItemList[0].(*partner.SkuNameInfo) // v = batchItemList[0].(*partner.SkuNameInfo)
upc = v.YbBarCode // upc = v.YbBarCode
) // )
err = AddSkuNameByUpc(ctx, upc, store, v) // err = AddSkuNameByUpc(ctx, upc, store, v)
if err != nil { // if err != nil {
task.AddFailedList(putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "根据upc创建京西商品")) // task.AddFailedList(putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "根据upc创建京西商品"))
} // }
return retVal, err // return retVal, err
} // }
taskParallel := tasksch.NewParallelTask("创建商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, addList) // taskParallel := tasksch.NewParallelTask("创建商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, addList)
tasksch.HandleTask(taskParallel, task, true).Run() // tasksch.HandleTask(taskParallel, task, true).Run()
_, err = taskParallel.GetResult(0) // _, err = taskParallel.GetResult(0)
} // }
case 1: case 1:
if len(deleteList) > 0 { // if len(deleteList) > 0 {
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { // taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
var ( // var (
v = batchItemList[0].(*dao.StoreSkuSyncInfo) // v = batchItemList[0].(*dao.StoreSkuSyncInfo)
) // )
skuBindInfo := &StoreSkuBindInfo{ // skuBindInfo := &StoreSkuBindInfo{
NameID: v.NameID, // NameID: v.NameID,
IsFocus: -1, // IsFocus: -1,
} // }
retVal = []*StoreSkuBindInfo{skuBindInfo} // retVal = []*StoreSkuBindInfo{skuBindInfo}
return retVal, err // return retVal, err
} // }
taskParallel := tasksch.NewParallelTask("删除商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, deleteList) // taskParallel := tasksch.NewParallelTask("删除商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, deleteList)
tasksch.HandleTask(taskParallel, task, true).Run() // tasksch.HandleTask(taskParallel, task, true).Run()
resultDel, _ := taskParallel.GetResult(0) // resultDel, _ := taskParallel.GetResult(0)
for _, v := range resultDel { // for _, v := range resultDel {
skuBindInfosDel = append(skuBindInfosDel, v.(*StoreSkuBindInfo)) // skuBindInfosDel = append(skuBindInfosDel, v.(*StoreSkuBindInfo))
} // }
_, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosDel, false) // _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosDel, false)
} // }
case 2: case 2:
if len(updateList) > 0 { // if len(updateList) > 0 {
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { // taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
var ( // var (
v = batchItemList[0].(*partner.SkuNameInfo) // v = batchItemList[0].(*partner.SkuNameInfo)
skuBindInfo = &StoreSkuBindInfo{} // skuBindInfo = &StoreSkuBindInfo{}
storeSkus []*dao.StoreSkuExt // storeSkus []*dao.StoreSkuExt
pricePercentagePack []*model.PricePercentageItem // pricePercentagePack []*model.PricePercentageItem
) // )
sql := ` // sql := `
SELECT a.*, c.id name_id // SELECT a.*, c.id name_id
FROM store_sku_bind a // FROM store_sku_bind a
JOIN sku b ON a.sku_id = b.id // JOIN sku b ON a.sku_id = b.id
JOIN sku_name c ON c.id = b.name_id // JOIN sku_name c ON c.id = b.name_id
WHERE a.store_id = ? AND a.yb_id = ? AND a.deleted_at = ? // WHERE a.store_id = ? AND a.yb_id = ? AND a.deleted_at = ?
` // `
sqlParams := []interface{}{storeID, v.SkuList[0].VendorSkuID, utils.DefaultTimeValue} // sqlParams := []interface{}{storeID, v.SkuList[0].VendorSkuID, utils.DefaultTimeValue}
err = dao.GetRows(db, &storeSkus, sql, sqlParams) // err = dao.GetRows(db, &storeSkus, sql, sqlParams)
if len(storeSkus) > 0 { // if len(storeSkus) > 0 {
if storeSkus[0].YbPrice != int(v.SkuList[0].VendorPrice) { // if storeSkus[0].YbPrice != int(v.SkuList[0].VendorPrice) {
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) // err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
skuBindInfo.UnitPrice = jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, int(v.SkuList[0].VendorPrice)) // skuBindInfo.UnitPrice = jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, int(v.SkuList[0].VendorPrice))
} // }
} else { // } else {
return retVal, fmt.Errorf("未查询到门店商品yb_id [%v]", v.SkuList[0].VendorSkuID) // return retVal, fmt.Errorf("未查询到门店商品yb_id [%v]", v.SkuList[0].VendorSkuID)
} // }
if v.SkuList[0].Stock < 1 { // if v.SkuList[0].Stock < 1 {
skuBindInfo.IsSale = model.StoreSkuBindStatusDontSale // skuBindInfo.IsSale = model.StoreSkuBindStatusDontSale
} else { // } else {
skuBindInfo.IsSale = model.StoreSkuBindStatusNormal // skuBindInfo.IsSale = model.StoreSkuBindStatusNormal
} // }
skuBindInfo.NameID = storeSkus[0].NameID // skuBindInfo.NameID = storeSkus[0].NameID
retVal = []*StoreSkuBindInfo{skuBindInfo} // retVal = []*StoreSkuBindInfo{skuBindInfo}
return retVal, err // return retVal, err
} // }
taskParallel := tasksch.NewParallelTask("更新商品价格和库存", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, updateList) // taskParallel := tasksch.NewParallelTask("更新商品价格和库存", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, updateList)
tasksch.HandleTask(taskParallel, task, true).Run() // tasksch.HandleTask(taskParallel, task, true).Run()
resultUpt, _ := taskParallel.GetResult(0) // resultUpt, _ := taskParallel.GetResult(0)
for _, v := range resultUpt { // for _, v := range resultUpt {
skuBindInfosUpt = append(skuBindInfosUpt, v.(*StoreSkuBindInfo)) // skuBindInfosUpt = append(skuBindInfosUpt, v.(*StoreSkuBindInfo))
} // }
_, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosUpt, false) // _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosUpt, false)
} // }
} }
return result, err return result, err
} }

View File

@@ -1370,6 +1370,9 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) {
v.Status = model.OrderStatusCanceled v.Status = model.OrderStatusCanceled
} }
} }
if v.Status < model.OrderStatusDelivering {
v.Status = model.OrderStatusCanceled
}
dao.UpdateEntity(db, v, "Status") dao.UpdateEntity(db, v, "Status")
dao.Commit(db) dao.Commit(db)
changeOrderStatus(v.VendorOrderID, v.Status, "") changeOrderStatus(v.VendorOrderID, v.Status, "")