菜市物料同步到果园

This commit is contained in:
苏尹岚
2020-04-26 09:56:52 +08:00
parent 4fad73d834
commit 9663ce7a73

View File

@@ -4297,6 +4297,9 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool)
deleteMatters []*model.Sku
updateMatters []*model.Sku
)
if !globals.IsMainProductEnv() {
return "", fmt.Errorf("此接口只允许在果园上调用!")
}
task := tasksch.NewParallelTask("同步物料商品从菜市到果园", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
step := batchItemList[0].(int)
@@ -4333,90 +4336,93 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool)
fmt.Println("addMatters", utils.Format4Output(addMatters, false))
fmt.Println("updateMatters", utils.Format4Output(updateMatters, false))
case 1:
// if len(deleteMatters) > 0 {
// for _, v := range deleteMatters {
// _, err = DeleteSkuName(ctx, v.NameID, ctx.GetUserName())
// }
// }
// if len(addMatters) > 0 {
// for _, v := range addMatters {
// var (
// skuName *model.SkuName
// storeSkus []*model.StoreSkuBind
// )
// skuNames, _ := dao.GetSkuNames(db, []int{v.NameID}, nil, "", false)
// if len(skuNames) > 0 {
// skuName = skuNames[0]
// }
// skuNameExt := &model.SkuNameExt{
// SkuName: model.SkuName{},
// Skus: []*model.SkuWithVendor{
// &model.SkuWithVendor{
// Sku: &model.Sku{},
// },
// },
// }
// skuNameExt.Unit = skuName.Unit
// skuNameExt.Name = skuName.Name
// skuNameExt.Upc = skuName.Upc
// skuNameExt.SkuName.Status = model.SkuStatusNormal
// skuNameExt.Skus[0].SpecQuality = v.SpecQuality
// skuNameExt.Skus[0].SpecUnit = v.SpecUnit
// skuNameExt.Img = skuName.Img
// skuNameExt.Img2 = skuName.Img2
// skuNameExt.DescImg = skuName.DescImg
// skuNameExt.ID = v.NameID
// skuNameExt.CategoryID = skuName.CategoryID
// skuNameExt.Skus[0].ID = v.ID
// _, err = AddSkuName(ctx, skuNameExt, ctx.GetUserName())
// if err != nil {
// return retVal, err
// }
// sql := "SELECT * FROM jxd_dev_0.store_sku_bind WHERE store_id = ? AND sku_id = ? "
// sqlParams := []interface{}{model.MatterStoreID, v.ID}
// err = dao.GetRows(db, &storeSkus, sql, sqlParams)
// if err != nil {
// return retVal, err
// }
// if len(storeSkus) > 0 {
// var skuBindInfos []*StoreSkuBindInfo
// skuBindInfo := &StoreSkuBindInfo{
// NameID: skuName.ID,
// IsFocus: 1,
// IsSale: 1,
// }
// skuBindInfos = append(skuBindInfos, skuBindInfo)
// updateStoresSkusWithoutSync(ctx, db, []int{model.MatterStoreID}, skuBindInfos, false)
// }
// }
// }
// if len(updateMatters) > 0 {
// for _, v := range updateMatters {
// var skuName *model.SkuName
// skuNames, _ := dao.GetSkuNames(db, []int{v.NameID}, nil, "", false)
// if len(skuNames) > 0 {
// skuName = skuNames[0]
// }
// dao.Begin(db)
// defer func() {
// if r := recover(); r != nil {
// dao.Rollback(db)
// panic(r)
// }
// }()
// dao.WrapAddIDCULEntity(v, ctx.GetUserName())
// if _, err = dao.UpdateEntity(db, v, "SpecQuality", "SpecUnit", "EclpID"); err != nil {
// dao.Rollback(db)
// return retVal, err
// }
// dao.WrapAddIDCULEntity(skuName, ctx.GetUserName())
// if _, err = dao.UpdateEntity(db, skuName, "Name", "Img", "Img2", "DescImg", "Unit", "CategoryID"); err != nil {
// dao.Rollback(db)
// return retVal, err
// }
// dao.Commit(db)
// }
// }
if len(deleteMatters) > 0 {
for _, v := range deleteMatters {
_, err = DeleteSkuName(ctx, v.NameID, ctx.GetUserName())
}
}
if len(addMatters) > 0 {
for _, v := range addMatters {
var (
skuName *model.SkuName
storeSkus []*model.StoreSkuBind
)
skuNames, _ := dao.GetSkuNames(db, []int{v.NameID}, nil, "", false)
if len(skuNames) > 0 {
skuName = skuNames[0]
}
skuNameExt := &model.SkuNameExt{
SkuName: model.SkuName{},
Skus: []*model.SkuWithVendor{
&model.SkuWithVendor{
Sku: &model.Sku{},
},
},
}
skuNameExt.Unit = skuName.Unit
skuNameExt.Name = skuName.Name
skuNameExt.Upc = skuName.Upc
skuNameExt.SkuName.Status = model.SkuStatusNormal
skuNameExt.Img = skuName.Img
skuNameExt.Img2 = skuName.Img2
skuNameExt.DescImg = skuName.DescImg
skuNameExt.Price = skuName.Price
skuNameExt.ID = v.NameID
skuNameExt.CategoryID = 3024 //默认全放物料分类下
skuNameExt.Skus[0].ID = v.ID
skuNameExt.Skus[0].SpecQuality = v.SpecQuality
skuNameExt.Skus[0].SpecUnit = v.SpecUnit
skuNameExt.Skus[0].EclpID = v.EclpID
_, err = AddSkuName(ctx, skuNameExt, ctx.GetUserName())
if err != nil {
return retVal, err
}
sql := "SELECT * FROM jxd_dev_0.store_sku_bind WHERE store_id = ? AND sku_id = ? "
sqlParams := []interface{}{model.MatterStoreID, v.ID}
err = dao.GetRows(db, &storeSkus, sql, sqlParams)
if err != nil {
return retVal, err
}
if len(storeSkus) > 0 {
var skuBindInfos []*StoreSkuBindInfo
skuBindInfo := &StoreSkuBindInfo{
NameID: skuName.ID,
IsFocus: 1,
IsSale: 1,
UnitPrice: skuName.Price,
}
skuBindInfos = append(skuBindInfos, skuBindInfo)
updateStoresSkusWithoutSync(ctx, db, []int{model.MatterStoreID}, skuBindInfos, false)
}
}
}
if len(updateMatters) > 0 {
for _, v := range updateMatters {
var skuName *model.SkuName
skuNames, _ := dao.GetSkuNames(db, []int{v.NameID}, nil, "", false)
if len(skuNames) > 0 {
skuName = skuNames[0]
}
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
dao.WrapAddIDCULEntity(v, ctx.GetUserName())
if _, err = dao.UpdateEntity(db, v, "SpecQuality", "SpecUnit", "EclpID"); err != nil {
dao.Rollback(db)
return retVal, err
}
dao.WrapAddIDCULEntity(skuName, ctx.GetUserName())
if _, err = dao.UpdateEntity(db, skuName, "Name", "Img", "Img2", "DescImg", "Unit", "CategoryID", "Price"); err != nil {
dao.Rollback(db)
return retVal, err
}
dao.Commit(db)
}
}
}
return retVal, err
}, []int{0, 1})