/* @Time : 2019-06-26 9:31 @Author : zr @Software: GoLand */ package controller import ( "fmt" "gframe/errors" "gframe/model" "gframe/utils" "gitee.com/zr233/bsf" "strconv" "time" ) type Controller interface { } type BaseController struct { *bsf.ControllerBase } type ResponseBase struct { Code errors.ErrorCode Memo string } func newResponseBase() ResponseBase { return ResponseBase{ Code: errors.CodeSUCCESS, Memo: "执行成功", } } func (b BaseController) getSession() *model.Session { if s, ok := b.Ctx().Get("session"); ok { s, ok := s.(*model.Session) if ok { return s } } return nil } func (b *BaseController) postInt(key string) (value *int) { valueStr := b.Ctx().PostForm(key) if valueStr != "" { valueInt, err := strconv.Atoi(valueStr) if err != nil { panic(errors.NewParamErr(err)) } value = &valueInt } return } func (b *BaseController) postIntNecessary(key string) (value int) { valueStr := b.Ctx().PostForm(key) var err error if valueStr != "" { value, err = strconv.Atoi(valueStr) if err != nil { panic(errors.FromParamErr(key, err)) } } else { panic(errors.FromParamErr(key, fmt.Errorf("参数不能为空。"))) } return } func (b *BaseController) postString(key string, necessary bool) string { str := b.Ctx().PostForm(key) if necessary && str == "" { err := errors.FromParamErr(key, fmt.Errorf("参数不能为空。")) panic(err) } return str } // 日期校验 func (b *BaseController) getPostFromDate(key string) (value time.Time) { valueStr := b.Ctx().PostForm(key) value, e := time.Parse(utils.TimeFormatterDate(), valueStr) if e != nil { err := errors.FromParamErr(key, e) panic(err) } return value } func (b *BaseController) postFloatToInt(key string, necessary bool) int { str := b.Ctx().PostForm(key) if necessary && str == "" { err := errors.FromParamErr(key, fmt.Errorf("参数不能为空。")) panic(err) } wt, err := strconv.ParseFloat(str, 32) if err != nil { err := errors.FromParamErr(key, err) panic(err) } i := int(wt * 10) // 乘以10转int型,保留1位小数 return i }