RoleController.java
3.72 KB
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
148
149
150
151
package com.jflyfox.system.role;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jflyfox.component.base.BaseProjectController;
import com.jflyfox.jfinal.component.annotation.ControllerBind;
import com.jflyfox.jfinal.component.db.SQLUtils;
import com.jflyfox.system.menu.MenuSvc;
import com.jflyfox.system.menu.SysMenu;
import com.jflyfox.util.StrUtils;
/**
* 角色
*
* @author flyfox 2014-4-24
*/
@ControllerBind(controllerKey = "/system/role")
public class RoleController extends BaseProjectController {
private static final String path = "/pages/system/role/role_";
public void index() {
list();
}
public void list() {
SysRole model = getModelByAttr(SysRole.class);
SQLUtils sql = new SQLUtils(" from sys_role t where 1=1 ");
if (model.getAttrValues().length != 0) {
sql.setAlias("t");
// 查询条件
sql.whereLike("name", model.getStr("name"));
}
// 排序
String orderBy = getBaseForm().getOrderBy();
if (StrUtils.isEmpty(orderBy)) {
sql.append(" order by sort,id desc");
} else {
sql.append(" order by ").append(orderBy);
}
String sqlSelect = "select t.* "
+ ",(select group_concat(m.name) from sys_role_menu rm left JOIN sys_menu m ON rm.menuid = m.id where rm.roleid = t.id ) as menus ";
Page<SysRole> page = SysRole.dao.paginate(getPaginator(), sqlSelect, //
sql.toString().toString());
// 下拉框
setAttr("page", page);
setAttr("attr", model);
render(path + "list.html");
}
public void add() {
render(path + "add.html");
}
public void view() {
SysRole model = SysRole.dao.findById(getParaToInt());
setAttr("model", model);
render(path + "view.html");
}
public void delete() {
Integer roleid = getParaToInt();
// 日志添加
SysRole model = new SysRole();
Integer userid = getSessionUser().getUserid();
String now = getNow();
model.put("update_id", userid);
model.put("update_time", now);
// 删除授权
Db.update("delete from sys_role_menu where roleid = ? ", roleid);
model.deleteById(roleid);
list();
}
public void edit() {
SysRole model = SysRole.dao.findById(getParaToInt());
setAttr("model", model);
render(path + "edit.html");
}
public void save() {
Integer pid = getParaToInt();
SysRole model = getModel(SysRole.class);
// 日志添加
Integer userid = getSessionUser().getUserid();
String now = getNow();
model.put("update_id", userid);
model.put("update_time", now);
if (pid != null && pid > 0) { // 更新
model.update();
} else { // 新增
model.remove("id");
model.put("create_id", userid);
model.put("create_time", now);
model.save();
}
renderMessage("保存成功");
}
/**
* 跳转到授权页面
*
* 2015年4月28日 下午12:00:05 flyfox 369191470@qq.com
*/
public void auth() {
int roleid = getParaToInt();
MenuSvc svc = new MenuSvc();
// 获取根目录
List<SysMenu> rootList = svc.getListByParentid(0);
// 获取子目录
Map<Integer, List<SysMenu>> map = new HashMap<Integer, List<SysMenu>>();
for (SysMenu sysMenu : rootList) {
map.put(sysMenu.getInt("id"), svc.getListByParentid(sysMenu.getInt("id")));
}
String menus = new RoleSvc().getMemus(roleid);
setAttr("roleid", roleid);
setAttr("menus", menus);
// 根结点
setAttr("rootList", rootList);
// 二级目录
setAttr("map", map);
render(path + "auth.html");
}
/**
* 保存授权信息
*
* 2015年4月28日 下午3:18:33 flyfox 369191470@qq.com
*/
public void auth_save() {
int roleid = getParaToInt("roleid");
String menus = getPara("menus");
new RoleSvc().saveAuth(roleid, menus, getSessionUser().getUserid());
renderMessage("保存成功");
}
}