diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 68ea5d79e..b4d180b3f 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1380,23 +1380,31 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, exPrefix, fro payload["exPrefixEnd"] = nil _, err = UpdateSkuName(ctx, nameID, payload) } else { - skuName := &model.SkuName{ - ExPrefix: exPrefix, - ExPrefixBegin: &fromTimeP, - ExPrefixEnd: &toTimeP, - } - skuName.ID = nameID - skuName.LastOperator = ctx.GetLoginID() - skuName.UpdatedAt = time.Now() - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) + skuList, err := dao.GetSkus(db, nil, []int{nameID}, nil, nil) + if err == nil && len(skuList) > 0 { + if skuList[0].ExPrefixBegin != nil { + _, err = UpdateSkuName(ctx, nameID, payload) + CurVendorSync.SyncStoresSkus2(ctx, db, partner.GetSingleStoreVendorIDs(), nil, false, []int{skuList[0].ID}, nil, model.SyncFlagModifiedMask, true, true) + } else { + skuName := &model.SkuName{ + ExPrefix: exPrefix, + ExPrefixBegin: &fromTimeP, + ExPrefixEnd: &toTimeP, + } + skuName.ID = nameID + skuName.LastOperator = ctx.GetLoginID() + skuName.UpdatedAt = time.Now() + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + _, err = dao.UpdateEntity(db, skuName, "ExPrefix", "ExPrefixBegin", "ExPrefixEnd", "LastOperator", "UpdatedAt") + dao.Commit(db) } - }() - _, err = dao.UpdateEntity(db, skuName, "ExPrefix", "ExPrefixBegin", "ExPrefixEnd", "LastOperator", "UpdatedAt") - dao.Commit(db) + } } return retVal, err }, nameIDs)