sys_authority.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package dao
  2. import (
  3. "server/global"
  4. "time"
  5. )
  6. type SysAuthority struct {
  7. CreatedAt time.Time // 创建时间
  8. UpdatedAt time.Time // 更新时间
  9. DeletedAt *time.Time `sql:"index"`
  10. AuthorityId uint `json:"authorityId" gorm:"not null;unique;primary_key;comment:角色ID;size:90"` // 角色ID
  11. AuthorityName string `json:"authorityName" gorm:"comment:角色名"` // 角色名
  12. ParentId *uint `json:"parentId" gorm:"comment:父角色ID"` // 父角色ID
  13. DataAuthorityId []*SysAuthority `json:"dataAuthorityId" gorm:"many2many:sys_data_authority_id;"`
  14. Children []SysAuthority `json:"children" gorm:"-"`
  15. SysBaseMenus []SysBaseMenu `json:"menus" gorm:"many2many:sys_authority_menus;"`
  16. Users []SysUser `json:"-" gorm:"many2many:sys_user_authority;"`
  17. DefaultRouter string `json:"defaultRouter" gorm:"comment:默认菜单;default:dashboard"` // 默认菜单(默认dashboard)
  18. }
  19. func (SysAuthority) TableName() string {
  20. return "sys_authorities"
  21. }
  22. // TODO:角色查询
  23. // QueryAuthorityById 查询角色 按id
  24. func QueryAuthorityById(authorityId uint) (sysAuthority SysAuthority, err error) {
  25. err = global.GVA_DB.Where("authority_id = ?", authorityId).First(&sysAuthority).Error
  26. return
  27. }
  28. // GetAuthorityInfoList 分页获取角色列表
  29. func GetAuthorityInfoList(limit, offset int) (sysAuthority []SysAuthority, total int64, err error) {
  30. db := global.GVA_DB.Model(&SysAuthority{})
  31. if err = db.Where("parent_id = ?", "0").Count(&total).Error; total == 0 || err != nil {
  32. return
  33. }
  34. var authority []SysAuthority
  35. err = db.Limit(limit).Offset(offset).Preload("DataAuthorityId").Where("parent_id = ?", "0").Find(&authority).Error
  36. return authority, total, err
  37. }
  38. // GetAuthorityInfo 获取所有角色信息
  39. func (sa SysAuthority) GetAuthorityInfo() (sysAuthority SysAuthority, err error) {
  40. err = global.GVA_DB.Preload("DataAuthorityId").Where("authority_id = ?", sa.AuthorityId).First(&sysAuthority).Error
  41. return sysAuthority, err
  42. }
  43. // TODO:角色新增
  44. // TODO:角色修改
  45. // UpdateAuthority 修改角色
  46. func (sa SysAuthority) UpdateAuthority() error {
  47. return global.GVA_DB.Model(&SysAuthority{}).Updates(&sa).Error
  48. }
  49. // TODO:角色删除