out_link.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package models
  2. import (
  3. sql2 "database/sql"
  4. "eta/eta_api/global"
  5. "fmt"
  6. "github.com/rdlucklib/rdluck_tools/paging"
  7. "strings"
  8. "time"
  9. )
  10. type OutLink struct {
  11. Id int `gorm:"column:id;primaryKey;autoIncrement" description:"自增序号"`
  12. Title string `description:"菜单名称"`
  13. Url string `description:"链接地址"`
  14. SysAdminId int `description:"创建人ID"`
  15. SysAdminName string `description:"创建人姓名"`
  16. CreateTime time.Time `description:"创建时间"`
  17. ModifyTime time.Time `description:"修改时间"`
  18. }
  19. type OutLinkItem struct {
  20. Id int `description:"自增序号"`
  21. Title string `description:"菜单名称"`
  22. Url string `description:"链接地址"`
  23. CreateTime string `description:"创建时间"`
  24. ModifyTime string `description:"修改时间"`
  25. }
  26. type OutLinkListResp struct {
  27. List []*OutLinkItem
  28. UserCode string
  29. Paging *paging.PagingItem `description:"分页数据"`
  30. }
  31. type OutLinkSaveReq struct {
  32. Id int `description:"序号"`
  33. Title string `description:"菜单名称"`
  34. Url string `description:"链接地址"`
  35. }
  36. type OutLinkReq struct {
  37. Id int `description:"序号"`
  38. }
  39. func (ol *OutLink) TableName() string {
  40. return "out_link"
  41. }
  42. func (ol *OutLink) Create() (err error) {
  43. o := global.DEFAULT_DB
  44. err = o.Create(ol).Error
  45. return
  46. }
  47. func (ol *OutLink) GetItemById(id int) (err error) {
  48. o := global.DEFAULT_DB
  49. sql := `SELECT * FROM out_link WHERE id = ? LIMIT 1`
  50. err = o.Raw(sql, id).First(&ol).Error
  51. return
  52. }
  53. func (ol *OutLink) GetItemsByCondition(condition string, pars []interface{}, orderRule string) (items []*OutLink, err error) {
  54. o := global.DEFAULT_DB
  55. sql := `SELECT * FROM out_link WHERE 1=1 `
  56. sql += condition
  57. order := ` ORDER BY create_time ASC`
  58. if orderRule != "" {
  59. order = ` ORDER BY ` + orderRule
  60. }
  61. sql += order
  62. err = o.Raw(sql, pars...).Find(&items).Error
  63. return
  64. }
  65. func (ol *OutLink) Update(cols []string) (err error) {
  66. o := global.DEFAULT_DB
  67. err = o.Select(cols).Updates(ol).Error
  68. return
  69. }
  70. func (ol *OutLink) Del() (err error) {
  71. o := global.DEFAULT_DB
  72. sql := `DELETE FROM out_link WHERE id = ? LIMIT 1`
  73. err = o.Exec(sql, ol.Id).Error
  74. return
  75. }
  76. func (ol *OutLink) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  77. o := global.DEFAULT_DB
  78. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, ol.TableName(), condition)
  79. var countNull sql2.NullInt64
  80. err = o.Raw(sql, pars...).Scan(&countNull).Error
  81. if err != nil {
  82. return
  83. }
  84. if countNull.Valid {
  85. count = int(countNull.Int64)
  86. }
  87. return
  88. }
  89. func (ol *OutLink) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*OutLink, err error) {
  90. o := global.DEFAULT_DB
  91. fields := strings.Join(fieldArr, ",")
  92. if len(fieldArr) == 0 {
  93. fields = `*`
  94. }
  95. order := `ORDER BY create_time ASC`
  96. if orderRule != "" {
  97. order = ` ORDER BY ` + orderRule
  98. }
  99. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, ol.TableName(), condition, order)
  100. totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
  101. var totalNull sql2.NullInt64
  102. err = o.Raw(totalSql, pars...).Scan(&totalNull).Error
  103. if err != nil {
  104. return
  105. }
  106. if totalNull.Valid {
  107. total = int(totalNull.Int64)
  108. }
  109. sql += ` LIMIT ?,?`
  110. pars = append(pars, startSize, pageSize)
  111. err = o.Raw(sql, pars...).Find(&items).Error
  112. return
  113. }