代码拉取完成,页面将自动刷新
package gcontext
import (
"errors"
"strconv"
"strings"
jsoniter "github.com/json-iterator/go"
)
// 二次封装gin的json返回方法
func (geCtx *GEContext) JSON(code int, obj interface{}) {
geCtx.Gin.JSON(code, obj)
}
// 二次封装gin的string返回方法
func (geCtx *GEContext) String(code int, format string, values ...interface{}) {
geCtx.Gin.String(code, format, values...)
}
// 二次封装gin的取参方法, 会依次从POST, GET, URI 取参
func (geCtx *GEContext) AnyParam(key string) (value string) {
if value = geCtx.Gin.PostForm(key); len(value) != 0 {
return
}
if value = geCtx.Gin.Query(key); len(value) != 0 {
return
}
if value = geCtx.Gin.Param(key); len(key) != 0 {
return
}
return
}
// 二次封装gin的取参方法, 支持传入默认值 取不到会返回默认值
func (geCtx *GEContext) DefaultAnyParam(key string, defaultValue string) (value string) {
if value = geCtx.AnyParam(key); len(value) != 0 {
return
}
return defaultValue
}
func (geCtx *GEContext) ParamInt(key string) (value int, err error) {
value, err = strconv.Atoi(geCtx.AnyParam(key))
return
}
func (geCtx *GEContext) ParamInt64(key string) (value int64, err error) {
value, err = strconv.ParseInt(geCtx.AnyParam(key), 10, 64)
return
}
func (geCtx *GEContext) ParamBool(key string) (value bool, err error) {
value, err = strconv.ParseBool(geCtx.AnyParam(key))
return
}
func (geCtx *GEContext) ParamArrayInt(key string) (vals []int, err error) {
value := geCtx.Gin.PostFormArray(key)
if len(value) == 0 {
value = geCtx.Gin.QueryArray(key)
}
if len(value) > 0 {
for _, v := range value {
tmp, err := strconv.Atoi(v)
if err == nil {
vals = append(vals, tmp)
}
}
}
return
}
func (geCtx *GEContext) ParamArrayInt64(key string) (vals []int64, err error) {
value := geCtx.Gin.PostFormArray(key)
if len(value) == 0 {
value = geCtx.Gin.QueryArray(key)
}
if len(value) > 0 {
for _, v := range value {
tmp, err := strconv.ParseInt(v, 10, 64)
if err == nil {
vals = append(vals, tmp)
}
}
}
return
}
func (geCtx *GEContext) ParamIntDefault(key string, def int) (value int, err error) {
value, err = strconv.Atoi(geCtx.AnyParam(key))
if err != nil {
value = def
}
return
}
func (geCtx *GEContext) ParamInt64Default(key string, def int64) (value int64, err error) {
value, err = strconv.ParseInt(geCtx.AnyParam(key), 10, 64)
if err != nil {
value = def
}
return
}
func (geCtx *GEContext) ParamBoolDefault(key string, def bool) (value bool, err error) {
value, err = strconv.ParseBool(geCtx.AnyParam(key))
if err != nil {
value = def
}
return
}
func (geCtx *GEContext) GetLoginID() (userID int64, err error) {
userID, ok := geCtx.Value("loginUserId").(int64)
if !ok {
err = errors.New("token error")
return
}
return
}
func (geCtx *GEContext) GetLoginExtends() (extends string, err error) {
extends, ok := geCtx.Value("loginExtends").(string)
if !ok {
err = errors.New("token error")
return
}
return
}
func (geCtx *GEContext) GetTokenExtends(result interface{}) (err error) {
exts, err := geCtx.GetLoginExtends()
if err != nil {
return
}
return jsoniter.UnmarshalFromString(exts, result)
}
func (geCtx *GEContext) ParamStringArray(key, sep string) []string {
val := geCtx.AnyParam(key)
return strings.Split(val, sep)
}
func (geCtx *GEContext) ParamJson(key string, result interface{}) (err error) {
val := geCtx.AnyParam(key)
return jsoniter.UnmarshalFromString(val, &result)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。