修复参数解析BUG

This commit is contained in:
白茶清欢 2025-02-17 17:13:57 +08:00
parent 293f829945
commit 7ef8bf2676

View File

@ -36,19 +36,21 @@ func RequestHandler(uriCfg UriConfig) gin.HandlerFunc {
formParam = reflect.New(uriCfg.FormDataType)
}
formValue := formParam.Interface()
if err = request.Form.Parse(ctx, &formParam); nil != err {
if err = request.Form.Parse(ctx, formValue); nil != err {
// 格式化验证错误的信息
err = GetValidateErr(formValue, err)
e = exception.NewFromError(400, err)
response.SendWithException(ctx, e, nil)
ctx.Abort()
return
}
// 执行逻辑
inputValue := reflect.ValueOf(formValue)
if uriCfg.FormDataType.Kind() != reflect.Ptr {
formParam = formParam.Elem()
inputValue = inputValue.Elem()
}
resList := uriCfg.ApiLogicFunc.Func.Call([]reflect.Value{uriCfg.ApiStructValue, reflect.ValueOf(ctx), formParam})
resList := uriCfg.ApiLogicFunc.Func.Call([]reflect.Value{uriCfg.ApiStructValue, reflect.ValueOf(ctx), inputValue})
if resList[1].IsNil() {
// 请求成功
response.Success(ctx, resList[0].Interface())