银豹同步测试
This commit is contained in:
@@ -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 := `
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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, "")
|
||||||
|
|||||||
Reference in New Issue
Block a user