- don't use Unmarshal2Map
- recaculate sku price in updateSku
This commit is contained in:
@@ -605,13 +605,28 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{}
|
||||
}
|
||||
valid := dao.StrictMakeMapByStructObject(payload, sku, userName)
|
||||
if len(valid) > 0 {
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(valid, false))
|
||||
dao.Begin(db)
|
||||
defer func() {
|
||||
dao.Rollback(db)
|
||||
}()
|
||||
maskValue := model.SyncFlagModifiedMask
|
||||
if valid["specQuality"] != nil || valid["specUnit"] != nil {
|
||||
skuName := &model.SkuName{}
|
||||
skuName.ID = sku.NameID
|
||||
if err = dao.GetEntity(db, skuName); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
maskValue |= model.SyncFlagSpecMask
|
||||
specQuality := sku.SpecQuality
|
||||
if valid["specQuality"] != nil {
|
||||
specQuality = float32(utils.MustInterface2Float64(valid["specQuality"]))
|
||||
}
|
||||
specUnit := sku.SpecUnit
|
||||
if valid["specUnit"] != nil {
|
||||
specUnit = utils.Interface2String(valid["specUnit"])
|
||||
}
|
||||
valid["price"] = jxutils.CaculateSkuPrice(skuName.Price, specQuality, specUnit, skuName.Unit)
|
||||
}
|
||||
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, valid, userName, nil, model.FieldJdSyncStatus, maskValue); err == nil {
|
||||
if num == 1 {
|
||||
|
||||
Reference in New Issue
Block a user