- add param valueMask to UpdateEntityLogicallyAndUpdateSyncStatus

- judge change content in UpdateSku
- support change sku spec
This commit is contained in:
gazebo
2019-01-31 09:46:23 +08:00
parent a0cecdc4c6
commit d420aa68fe
6 changed files with 25 additions and 15 deletions

View File

@@ -96,7 +96,7 @@ func UpdateCategory(ctx *jxcontext.Context, categoryID int, payload map[string]i
valid["name"] = strings.Trim(valid["name"].(string), " ")
}
db := dao.GetDB()
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, cat, valid, userName, nil, model.FieldJdSyncStatus); err == nil {
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, cat, valid, userName, nil, model.FieldJdSyncStatus, model.SyncFlagModifiedMask); err == nil {
_, err = CurVendorSync.SyncCategory(ctx, db, categoryID, false, userName)
}
}
@@ -497,7 +497,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
if valid["img"] != "" {
valid["imgWeimob"] = ""
}
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, skuName, valid, userName, nil, model.FieldJdSyncStatus); err == nil && num == 1 {
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, skuName, valid, userName, nil, model.FieldJdSyncStatus, model.SyncFlagModifiedMask); err == nil && num == 1 {
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 {
@@ -519,7 +519,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
sku := &model.Sku{}
_, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, nil, userName, map[string]interface{}{
model.FieldNameID: nameID,
}, model.FieldJdSyncStatus)
}, model.FieldJdSyncStatus, model.SyncFlagModifiedMask)
if err == nil {
dao.Commit(db)
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
@@ -599,14 +599,21 @@ func AddSku(ctx *jxcontext.Context, nameID int, sku *model.Sku, userName string)
func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{}, userName string) (num int64, err error) {
sku := &model.Sku{}
sku.ID = skuID
valid := dao.NormalMakeMapByStructObject(payload, sku, userName)
db := dao.GetDB()
if err = dao.GetEntity(db, sku); err != nil {
return 0, err
}
valid := dao.StrictMakeMapByStructObject(payload, sku, userName)
if len(valid) > 0 {
db := dao.GetDB()
dao.Begin(db)
defer func() {
dao.Rollback(db)
}()
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, valid, userName, nil, model.FieldJdSyncStatus); err == nil {
maskValue := model.SyncFlagModifiedMask
if valid["specQuality"] != nil || valid["specUnit"] != nil {
maskValue |= model.SyncFlagSpecMask
}
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, valid, userName, nil, model.FieldJdSyncStatus, maskValue); err == nil {
if num == 1 {
if num, err = dao.ExecuteSQL(db, `
UPDATE sku_name t1

View File

@@ -387,7 +387,7 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa
dummy := &model.StoreMap{}
_, err2 := dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, dummy, nil, userName, map[string]interface{}{
model.FieldStoreID: store.ID,
}, model.FieldSyncStatus)
}, model.FieldSyncStatus, model.SyncFlagModifiedMask)
if err = err2; err == nil {
dao.Commit(db)
_, err = CurVendorSync.SyncStore(ctx, db, -1, store.ID, false, userName)
@@ -530,7 +530,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, storeMap, valid, userName, map[string]interface{}{
model.FieldStoreID: storeID,
model.FieldVendorID: vendorID,
}, model.FieldSyncStatus)
}, model.FieldSyncStatus, model.SyncFlagModifiedMask)
} else {
num, err = dao.UpdateEntityLogically(db, storeMap, valid, userName, map[string]interface{}{
model.FieldStoreID: storeID,
@@ -542,7 +542,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
storeSkuBind := &model.StoreSkuBind{}
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, storeSkuBind, nil, userName, map[string]interface{}{
model.FieldStoreID: storeID,
}, dao.GetSyncStatusStructField(model.VendorNames[vendorID])); err != nil {
}, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), model.SyncFlagModifiedMask); err != nil {
return 0, err
}
}