sys_authority_btn.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package dao
  2. import (
  3. "gorm.io/gorm"
  4. "server/global"
  5. )
  6. type SysAuthorityBtn struct {
  7. AuthorityId uint `gorm:"comment:角色ID"`
  8. SysMenuID uint `gorm:"comment:菜单ID"`
  9. SysBaseMenuBtnID uint `gorm:"comment:菜单按钮ID"`
  10. SysBaseMenuBtn SysBaseMenuBtn ` gorm:"comment:按钮详情"`
  11. }
  12. // TODO:按钮查询
  13. // QueryAuthorityBtnAndSysBaseMenuBtnById 查询角色按钮和菜单按钮 按id
  14. func QueryAuthorityBtnAndSysBaseMenuBtnById(authorityId uint) (btns []SysAuthorityBtn, err error) {
  15. err = global.GVA_DB.Where("authority_id = ?", authorityId).Preload("SysBaseMenuBtn").Find(&btns).Error
  16. return btns, err
  17. }
  18. // QueryAuthorityBtnByAuthorityIdMenuId 查询角色按钮 按角色id和菜单id
  19. func QueryAuthorityBtnByAuthorityIdMenuId(authorityId, sysMenuId uint) (authorityBtn []SysAuthorityBtn, err error) {
  20. err = global.GVA_DB.Find(&authorityBtn, "authority_id = ? and sys_menu_id = ?", authorityId, sysMenuId).Error
  21. return
  22. }
  23. // QueryAuthorityBtn 查询角色按钮 按菜单按钮id global.GVA_DB.First(&dao.SysAuthorityBtn{}, "sys_base_menu_btn_id = ?", ID).Error
  24. func QueryAuthorityBtn(Id string) (sysAuthorityBtn SysAuthorityBtn, err error) {
  25. err = global.GVA_DB.Model(&SysAuthorityBtn{}).First(sysAuthorityBtn, "sys_base_menu_btn_id =?", Id).Error
  26. return
  27. }
  28. // TODO:按钮新增
  29. // TODO:按钮修改
  30. func SetAuthorityBtn(menuId, authorityId uint, selected []uint) (err error) {
  31. return global.GVA_DB.Transaction(func(tx *gorm.DB) error {
  32. var authorityBtn []SysAuthorityBtn
  33. err = tx.Delete(&[]SysAuthorityBtn{}, "authority_id = ? and sys_menu_id = ?", authorityId, menuId).Error
  34. if err != nil {
  35. return err
  36. }
  37. for _, v := range selected {
  38. authorityBtn = append(authorityBtn, SysAuthorityBtn{
  39. AuthorityId: authorityId,
  40. SysMenuID: menuId,
  41. SysBaseMenuBtnID: v,
  42. })
  43. }
  44. if len(authorityBtn) > 0 {
  45. err = tx.Create(&authorityBtn).Error
  46. }
  47. if err != nil {
  48. return err
  49. }
  50. return err
  51. })
  52. }
  53. // TODO:按钮删除