sys_base_menu.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package system
  2. import (
  3. "errors"
  4. "server/dao"
  5. "gorm.io/gorm"
  6. "server/global"
  7. )
  8. type BaseMenuService struct{}
  9. //@author: [piexlmax](https://github.com/piexlmax)
  10. //@function: DeleteBaseMenu
  11. //@description: 删除基础路由
  12. //@param: id float64
  13. //@return: err error
  14. var BaseMenuServiceApp = new(BaseMenuService)
  15. func (baseMenuService *BaseMenuService) DeleteBaseMenu(id int) (err error) {
  16. err = global.GVA_DB.First(&dao.SysBaseMenu{}, "parent_id = ?", id).Error
  17. if err != nil {
  18. return global.GVA_DB.Transaction(func(tx *gorm.DB) error {
  19. err = tx.Delete(&dao.SysBaseMenu{}, "id = ?", id).Error
  20. if err != nil {
  21. return err
  22. }
  23. err = tx.Delete(&dao.SysBaseMenuParameter{}, "sys_base_menu_id = ?", id).Error
  24. if err != nil {
  25. return err
  26. }
  27. err = tx.Delete(&dao.SysBaseMenuBtn{}, "sys_base_menu_id = ?", id).Error
  28. if err != nil {
  29. return err
  30. }
  31. err = tx.Delete(&dao.SysAuthorityBtn{}, "sys_menu_id = ?", id).Error
  32. if err != nil {
  33. return err
  34. }
  35. err = tx.Delete(&dao.SysAuthorityMenu{}, "sys_base_menu_id = ?", id).Error
  36. if err != nil {
  37. return err
  38. }
  39. return nil
  40. })
  41. }
  42. return errors.New("此菜单存在子菜单不可删除")
  43. }
  44. //@author: [piexlmax](https://github.com/piexlmax)
  45. //@function: UpdateBaseMenu
  46. //@description: 更新路由
  47. //@param: menu model.SysBaseMenu
  48. //@return: err error
  49. func (baseMenuService *BaseMenuService) UpdateBaseMenu(menu dao.SysBaseMenu) (err error) {
  50. return menu.UpdateBaseMenu()
  51. }
  52. //@author: [piexlmax](https://github.com/piexlmax)
  53. //@function: GetBaseMenuById
  54. //@description: 返回当前选中menu
  55. //@param: id float64
  56. //@return: menu system.SysBaseMenu, err error
  57. func (baseMenuService *BaseMenuService) GetBaseMenuById(id int) (menu dao.SysBaseMenu, err error) {
  58. return dao.QueryBaseMenuAndMenuBtnAndParameterById(id)
  59. }