base.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /*
  2. @Time : 2019-06-26 9:31
  3. @Author : zr
  4. @Software: GoLand
  5. */
  6. package controller
  7. import (
  8. "fmt"
  9. "gframe/errors"
  10. "gframe/model"
  11. "gframe/utils"
  12. "gitee.com/zr233/bsf"
  13. "strconv"
  14. "time"
  15. )
  16. type Controller interface {
  17. }
  18. type BaseController struct {
  19. *bsf.ControllerBase
  20. }
  21. type ResponseBase struct {
  22. Code errors.ErrorCode
  23. Memo string
  24. }
  25. func newResponseBase() ResponseBase {
  26. return ResponseBase{
  27. Code: errors.CodeSUCCESS,
  28. Memo: "执行成功",
  29. }
  30. }
  31. func (b BaseController) getSession() *model.Session {
  32. if s, ok := b.Ctx().Get("session"); ok {
  33. s, ok := s.(*model.Session)
  34. if ok {
  35. return s
  36. }
  37. }
  38. return nil
  39. }
  40. func (b *BaseController) postInt(key string) (value *int) {
  41. valueStr := b.Ctx().PostForm(key)
  42. if valueStr != "" {
  43. valueInt, err := strconv.Atoi(valueStr)
  44. if err != nil {
  45. panic(errors.NewParamErr(err))
  46. }
  47. value = &valueInt
  48. }
  49. return
  50. }
  51. func (b *BaseController) postIntNecessary(key string) (value int) {
  52. valueStr := b.Ctx().PostForm(key)
  53. var err error
  54. if valueStr != "" {
  55. value, err = strconv.Atoi(valueStr)
  56. if err != nil {
  57. panic(errors.FromParamErr(key, err))
  58. }
  59. } else {
  60. panic(errors.FromParamErr(key, fmt.Errorf("参数不能为空。")))
  61. }
  62. return
  63. }
  64. func (b *BaseController) postString(key string, necessary bool) string {
  65. str := b.Ctx().PostForm(key)
  66. if necessary && str == "" {
  67. err := errors.FromParamErr(key, fmt.Errorf("参数不能为空。"))
  68. panic(err)
  69. }
  70. return str
  71. }
  72. // 日期校验
  73. func (b *BaseController) getPostFromDate(key string) (value time.Time) {
  74. valueStr := b.Ctx().PostForm(key)
  75. value, e := time.Parse(utils.TimeFormatterDate(), valueStr)
  76. if e != nil {
  77. err := errors.FromParamErr(key, e)
  78. panic(err)
  79. }
  80. return value
  81. }
  82. func (b *BaseController) postFloatToInt(key string, necessary bool) int {
  83. str := b.Ctx().PostForm(key)
  84. if necessary && str == "" {
  85. err := errors.FromParamErr(key, fmt.Errorf("参数不能为空。"))
  86. panic(err)
  87. }
  88. wt, err := strconv.ParseFloat(str, 32)
  89. if err != nil {
  90. err := errors.FromParamErr(key, err)
  91. panic(err)
  92. }
  93. i := int(wt * 10) // 乘以10转int型,保留1位小数
  94. return i
  95. }