forked from yunnet/gardens
/
Role.go
81 lines (69 loc) · 1.7 KB
/
Role.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package models
import (
"github.com/astaxie/beego/orm"
)
type RoleQueryParam struct {
BaseQueryParam
NameLike string
}
//用户角色
type Role struct {
Id int `form:"id"`
Name string `form:"Name"`
Seq int
RoleResourceRel []*RoleResourceRel `orm:"reverse(many)" json:"-"` // 设置一对多的反向关系
RoleBackendUserRel []*RoleBackendUserRel `orm:"reverse(many)" json:"-"` // 设置一对多的反向关系
}
func init() {
orm.RegisterModel(new(Role))
}
//获取 Role 对应的表名称
func RoleTBName() string {
return "sys_role"
}
func (a *Role) TableName() string {
return RoleTBName()
}
//获取分页数据
func RolePageList(params *RoleQueryParam) ([]*Role, int64) {
query := orm.NewOrm().QueryTable(RoleTBName())
data := make([]*Role, 0)
//默认排序
sortorder := "Id"
switch params.Sort {
case "Id":
sortorder = "Id"
case "Seq":
sortorder = "Seq"
}
if params.Order == "desc" {
sortorder = "-" + sortorder
}
query = query.Filter("name__istartswith", params.NameLike)
total, _ := query.Count()
query.OrderBy(sortorder).Limit(params.Limit, params.Offset).All(&data)
return data, total
}
//获取角色列表
func RoleDataList(params *RoleQueryParam) []*Role {
params.Limit = -1
params.Sort = "Seq"
params.Order = "asc"
data, _ := RolePageList(params)
return data
}
//批量删除
func RoleBatchDelete(ids []int) (int64, error) {
query := orm.NewOrm().QueryTable(RoleTBName())
num, err := query.Filter("id__in", ids).Delete()
return num, err
}
func RoleOne(id int) (*Role, error) {
o := orm.NewOrm()
m := Role{Id: id}
err := o.Read(&m)
if err != nil {
return nil, err
}
return &m, nil
}