baseForm.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package base
  2. import "github.com/gogf/gf/util/gconv"
  3. type BaseForm struct {
  4. Page int `form:"page",json:"page"` // 当前页码
  5. Rows int `form:"rows",json:"rows"` // 每页多少条
  6. TotalPage int `form:"totalPage",json:"totalPage"` // 总页数
  7. TotalSize int `form:"totalSize",json:"totalSize"` // 总共数据条数
  8. OrderBy string `form:"orderBy",json:"orderBy"` // 排序
  9. Params map[string]string
  10. Object interface{}
  11. }
  12. func NewForm(params map[string]interface{}) BaseForm {
  13. form := BaseForm{}
  14. form.Params = make(map[string]string, 10)
  15. // 转换为map[string]string
  16. for key, value := range params {
  17. form.Params[key] = gconv.String(value)
  18. }
  19. // 第几页
  20. if value, ok := params["page"]; ok {
  21. form.Page = gconv.Int(value)
  22. }
  23. // 页数
  24. if value, ok := params["rows"]; ok {
  25. form.Rows = gconv.Int(value)
  26. }
  27. // 排序
  28. if value, ok := params["orderBy"]; ok && value != "" {
  29. form.OrderBy = gconv.String(value)
  30. } else if value2, ok := params["sidx"]; ok && value2 != "" {
  31. form.OrderBy = gconv.String(value2)
  32. if value3, ok := params["sord"]; ok && value3 != "" {
  33. form.OrderBy += " " + gconv.String(value3)
  34. }
  35. }
  36. return form
  37. }
  38. func (form *BaseForm) SetParam(key string, value string) *BaseForm {
  39. form.Params[key] = value
  40. return form
  41. }
  42. func (form *BaseForm) SetParams(params map[string]string) *BaseForm {
  43. form.Page = gconv.Int(params["page"])
  44. form.Rows = gconv.Int(params["rows"])
  45. form.OrderBy = gconv.String(params["orderBy"])
  46. form.Params = params
  47. return form
  48. }
  49. func (form *BaseForm) SetObject(object interface{}) *BaseForm {
  50. form.Object = object
  51. return form
  52. }