From 9663ce7a7317b3eb5e007cc994d0b3a1f5179faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sun, 26 Apr 2020 09:56:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=B8=82=E7=89=A9=E6=96=99=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=88=B0=E6=9E=9C=E5=9B=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 174 +++++++++++++++--------------- 1 file changed, 90 insertions(+), 84 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index a8a4e5b3b..2d819cf8f 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -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})