classify_menu.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package models
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/client/orm"
  5. "time"
  6. )
  7. // ClassifyMenu 报告分类-子目录表
  8. type ClassifyMenu struct {
  9. MenuId int `orm:"column(menu_id);pk"`
  10. MenuName string `description:"子目录名称"`
  11. ClassifyId int `description:"一级分类ID"`
  12. Sort int `description:"排序"`
  13. CreateTime time.Time `description:"创建时间"`
  14. ModifyTime time.Time `description:"更新时间"`
  15. }
  16. // GetClassifyMenuById 主键获取子目录
  17. func GetClassifyMenuById(id int) (item *ClassifyMenu, err error) {
  18. o := orm.NewOrmUsingDB("rddp")
  19. sql := `SELECT * FROM classify_menu WHERE menu_id = ? LIMIT 1`
  20. err = o.Raw(sql, id).QueryRow(&item)
  21. return
  22. }
  23. // GetClassifyMenuList 获取子目录列表
  24. func GetClassifyMenuList(condition string, pars []interface{}) (list []*ClassifyMenu, err error) {
  25. o := orm.NewOrmUsingDB("rddp")
  26. sql := `SELECT * FROM classify_menu WHERE 1 = 1 `
  27. sql += condition
  28. sql += ` ORDER BY sort ASC, create_time ASC`
  29. _, err = o.Raw(sql, pars).QueryRows(&list)
  30. return
  31. }
  32. // InsertAndUpdateClassifyMenu 新增/编辑/删除分类子目录
  33. func InsertAndUpdateClassifyMenu(insertMenus []*ClassifyMenu, editMenus []*ClassifyMenu, deleteMenuIds []int) (err error) {
  34. o := orm.NewOrmUsingDB("rddp")
  35. tx, err := o.Begin()
  36. if err != nil {
  37. return
  38. }
  39. defer func() {
  40. if err != nil {
  41. _ = tx.Rollback()
  42. } else {
  43. _ = tx.Commit()
  44. }
  45. }()
  46. // 编辑
  47. sql := ``
  48. if len(editMenus) > 0 {
  49. for i := range editMenus {
  50. sql = fmt.Sprintf(`UPDATE classify_menu SET menu_name = '%s', sort = %d, modify_time = NOW() WHERE menu_id = %d`,
  51. editMenus[i].MenuName, editMenus[i].Sort, editMenus[i].MenuId)
  52. if _, e := tx.Raw(sql).Exec(); e != nil {
  53. err = e
  54. return
  55. }
  56. }
  57. }
  58. // 删除
  59. if len(deleteMenuIds) > 0 {
  60. for i := range deleteMenuIds {
  61. sql = fmt.Sprintf(`DELETE FROM classify_menu WHERE menu_id = %d LIMIT 1`, deleteMenuIds[i])
  62. if _, e := tx.Raw(sql).Exec(); e != nil {
  63. err = e
  64. return
  65. }
  66. // 删除关联关系
  67. sql = fmt.Sprintf(`DELETE FROM classify_menu_relation WHERE menu_id = %d`, deleteMenuIds[i])
  68. if _, e := tx.Raw(sql).Exec(); e != nil {
  69. err = e
  70. return
  71. }
  72. }
  73. }
  74. // 新增
  75. if len(insertMenus) > 0 {
  76. _, e := tx.InsertMulti(len(insertMenus), insertMenus)
  77. if e != nil {
  78. err = e
  79. return
  80. }
  81. }
  82. return
  83. }