You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.6 KiB
73 lines
1.6 KiB
package models
|
|
|
|
import (
|
|
"github.com/beego/beego/v2/client/orm"
|
|
"viviman.top/dto"
|
|
"viviman.top/untils"
|
|
)
|
|
|
|
type SysRole struct {
|
|
Id int64 `json:"id"`
|
|
Name string `json:"name" valid:"Required;"`
|
|
Remark string `json:"remark"`
|
|
DataScope string `json:"dataScope"`
|
|
Level int32 `json:"level"`
|
|
Permission string `json:"permission"`
|
|
Users []*SysUser `orm:"reverse(many)"`
|
|
Menus []*SysMenu `json:"menus" orm:"rel(m2m);rel_through(viviman.top/models.SysRolesMenus)"`
|
|
Depts []*SysDept `orm:"rel(m2m);rel_through(viviman.top/models.SysRolesDepts)"`
|
|
BaseModel
|
|
}
|
|
|
|
func init() {
|
|
orm.RegisterModel(new(SysRole))
|
|
}
|
|
|
|
func GetOneRole(id int64) SysRole {
|
|
o := orm.NewOrm()
|
|
role := SysRole{Id: id}
|
|
o.Read(&role)
|
|
_, _ = o.LoadRelated(&role, "Menus")
|
|
return role
|
|
}
|
|
|
|
// get all
|
|
func GetAllRole(base dto.BasePage, query ...interface{}) (int, []SysRole) {
|
|
var (
|
|
tableName = "sys_role"
|
|
lists []SysRole
|
|
condition = ""
|
|
)
|
|
if base.Blurry != "" {
|
|
condition = " and name= '" + base.Blurry + "'"
|
|
}
|
|
|
|
total, _, rs := GetPagesInfo(tableName, base.Page, base.Size, condition)
|
|
rs.QueryRows(&lists)
|
|
|
|
o := orm.NewOrm()
|
|
for k, _ := range lists {
|
|
_, _ = o.LoadRelated(&lists[k], "Menus")
|
|
}
|
|
|
|
return total, lists
|
|
}
|
|
|
|
func AddRole(m *SysRole) (id int64, err error) {
|
|
o := orm.NewOrm()
|
|
id, err = o.Insert(m)
|
|
return
|
|
}
|
|
|
|
func UpdateByRole(m *SysRole) (err error) {
|
|
o := orm.NewOrm()
|
|
_, err = o.Update(m)
|
|
return
|
|
}
|
|
|
|
func DelByRole(ids []int64) (err error) {
|
|
str := untils.ReturnQ(len(ids))
|
|
o := orm.NewOrm()
|
|
_, err = o.Raw("UPDATE sys_role SET is_del = ? WHERE id in("+str+")", 1, ids).Exec()
|
|
return
|
|
}
|
|
|