classify_menu.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package eta
  2. import (
  3. "fmt"
  4. "hongze/hz_crm_eta/global"
  5. "time"
  6. )
  7. type ClassifyMenu struct {
  8. MenuId int `gorm:"column:menu_id;primary_key;AUTO_INCREMENT;NOT NULL;comment:'子目录ID'"`
  9. MenuName string `gorm:"column:menu_name;default:;NOT NULL;comment:'子目录名称'"`
  10. ClassifyId int `gorm:"column:classify_id;default:0;NOT NULL;comment:'分类ID'"`
  11. Sort int `gorm:"column:sort;default:0;NOT NULL;comment:'排序'"`
  12. CreateTime time.Time `gorm:"column:create_time;default:NULL;comment:'创建时间'"`
  13. ModifyTime time.Time `gorm:"column:modify_time;default:NULL;comment:'更新时间'"`
  14. }
  15. func (c *ClassifyMenu) TableName() string {
  16. return "classify_menu"
  17. }
  18. // GetClassifyMenuList 获取子目录列表
  19. func (c *ClassifyMenu) GetClassifyMenuList(condition string, pars []interface{}) (items []*ClassifyMenu, err error) {
  20. // todo 当condition为空时
  21. err = global.MYSQL["rddp"].Model(c).Where(condition, pars...).Order("sort ASC, create_time ASC").Scan(&items).Error
  22. return
  23. }
  24. // InsertAndUpdateClassifyMenu 新增/编辑/删除分类子目录
  25. func InsertAndUpdateClassifyMenu(insertMenus []*ClassifyMenu, editMenus []*ClassifyMenu, deleteMenuIds []int) (err error) {
  26. tx := global.MYSQL["rddp"].Begin()
  27. defer func() {
  28. if err != nil {
  29. tx.Rollback()
  30. } else {
  31. tx.Commit()
  32. }
  33. }()
  34. // 编辑
  35. sql := ``
  36. if len(editMenus) > 0 {
  37. for i := range editMenus {
  38. sql = fmt.Sprintf(`UPDATE classify_menu SET menu_name = '%s', sort = %d, modify_time = NOW() WHERE menu_id = %d`,
  39. editMenus[i].MenuName, editMenus[i].Sort, editMenus[i].MenuId)
  40. if e := tx.Exec(sql).Error; e != nil {
  41. err = e
  42. return
  43. }
  44. }
  45. }
  46. // 删除
  47. if len(deleteMenuIds) > 0 {
  48. for i := range deleteMenuIds {
  49. sql = fmt.Sprintf(`DELETE FROM classify_menu WHERE menu_id = %d LIMIT 1`, deleteMenuIds[i])
  50. if e := tx.Exec(sql).Error; e != nil {
  51. err = e
  52. return
  53. }
  54. // 删除关联关系
  55. sql = fmt.Sprintf(`DELETE FROM classify_menu_relation WHERE menu_id = %d`, deleteMenuIds[i])
  56. if e := tx.Exec(sql).Error; e != nil {
  57. err = e
  58. return
  59. }
  60. }
  61. }
  62. // 新增
  63. if len(insertMenus) > 0 {
  64. e := tx.CreateInBatches(insertMenus, len(insertMenus)).Error
  65. if e != nil {
  66. err = e
  67. return
  68. }
  69. }
  70. return
  71. }