- fix bug when not use Unmarshal2Map correctly

This commit is contained in:
gazebo
2019-01-31 11:58:15 +08:00
parent b6f7921b76
commit 7a5326a1dc
4 changed files with 18 additions and 13 deletions

View File

@@ -21,6 +21,7 @@ func NormalMakeMapByStructObject(mapData map[string]interface{}, obj interface{}
return retVal return retVal
} }
// 此函数要求mapData中的数据类型是完全正确的可利用函数utils.Unmarshal2Map比如整数浮点不能为通用的Number型
func StrictMakeMapByStructObject(mapData map[string]interface{}, obj interface{}, userName string) (retVal map[string]interface{}) { func StrictMakeMapByStructObject(mapData map[string]interface{}, obj interface{}, userName string) (retVal map[string]interface{}) {
retVal, _ = IDCULDFilterMapByStructObject(mapData, obj, true) retVal, _ = IDCULDFilterMapByStructObject(mapData, obj, true)
return retVal return retVal

View File

@@ -464,8 +464,9 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
if sku.JdSyncStatus&model.SyncFlagSpecMask != 0 { if sku.JdSyncStatus&model.SyncFlagSpecMask != 0 {
skuIndex := sku.SkuIndex skuIndex := sku.SkuIndex
if skuIndex > 0 { if skuIndex > 0 {
// saleAttrValue := composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit) saleAttrValue := composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit)
// err = api.JdAPI.UpdateSpuSaleAttr(utils.Int2Str(skuExt.ID), utils.Int2Str(jdapi.SaleAttrIDBase), "", utils.Int2Str(jdapi.SaleAttrValueIDBase+skuIndex-1), saleAttrValue) globals.SugarLogger.Debugf("syncSkuNameAsSpu outSuperId:%d, saleAttrId:%d, saleAttrValueId:%d, saleAttrValueName:%s", skuExt.ID, jdapi.SaleAttrIDBase, jdapi.SaleAttrValueIDBase+skuIndex-1, saleAttrValue)
err = api.JdAPI.UpdateSpuSaleAttr(utils.Int2Str(skuExt.ID), utils.Int2Str(jdapi.SaleAttrIDBase), "", utils.Int2Str(jdapi.SaleAttrValueIDBase+skuIndex-1), saleAttrValue)
} }
} }
} }

View File

@@ -183,8 +183,9 @@ func (c *SkuController) AddSkuName() {
// @router /UpdateSkuName [put] // @router /UpdateSkuName [put]
func (c *SkuController) UpdateSkuName() { func (c *SkuController) UpdateSkuName() {
c.callUpdateSkuName(func(params *tSkuUpdateSkuNameParams) (retVal interface{}, errCode string, err error) { c.callUpdateSkuName(func(params *tSkuUpdateSkuNameParams) (retVal interface{}, errCode string, err error) {
payload := make(map[string]interface{}) var payload map[string]interface{}
if err = utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil { dummySkuName := &model.SkuName{}
if payload, err = utils.Unmarshal2Map([]byte(params.Payload), dummySkuName); err == nil {
retVal, err = cms.UpdateSkuName(params.Ctx, params.NameID, payload, params.Ctx.GetUserName()) retVal, err = cms.UpdateSkuName(params.Ctx, params.NameID, payload, params.Ctx.GetUserName())
} }
return retVal, "", err return retVal, "", err
@@ -233,8 +234,9 @@ func (c *SkuController) AddSku() {
// @router /UpdateSku [put] // @router /UpdateSku [put]
func (c *SkuController) UpdateSku() { func (c *SkuController) UpdateSku() {
c.callUpdateSku(func(params *tSkuUpdateSkuParams) (retVal interface{}, errCode string, err error) { c.callUpdateSku(func(params *tSkuUpdateSkuParams) (retVal interface{}, errCode string, err error) {
payload := make(map[string]interface{}) var payload map[string]interface{}
if err = utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil { dummySku := &model.Sku{}
if payload, err = utils.Unmarshal2Map([]byte(params.Payload), dummySku); err == nil {
retVal, err = cms.UpdateSku(params.Ctx, params.SkuID, payload, params.Ctx.GetUserName()) retVal, err = cms.UpdateSku(params.Ctx, params.SkuID, payload, params.Ctx.GetUserName())
} }
return retVal, "", err return retVal, "", err

View File

@@ -66,9 +66,10 @@ func (c *StoreController) GetVendorStore() {
// @router /UpdateStore [put] // @router /UpdateStore [put]
func (c *StoreController) UpdateStore() { func (c *StoreController) UpdateStore() {
c.callUpdateStore(func(params *tStoreUpdateStoreParams) (retVal interface{}, errCode string, err error) { c.callUpdateStore(func(params *tStoreUpdateStoreParams) (retVal interface{}, errCode string, err error) {
store := make(map[string]interface{}) var payload map[string]interface{}
if err = utils.UnmarshalUseNumber([]byte(params.Payload), &store); err == nil { dummyStore := &model.Store{}
retVal, err = cms.UpdateStore(params.Ctx, params.StoreID, store, params.Ctx.GetUserName()) if payload, err = utils.Unmarshal2Map([]byte(params.Payload), dummyStore); err == nil {
retVal, err = cms.UpdateStore(params.Ctx, params.StoreID, payload, params.Ctx.GetUserName())
} }
return retVal, "", err return retVal, "", err
}) })
@@ -144,10 +145,10 @@ func (c *StoreController) GetStoreVendorMaps() {
// @router /UpdateStoreVendorMap [put] // @router /UpdateStoreVendorMap [put]
func (c *StoreController) UpdateStoreVendorMap() { func (c *StoreController) UpdateStoreVendorMap() {
c.callUpdateStoreVendorMap(func(params *tStoreUpdateStoreVendorMapParams) (retVal interface{}, errCode string, err error) { c.callUpdateStoreVendorMap(func(params *tStoreUpdateStoreVendorMapParams) (retVal interface{}, errCode string, err error) {
var storeMap map[string]interface{} var payload map[string]interface{}
var storeMapStruct model.StoreMap dummyStoreMap := &model.StoreMap{}
if storeMap, err = utils.Unmarshal2Map([]byte(params.Payload), &storeMapStruct); err == nil { if payload, err = utils.Unmarshal2Map([]byte(params.Payload), dummyStoreMap); err == nil {
retVal, err = cms.UpdateStoreVendorMap(params.Ctx, nil, params.StoreID, params.VendorID, storeMap, params.Ctx.GetUserName()) retVal, err = cms.UpdateStoreVendorMap(params.Ctx, nil, params.StoreID, params.VendorID, payload, params.Ctx.GetUserName())
} }
return retVal, "", err return retVal, "", err
}) })