package models
|
|
type SysMenu struct {
|
Id string `gorm:"column:id;primary_key;" json:"id"`
|
ParentId string `gorm:"column:parent_id" json:"parent_id"`
|
ParentIds string `gorm:"column:parent_ids" json:"parent_ids"`
|
Type int `gorm:"column:type" json:"type"`
|
Name string `gorm:"column:name" json:"name"`
|
Module string `gorm:"column:module" json:"module"`
|
Permission string `gorm:"column:permission" json:"permission"`
|
Sort int `gorm:"column:sort" json:"sort"`
|
Icon string `gorm:"column:icon" json:"icon"`
|
Url string `gorm:"column:url" json:"url"`
|
Enable bool `gorm:"column:enable" json:"enable"`
|
DelFlag bool `gorm:"column:del_flag" json:"del_flag"`
|
}
|
|
func (SysMenu) TableName() string {
|
return "sys_menu"
|
}
|
|
func (sm *SysMenu) Insert() bool {
|
result := db.Table("sys_menu").Create(&sm)
|
if result.Error !=nil {
|
return false
|
}
|
return result.RowsAffected>0
|
}
|
|
func (sm *SysMenu) Update() bool {
|
result := db.Table("sys_menu").Update(&sm)
|
if result.Error !=nil {
|
return false
|
}
|
return result.RowsAffected>0
|
}
|
|
func (sm *SysMenu) SelectById(id string) (int64, error){
|
result := db.Table("sys_menu").Where("id=?",id).First(&sm)
|
if result.Error != nil || result.RowsAffected == 0 {
|
return 0, err
|
}
|
return result.RowsAffected, nil
|
}
|
|
func (sm *SysMenu) FindAll() (list []SysMenu){
|
if err:=db.Table("sys_menu").Scan(&list).Error;err !=nil{
|
return nil
|
}
|
return list
|
}
|
|
func (sm *SysMenu) FindByRoleId(roleId string) (list []SysMenu) {
|
if err:=db.Raw("select * from sys_menu sm join sys_role_menu srm on sm.id=srm.menu_id where srm.role_id=? order by sm.sort asc",roleId).Find(&list).Error;err !=nil{
|
return nil
|
}
|
return list
|
}
|
|
func (sm *SysMenu) FindByUserId(userId string) (list []SysMenu) {
|
if err:=db.Raw("select * from sys_menu sm join sys_user_menu srm on sm.id=srm.menu_id where srm.user_id=? order by sm.sort asc",userId).Find(&list).Error;err !=nil{
|
return nil
|
}
|
return list
|
}
|
|
func (sm *SysMenu) GetMaxSort() int {
|
var sort int
|
err := db.Raw("select max(sort) as sort from sys_menu where type=0").Count(&sort).Error
|
if err ==nil {
|
return sort
|
}
|
return 1
|
}
|