From a8664cef6553b05fc844c9064239a00c5de4f730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 28 Jul 2020 10:14:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E7=BB=91=E5=AE=9A=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 23 +++++++++++++++++++++++ business/model/dao/sku.go | 27 +++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 62172988f..686e60ea5 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -981,6 +981,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf return 0, err } } + updateOrCreateSkuVendorCategoryMap(db, ctx, nameID, payload, false) if utils.Interface2Int64WithDefault(payload["isGlobal"], 0) == 0 && payload["places"] != nil { if places, ok := payload["places"].([]interface{}); ok { if _, err = dao.DeleteSkuNamePlace(db, nameID, nil); err != nil { @@ -1052,6 +1053,28 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf return num, err } +func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, nameID int, payload map[string]interface{}, isDelete bool) { + if isDelete { + + } else { + + if payload["jdCategoryID"].(string) != "" { + skuVendorCatMaps, _ := dao.GetSkuVendorCategoryMaps(db, []int{nameID}, []int{model.VendorIDJD}, nil) + if len(skuVendorCatMaps) > 0 { + skuVendorCatMaps[0].VendorCategoryID = payload["jdCategoryID"].(string) + dao.UpdateEntity(db, skuVendorCatMaps[0], "VendorCategoryID") + } else { + skuVendorCatMap := &model.SkuVendorCategoryMap{ + NameID: nameID, + VendorID: model.VendorIDJD, + VendorCategoryID: payload["jdCategoryID"].(string), + } + dao.WrapAddIDCULDEntity(skuVendorCatMap, ctx.GetUserName()) + } + } + } +} + func SetStoreSkuSyncStatus2(db *dao.DaoDB, storeIDs []int, vendorIDs, skuIDs []int, syncStatus int) (num int64, err error) { for _, vendorID := range vendorIDs { num2, err2 := dao.SetStoreSkuSyncStatus(db, vendorID, storeIDs, skuIDs, syncStatus) diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index 84c2dbd3a..87f96bd53 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -413,3 +413,30 @@ func GetSkuExinfos(db *DaoDB, nameIDs []int, vendorIDs []int, exPrefix string, f } return nil, err } + +func GetSkuVendorCategoryMaps(db *DaoDB, nameIDs, vendorIDs []int, vendorCategoryIDs []string) (skuVendorCategoryMaps []*model.SkuVendorCategoryMap, err error) { + sql := ` + SELECT * + FROM sku_vendor_category_map + WHERE deleted_at = ? + ` + sqlParams := []interface{}{ + utils.DefaultTimeValue, + } + if len(nameIDs) > 0 { + sql += " AND name_id IN (" + GenQuestionMarks(len(nameIDs)) + ")" + sqlParams = append(sqlParams, nameIDs) + } + if len(vendorIDs) > 0 { + sql += " AND vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" + sqlParams = append(sqlParams, vendorIDs) + } + if len(vendorCategoryIDs) > 0 { + sql += " AND vendor_category_id IN (" + GenQuestionMarks(len(vendorCategoryIDs)) + ")" + sqlParams = append(sqlParams, vendorCategoryIDs) + } + if err = GetRows(db, &skuVendorCategoryMaps, sql, sqlParams...); err == nil { + return skuVendorCategoryMaps, nil + } + return nil, err +}