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 }