diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 1d894e076..520a657ef 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -618,6 +618,9 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa return 0, err } var outStore *model.Store + if payload["autoEnableAt"] != nil { + payload["autoEnableAt"] = utils.Time2Date(utils.Str2Time(utils.Interface2String(payload["autoEnableAt"]))) + } valid := dao.StrictMakeMapByStructObject2(payload, store, &outStore, userName) if err = checkStoreDeliveryRange(utils.Interface2String(valid["deliveryRange"])); err != nil { return 0, err @@ -722,7 +725,6 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa } else { if valid["autoEnableAt"] != nil { status = model.StoreStatusHaveRest - valid["autoEnableAt"] = utils.Time2Date(utils.Str2Time(utils.Interface2String(valid["autoEnableAt"]))) } else { status = model.StoreStatusClosed } @@ -735,27 +737,29 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa } //时间校验 - if outStore.OpenTime1 != 0 && outStore.CloseTime1 != 0 { - if err := ValidateStructPartial(outStore, "OpenTime1", "CloseTime1"); err != nil { + if outStore != nil { + if outStore.OpenTime1 != 0 && outStore.CloseTime1 != 0 { + if err := ValidateStructPartial(outStore, "OpenTime1", "CloseTime1"); err != nil { + return 0, errors.New(fmt.Sprintf("门店营业时间1设置不合法!时间范围1 :[%v] 至 [%v]", outStore.OpenTime1, outStore.CloseTime1)) + } + } + if (outStore.OpenTime1 == 0 && outStore.CloseTime1 != 0) || (outStore.OpenTime1 != 0 && outStore.CloseTime1 == 0) { return 0, errors.New(fmt.Sprintf("门店营业时间1设置不合法!时间范围1 :[%v] 至 [%v]", outStore.OpenTime1, outStore.CloseTime1)) } - } - if (outStore.OpenTime1 == 0 && outStore.CloseTime1 != 0) || (outStore.OpenTime1 != 0 && outStore.CloseTime1 == 0) { - return 0, errors.New(fmt.Sprintf("门店营业时间1设置不合法!时间范围1 :[%v] 至 [%v]", outStore.OpenTime1, outStore.CloseTime1)) - } - if outStore.OpenTime2 != 0 && outStore.CloseTime2 != 0 { - if err := ValidateStructPartial(outStore, "OpenTime2", "CloseTime2"); err != nil { - return 0, errors.New(fmt.Sprintf("门店营业时间2设置不合法!时间范围2 :[%v] 至 [%v]", outStore.OpenTime2, outStore.CloseTime2)) + if outStore.OpenTime2 != 0 && outStore.CloseTime2 != 0 { + if err := ValidateStructPartial(outStore, "OpenTime2", "CloseTime2"); err != nil { + return 0, errors.New(fmt.Sprintf("门店营业时间2设置不合法!时间范围2 :[%v] 至 [%v]", outStore.OpenTime2, outStore.CloseTime2)) + } + } + if (outStore.OpenTime2 == 0 && outStore.CloseTime2 != 0) || (outStore.OpenTime2 != 0 && outStore.CloseTime2 == 0) { + return 0, errors.New(fmt.Sprintf("门店营业时间2设置不合法!时间范围2 :[%v] 至 [%v]", outStore.OpenTime1, outStore.CloseTime1)) + } + if outStore.OpenTime2 > outStore.OpenTime1 { + return 0, errors.New(fmt.Sprintf("门店营业时间设置不合法!第二段营业时间应该在第一段营业时间之后!")) + } + if beginAt, endAt := GetTimeMixByInt(outStore.OpenTime1, outStore.CloseTime1, outStore.OpenTime2, outStore.CloseTime2); beginAt != 0 && endAt != 0 { + return 0, errors.New(fmt.Sprintf("两段门店营业时间不可交叉!时间范围1 :[%v] 至 [%v], 时间范围2 :[%v] 至 [%v]", outStore.OpenTime1, outStore.CloseTime1, outStore.OpenTime2, outStore.CloseTime2)) } - } - if (outStore.OpenTime2 == 0 && outStore.CloseTime2 != 0) || (outStore.OpenTime2 != 0 && outStore.CloseTime2 == 0) { - return 0, errors.New(fmt.Sprintf("门店营业时间2设置不合法!时间范围2 :[%v] 至 [%v]", outStore.OpenTime1, outStore.CloseTime1)) - } - if outStore.OpenTime2 > outStore.OpenTime1 { - return 0, errors.New(fmt.Sprintf("门店营业时间设置不合法!第二段营业时间应该在第一段营业时间之后!")) - } - if beginAt, endAt := GetTimeMixByInt(outStore.OpenTime1, outStore.CloseTime1, outStore.OpenTime2, outStore.CloseTime2); beginAt != 0 && endAt != 0 { - return 0, errors.New(fmt.Sprintf("两段门店营业时间不可交叉!时间范围1 :[%v] 至 [%v], 时间范围2 :[%v] 至 [%v]", outStore.OpenTime1, outStore.CloseTime1, outStore.OpenTime2, outStore.CloseTime2)) } // districtCode := 0 diff --git a/globals/refutil/refutil.go b/globals/refutil/refutil.go index c28475bc2..7cf3e21c6 100644 --- a/globals/refutil/refutil.go +++ b/globals/refutil/refutil.go @@ -8,6 +8,7 @@ import ( "reflect" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/globals" ) func CheckAndGetStructValue(item interface{}) *reflect.Value { @@ -70,7 +71,9 @@ func FilterMapByStructObject(mapData map[string]interface{}, obj interface{}, ob } } if objPtr != nil { - utils.Map2StructByJson(m, objPtr, true) + if err := utils.Map2StructByJson(m, objPtr, true); err != nil { + globals.SugarLogger.Warnf("FilterMapByStructObject failed with err:%v, mapData:%s", err, utils.Format4Output(mapData, true)) + } } return valid, invalid }