eta_business_menu.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package eta_business
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/client/orm"
  5. "strings"
  6. "time"
  7. )
  8. // EtaBusinessMenu ETA商家基础菜单表
  9. type EtaBusinessMenu struct {
  10. MenuId int `orm:"column(menu_id);pk"`
  11. ParentId int `description:"父级菜单ID"`
  12. Name string `description:"菜单名称或者按钮名称"`
  13. RootId int `description:"顶层菜单ID"`
  14. Sort string `description:"排序"`
  15. Path string `description:"路由地址"`
  16. PathName string `description:"路由名称"`
  17. IconPath string `description:"菜单图标地址"`
  18. Component int `description:"组件路径"`
  19. Hidden int `description:"是否隐藏:1-隐藏 0-显示"`
  20. HiddenLayout int `description:"是否隐藏layout:1-隐藏 0-显示"`
  21. Level int `description:"菜单等级:1-2-3"`
  22. IsLevel int `description:"是否为多级菜单:1,只有一级;2,有多级"`
  23. LevelPath string `description:"兼容以前menu表的字段"`
  24. MenuType int `description:"菜单类型: 0-菜单; 1-按钮; 2-字段(需要特殊处理)"`
  25. ButtonCode string `description:"按钮/菜单唯一标识"`
  26. CreateTime time.Time `description:"创建时间"`
  27. ModifyTime time.Time `description:"更新时间"`
  28. }
  29. func (m *EtaBusinessMenu) TableName() string {
  30. return "eta_business_menu"
  31. }
  32. func (m *EtaBusinessMenu) PrimaryId() string {
  33. return "menu_id"
  34. }
  35. func (m *EtaBusinessMenu) Create() (err error) {
  36. o := orm.NewOrm()
  37. id, err := o.Insert(m)
  38. if err != nil {
  39. return
  40. }
  41. m.MenuId = int(id)
  42. return
  43. }
  44. func (m *EtaBusinessMenu) CreateMulti(items []*EtaBusinessMenu) (err error) {
  45. if len(items) == 0 {
  46. return
  47. }
  48. o := orm.NewOrm()
  49. _, err = o.InsertMulti(len(items), items)
  50. return
  51. }
  52. func (m *EtaBusinessMenu) Update(cols []string) (err error) {
  53. o := orm.NewOrm()
  54. _, err = o.Update(m, cols...)
  55. return
  56. }
  57. func (m *EtaBusinessMenu) Del() (err error) {
  58. o := orm.NewOrm()
  59. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
  60. _, err = o.Raw(sql, m.MenuId).Exec()
  61. return
  62. }
  63. func (m *EtaBusinessMenu) GetItemById(id int) (item *EtaBusinessMenu, err error) {
  64. o := orm.NewOrm()
  65. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
  66. err = o.Raw(sql, id).QueryRow(&item)
  67. return
  68. }
  69. func (m *EtaBusinessMenu) GetItemByCondition(condition string, pars []interface{}) (item *EtaBusinessMenu, err error) {
  70. o := orm.NewOrm()
  71. sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
  72. err = o.Raw(sql, pars).QueryRow(&item)
  73. return
  74. }
  75. func (m *EtaBusinessMenu) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  76. o := orm.NewOrm()
  77. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  78. err = o.Raw(sql, pars).QueryRow(&count)
  79. return
  80. }
  81. func (m *EtaBusinessMenu) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EtaBusinessMenu, err error) {
  82. o := orm.NewOrm()
  83. fields := strings.Join(fieldArr, ",")
  84. if len(fieldArr) == 0 {
  85. fields = `*`
  86. }
  87. order := `ORDER BY create_time DESC`
  88. if orderRule != "" {
  89. order = ` ORDER BY ` + orderRule
  90. }
  91. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  92. _, err = o.Raw(sql, pars).QueryRows(&items)
  93. return
  94. }
  95. func (m *EtaBusinessMenu) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*EtaBusinessMenu, err error) {
  96. o := orm.NewOrm()
  97. fields := strings.Join(fieldArr, ",")
  98. if len(fieldArr) == 0 {
  99. fields = `*`
  100. }
  101. order := `ORDER BY create_time DESC`
  102. if orderRule != "" {
  103. order = ` ORDER BY ` + orderRule
  104. }
  105. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
  106. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  107. return
  108. }
  109. // EtaBusinessMenuListResp ETA商家菜单列表响应体
  110. type EtaBusinessMenuListResp struct {
  111. ChoiceList []int `description:"已选菜单"`
  112. HalfChoiceList []int `description:"半选菜单-方便前端回显用的"`
  113. List []*EtaBusinessMenuItem `description:"菜单列表"`
  114. }
  115. // EtaBusinessMenuItem ETA商家菜单
  116. type EtaBusinessMenuItem struct {
  117. MenuId int
  118. ParentId int `description:"父级菜单ID"`
  119. Name string `description:"菜单名称或者按钮名称"`
  120. RootId int `description:"顶层菜单ID"`
  121. Sort string `description:"排序"`
  122. Path string `description:"路由地址"`
  123. PathName string `description:"路由名称"`
  124. IconPath string `description:"菜单图标地址"`
  125. Component int `description:"组件路径"`
  126. Hidden int `description:"是否隐藏:1-隐藏 0-显示"`
  127. HiddenLayout int `description:"是否隐藏layout:1-隐藏 0-显示"`
  128. Level int `description:"菜单等级:1-2-3"`
  129. MenuType int `description:"菜单类型: 0-菜单; 1-按钮; 2-字段(需要特殊处理)"`
  130. ButtonCode string `description:"按钮/菜单唯一标识"`
  131. Children []*EtaBusinessMenuItem `description:"子菜单"`
  132. }