package models type SysRole struct { Id string `gorm:"primary_key;column:id" json:"id"` Name string `gorm:"column:name" json:"name"` } func (SysRole) TableName() string { return "sys_role" } func (sr *SysRole) Insert() bool { result := db.Table("sys_role").Create(&sr) if result.Error !=nil { return false } return result.RowsAffected>0 } func (sr *SysRole) Update() bool { result := db.Table("sys_role").Update(&sr) if result.Error !=nil { return false } return result.RowsAffected>0 } func (sr *SysRole) SelectById(id string) bool{ result := db.Table("sys_role").Where("id=?", id).First(&sr) if result.Error !=nil { return false } return result.RecordNotFound() } func (sr *SysRole) FindByUserId(userId string) (roles []SysRole){ if err:=db.Raw("select distinct sr.* from sys_role sr join sys_user_role sur on sr.id=sur.role_id where sur.user_id=?",userId).Scan(&roles).Error;err !=nil{ return nil } return roles } func (sr *SysRole) FindAll() (roles []SysRole,err error) { result := db.Table("sys_role").Find(&roles) return roles,result.Error } func (su *SysRole) FindByName(name string) (rows int64,err error){ result := db.Table("sys_role").Where("name=?",name).First(&su) if result.Error !=nil && result.Error.Error() != RecordNotFound { return 0,result.Error } return result.RowsAffected,nil }