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 +}