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) }