package model
|
|
import (
|
"aps_crm/pkg/mysqlx"
|
"gorm.io/gorm"
|
)
|
|
type (
|
Authority struct {
|
Id uint `json:"id" gorm:"column:id;autoIncrement;not null;unique;primary_key;comment:角色ID;size:90"` // 角色ID
|
AuthorityName string `json:"authorityName" gorm:"comment:角色名"` // 角色名
|
Users []User `json:"-" gorm:"many2many:user_authority;"`
|
Menus []Menu `json:"menus" gorm:"many2many:authority_menus;"`
|
DefaultRouter string `json:"defaultRouter" gorm:"comment:默认菜单;default:dashboard"` // 默认菜单(默认dashboard)
|
gorm.Model `json:"-"`
|
}
|
|
SysAuthoritySearch struct {
|
Authority
|
Orm *gorm.DB
|
}
|
)
|
|
func (Authority) TableName() string {
|
return "authorities"
|
}
|
|
func NewSysAuthoritySearch() *SysAuthoritySearch {
|
return &SysAuthoritySearch{
|
Orm: mysqlx.GetDB(),
|
}
|
}
|
|
func (slf *SysAuthoritySearch) build() *gorm.DB {
|
var db = slf.Orm.Model(&Authority{})
|
if slf.Id != 0 {
|
db = db.Where("id = ?", slf.Id)
|
}
|
|
return db
|
}
|
|
func (slf *SysAuthoritySearch) Create(record *Authority) error {
|
var db = slf.build()
|
return db.Create(record).Error
|
}
|
|
func (slf *SysAuthoritySearch) Delete() error {
|
var db = slf.build()
|
return db.Delete(&Authority{}).Error
|
}
|
|
func (slf *SysAuthoritySearch) Update(record *Authority) error {
|
var db = slf.build()
|
return db.Updates(record).Error
|
}
|
|
func (slf *SysAuthoritySearch) Find() (result Authority, err error) {
|
var db = slf.build()
|
err = db.First(&result).Error
|
return
|
}
|
|
func (slf *SysAuthoritySearch) SetAuthorityId(id uint) *SysAuthoritySearch {
|
slf.Id = id
|
return slf
|
}
|
|
func (slf *SysAuthoritySearch) SetMenuAuthority(auth *Authority) error {
|
var db = slf.build()
|
return db.Model(auth).Association("Menus").Append(auth.Menus)
|
}
|