-
Notifications
You must be signed in to change notification settings - Fork 162
/
Copy pathrole.go
147 lines (120 loc) · 3.11 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// +----------------------------------------------------------------------
// | GoCMS 0.1
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2014 http://www.6574.com.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: zzdboy <[email protected]>
// +----------------------------------------------------------------------
package models
//角色表
import "time"
import "html/template"
import "admin/utils"
import "github.com/revel/revel"
type Role struct {
Id int64 `xorm:"pk"`
Rolename string `xorm:"unique varchar(255)"`
Desc string `xorm:"varchar:(255)"`
Data string `xorm:"text"`
Status int64 `xorm:"bool"`
Createtime string `xorm:"DateTime"`
}
//根据Id获取角色信息
func (r *Role) GetById(Id int64) *Role {
role := new(Role)
has, err := DB_Read.Id(Id).Get(role)
if err != nil {
revel.WARN.Println(has)
revel.WARN.Printf("错误: %v", err)
}
return role
}
//获取角色列表
func (r *Role) GetByAll(Page int64, Perpage int64) ([]*Role, template.HTML) {
role_list := []*Role{}
//查询总数
role := new(Role)
Total, err := DB_Read.Count(role)
if err != nil {
revel.WARN.Printf("错误: %v", err)
}
//分页
Pager := new(utils.Page)
Pager.SubPage_link = "/Role/"
Pager.Nums = Total
Pager.Perpage = Perpage
Pager.Current_page = Page
Pager.SubPage_type = 2
pages := Pager.Show()
//查询数据
DB_Read.Limit(int(Perpage), int((Page-1)*Pager.Perpage)).Desc("id").Find(&role_list)
return role_list, pages
}
//获取角色
func (r *Role) GetRoleList() []*Role {
role_list := []*Role{}
DB_Read.Find(&role_list)
return role_list
}
//添加角色
func (r *Role) Save() bool {
role := new(Role)
role.Rolename = r.Rolename
role.Desc = r.Desc
role.Data = r.Data
role.Status = r.Status
role.Createtime = time.Now().Format("2006-01-02 15:04:05")
has, err := DB_Write.Insert(role)
if err != nil {
revel.WARN.Println(has)
revel.WARN.Printf("错误: %v", err)
return false
}
return true
}
//编辑角色
func (r *Role) Edit(Id int64) bool {
role := new(Role)
if len(r.Rolename) > 0 {
role.Rolename = r.Rolename
}
if len(r.Desc) > 0 {
role.Desc = r.Desc
}
if len(r.Data) > 0 {
role.Data = r.Data
}
role.Status = r.Status
has, err := DB_Write.Id(Id).Cols("rolename", "desc", "data", "status").Update(role)
if err != nil {
revel.WARN.Println(has)
revel.WARN.Printf("错误: %v", err)
return false
}
return true
}
//设置状态
func (r *Role) SetStatus(Id int64) bool {
role := new(Role)
role.Status = r.Status
has, err := DB_Write.Id(Id).Cols("status").Update(role)
if err != nil {
revel.WARN.Println(has)
revel.WARN.Printf("错误: %v", err)
return false
}
return true
}
//删除角色
func (r *Role) DelByID(Id int64) bool {
role := new(Role)
has, err := DB_Write.Id(Id).Delete(role)
if err != nil {
revel.WARN.Println(has)
revel.WARN.Printf("错误: %v", err)
return false
}
return true
}