ad5081d3
孙向锦
初始化项目
|
1
2
3
|
package com.fh.controller.system.login;
import java.util.ArrayList;
|
9f161055
孙向锦
修改高斯客户反馈
|
4
|
import java.util.Date;
|
ad5081d3
孙向锦
初始化项目
|
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.fh.controller.base.BaseController;
|
9f161055
孙向锦
修改高斯客户反馈
|
25
26
27
|
import com.fh.entity.system.Menu;
import com.fh.entity.system.Role;
import com.fh.entity.system.User;
|
338594c8
孙向锦
添加教师端页面
|
28
|
import com.fh.service.api.V1Manager;
|
ad5081d3
孙向锦
初始化项目
|
29
|
import com.fh.service.fhoa.datajur.DatajurManager;
|
9f161055
孙向锦
修改高斯客户反馈
|
30
|
import com.fh.service.sunvote.event.EventManager;
|
83b5ddeb
孙向锦
模板添加
|
31
|
import com.fh.service.sunvote.pagetemplate.PageTemplateManager;
|
338594c8
孙向锦
添加教师端页面
|
32
|
import com.fh.service.sunvote.school.SchoolManager;
|
6b3a5ad0
孙向锦
添加管理员界面
|
33
|
import com.fh.service.sunvote.schooladmin.SchoolAdminManager;
|
837ae11d
孙向锦
添加班長管理
|
34
|
import com.fh.service.sunvote.schoolgradesubject.SchoolGradeSubjectManager;
|
6b3a5ad0
孙向锦
添加管理员界面
|
35
|
import com.fh.service.sunvote.sclass.SClassManager;
|
338594c8
孙向锦
添加教师端页面
|
36
|
import com.fh.service.sunvote.teacher.TeacherManager;
|
ad5081d3
孙向锦
初始化项目
|
37
38
39
40
41
42
|
import com.fh.service.system.appuser.AppuserManager;
import com.fh.service.system.buttonrights.ButtonrightsManager;
import com.fh.service.system.fhbutton.FhbuttonManager;
import com.fh.service.system.fhlog.FHlogManager;
import com.fh.service.system.loginimg.LogInImgManager;
import com.fh.service.system.menu.MenuManager;
|
ad5081d3
孙向锦
初始化项目
|
43
44
45
46
47
48
49
50
51
|
import com.fh.service.system.role.RoleManager;
import com.fh.service.system.user.UserManager;
import com.fh.util.AppUtil;
import com.fh.util.Const;
import com.fh.util.DateUtil;
import com.fh.util.Jurisdiction;
import com.fh.util.PageData;
import com.fh.util.RightsHelper;
import com.fh.util.Tools;
|
bed6e1fc
孙向锦
添加其他功能
|
52
|
|
ad5081d3
孙向锦
初始化项目
|
53
54
|
/**
* 总入口
|
ad5081d3
孙向锦
初始化项目
|
55
56
57
|
* 修改日期:2015/11/2
*/
/**
|
ad5081d3
孙向锦
初始化项目
|
58
59
60
61
62
|
*
*/
@Controller
public class LoginController extends BaseController {
|
bed6e1fc
孙向锦
添加其他功能
|
63
|
@Resource(name = "userService")
|
ad5081d3
孙向锦
初始化项目
|
64
|
private UserManager userService;
|
bed6e1fc
孙向锦
添加其他功能
|
65
|
@Resource(name = "menuService")
|
ad5081d3
孙向锦
初始化项目
|
66
|
private MenuManager menuService;
|
bed6e1fc
孙向锦
添加其他功能
|
67
|
@Resource(name = "roleService")
|
ad5081d3
孙向锦
初始化项目
|
68
|
private RoleManager roleService;
|
bed6e1fc
孙向锦
添加其他功能
|
69
|
@Resource(name = "buttonrightsService")
|
ad5081d3
孙向锦
初始化项目
|
70
|
private ButtonrightsManager buttonrightsService;
|
bed6e1fc
孙向锦
添加其他功能
|
71
|
@Resource(name = "fhbuttonService")
|
ad5081d3
孙向锦
初始化项目
|
72
|
private FhbuttonManager fhbuttonService;
|
bed6e1fc
孙向锦
添加其他功能
|
73
|
@Resource(name = "appuserService")
|
ad5081d3
孙向锦
初始化项目
|
74
|
private AppuserManager appuserService;
|
bed6e1fc
孙向锦
添加其他功能
|
75
|
@Resource(name = "datajurService")
|
ad5081d3
孙向锦
初始化项目
|
76
|
private DatajurManager datajurService;
|
bed6e1fc
孙向锦
添加其他功能
|
77
|
@Resource(name = "fhlogService")
|
ad5081d3
孙向锦
初始化项目
|
78
|
private FHlogManager FHLOG;
|
bed6e1fc
孙向锦
添加其他功能
|
79
|
@Resource(name = "loginimgService")
|
ad5081d3
孙向锦
初始化项目
|
80
|
private LogInImgManager loginimgService;
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
81
|
@Resource(name = "teacherService")
|
338594c8
孙向锦
添加教师端页面
|
82
|
private TeacherManager teacherService;
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
83
|
@Resource(name = "schoolService")
|
338594c8
孙向锦
添加教师端页面
|
84
|
private SchoolManager schoolService;
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
85
|
|
338594c8
孙向锦
添加教师端页面
|
86
|
@Resource(name = "v1Service")
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
87
|
private V1Manager v1Service;
|
6b3a5ad0
孙向锦
添加管理员界面
|
88
|
|
837ae11d
孙向锦
添加班長管理
|
89
90
91
|
@Resource(name="schoolgradesubjectService")
private SchoolGradeSubjectManager schoolgradesubjectService;
|
6b3a5ad0
孙向锦
添加管理员界面
|
92
93
|
@Resource(name="schooladminService")
private SchoolAdminManager schooladminService;
|
bed6e1fc
孙向锦
添加其他功能
|
94
|
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
95
|
@Resource(name = "eventService")
|
9f161055
孙向锦
修改高斯客户反馈
|
96
|
private EventManager eventService;
|
6b3a5ad0
孙向锦
添加管理员界面
|
97
98
99
100
|
@Resource(name="sclassService")
private SClassManager sclassService;
|
83b5ddeb
孙向锦
模板添加
|
101
102
103
|
@Resource(name="pagetemplateService")
private PageTemplateManager pagetemplateService;
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
104
|
|
bed6e1fc
孙向锦
添加其他功能
|
105
106
107
|
/**
* 访问登录页
*
|
ad5081d3
孙向锦
初始化项目
|
108
109
110
|
* @return
* @throws Exception
*/
|
bed6e1fc
孙向锦
添加其他功能
|
111
112
|
@RequestMapping(value = "/login_toLogin")
public ModelAndView toLogin() throws Exception {
|
ad5081d3
孙向锦
初始化项目
|
113
114
115
|
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
pd = this.getPageData();
|
bed6e1fc
孙向锦
添加其他功能
|
116
|
pd = this.setLoginPd(pd); // 设置登录页面的配置参数
|
fd0087a8
孙向锦
添加英语语言
|
117
118
119
120
121
|
if(isChineseLanguageClient()){
mv.setViewName("system/index/login");
}else{
mv.setViewName("system/index/en_login");
}
|
bed6e1fc
孙向锦
添加其他功能
|
122
|
mv.addObject("pd", pd);
|
ad5081d3
孙向锦
初始化项目
|
123
124
|
return mv;
}
|
bed6e1fc
孙向锦
添加其他功能
|
125
126
127
128
|
/**
* 请求登录,验证用户
*
|
ad5081d3
孙向锦
初始化项目
|
129
130
131
|
* @return
* @throws Exception
*/
|
bed6e1fc
孙向锦
添加其他功能
|
132
|
@RequestMapping(value = "/login_login", produces = "application/json;charset=UTF-8")
|
ad5081d3
孙向锦
初始化项目
|
133
|
@ResponseBody
|
bed6e1fc
孙向锦
添加其他功能
|
134
135
|
public Object login() throws Exception {
Map<String, String> map = new HashMap<String, String>();
|
ad5081d3
孙向锦
初始化项目
|
136
137
138
|
PageData pd = new PageData();
pd = this.getPageData();
String errInfo = "";
|
81df8ce6
孙向锦
去掉多余的信息
|
139
|
String KEYDATA[] = pd.getString("KEYDATA").split(";;;");
|
bed6e1fc
孙向锦
添加其他功能
|
140
|
if (null != KEYDATA && KEYDATA.length >= 2) {
|
ad5081d3
孙向锦
初始化项目
|
141
|
Session session = Jurisdiction.getSession();
|
bed6e1fc
孙向锦
添加其他功能
|
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
String sessionCode = (String) session
.getAttribute(Const.SESSION_SECURITY_CODE); // 获取session中的验证码
String USERNAME = KEYDATA[0]; // 登录过来的用户名
String PASSWORD = KEYDATA[1]; // 登录过来的密码
pd.put("USERNAME", USERNAME);
String passwd = new SimpleHash("SHA-1", USERNAME, PASSWORD)
.toString(); // 密码加密
pd.put("PASSWORD", passwd);
pd = userService.getUserByNameAndPwd(pd); // 根据用户名和密码去读取用户信息
if (pd != null) {
this.removeSession(USERNAME);// 请缓存
pd.put("LAST_LOGIN", DateUtil.getTime().toString());
userService.updateLastLogin(pd);
User user = new User();
user.setUSER_ID(pd.getString("USER_ID"));
user.setUSERNAME(pd.getString("USERNAME"));
user.setPASSWORD(pd.getString("PASSWORD"));
user.setNAME(pd.getString("NAME"));
user.setRIGHTS(pd.getString("RIGHTS"));
user.setROLE_ID(pd.getString("ROLE_ID"));
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
162
|
|
9f161055
孙向锦
修改高斯客户反馈
|
163
164
165
166
167
|
PageData eventPd = new PageData();
eventPd.put("EVENT_ID", get32UUID());
eventPd.put("EVENT_NAME", "login");
eventPd.put("EVENT_USER", pd.getString("USER_ID"));
eventPd.put("EVENT_TYPE", "0");
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
168
|
eventPd.put("EVENT_START_TIME", Tools.date2Str(new Date()));
|
9f161055
孙向锦
修改高斯客户反馈
|
169
|
eventPd.put("CLIENT_ID", "SERVER");
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
170
|
eventPd.put("EVENT_IP", pd.getString("IP"));
|
9f161055
孙向锦
修改高斯客户反馈
|
171
|
eventService.save(eventPd);
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
172
173
174
|
if ("57bb1e6f138247a0b05cc721a5da1b64".equals(pd
.getString("ROLE_ID"))) {
|
338594c8
孙向锦
添加教师端页面
|
175
|
map.put("teacher", pd.getString("RIGHTS"));
|
c617106f
孙向锦
添加即时测功能
|
176
177
178
179
180
181
182
|
PageData tpd = new PageData();
tpd.put("ACCOUT", pd.get("USERNAME"));
tpd.put("PASSWORD", PASSWORD);
PageData pageData = teacherService.getUserInfo(tpd);
if(pageData != null){
user.setTeacherID(pageData.getString("ID"));
}
|
338594c8
孙向锦
添加教师端页面
|
183
|
}
|
6b3a5ad0
孙向锦
添加管理员界面
|
184
185
186
187
188
189
190
191
192
|
if("51824b61dd6941f19c673996374781e5".equals(pd
.getString("ROLE_ID"))){
map.put("admin", pd.getString("RIGHTS"));
PageData tpd = new PageData();
tpd.put("ACCOUT", pd.get("USERNAME"));
tpd.put("PASSWORD", passwd);
PageData pageData = schooladminService.findByusername(tpd);
if(pageData != null){
user.setTeacherID(pageData.getString("SCHOOLADMIN_ID"));
|
6b3a5ad0
孙向锦
添加管理员界面
|
193
194
|
}
}
|
bed6e1fc
孙向锦
添加其他功能
|
195
196
197
198
199
200
201
202
203
204
205
206
207
|
user.setLAST_LOGIN(pd.getString("LAST_LOGIN"));
user.setIP(pd.getString("IP"));
user.setSTATUS(pd.getString("STATUS"));
session.setAttribute(Const.SESSION_USER, user); // 把用户信息放session中
session.removeAttribute(Const.SESSION_SECURITY_CODE); // 清除登录验证码的session
// shiro加入身份验证
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(
USERNAME, PASSWORD);
try {
subject.login(token);
} catch (AuthenticationException e) {
errInfo = "身份验证失败!";
|
ad5081d3
孙向锦
初始化项目
|
208
|
}
|
bed6e1fc
孙向锦
添加其他功能
|
209
210
211
212
213
214
215
216
217
|
} else {
errInfo = "usererror"; // 用户名或密码有误
logBefore(logger, USERNAME + "登录系统密码或用户名错误");
FHLOG.save(USERNAME, "登录系统密码或用户名错误");
}
if (Tools.isEmpty(errInfo)) {
errInfo = "success"; // 验证成功
logBefore(logger, USERNAME + "登录系统");
FHLOG.save(USERNAME, "登录系统");
|
ad5081d3
孙向锦
初始化项目
|
218
|
}
|
bed6e1fc
孙向锦
添加其他功能
|
219
|
}
|
ad5081d3
孙向锦
初始化项目
|
220
221
222
|
map.put("result", errInfo);
return AppUtil.returnObject(new PageData(), map);
}
|
bed6e1fc
孙向锦
添加其他功能
|
223
224
225
226
227
228
|
/**
* 访问系统首页
*
* @param changeMenu
* :切换菜单参数
|
ad5081d3
孙向锦
初始化项目
|
229
230
|
* @return
*/
|
bed6e1fc
孙向锦
添加其他功能
|
231
232
233
|
@RequestMapping(value = "/main/{changeMenu}")
public ModelAndView login_index(
@PathVariable("changeMenu") String changeMenu) {
|
ad5081d3
孙向锦
初始化项目
|
234
235
236
|
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
pd = this.getPageData();
|
bed6e1fc
孙向锦
添加其他功能
|
237
|
try {
|
ad5081d3
孙向锦
初始化项目
|
238
|
Session session = Jurisdiction.getSession();
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
239
|
|
f143f558
孙向锦
修改管理员登录白屏问题
|
240
|
User user = (User)session.getAttribute(Const.SESSION_USER); //读取session中的用户信息(单独用户信息)
|
ad5081d3
孙向锦
初始化项目
|
241
|
if (user != null) {
|
f143f558
孙向锦
修改管理员登录白屏问题
|
242
243
244
245
246
247
248
|
User userr = (User)session.getAttribute(Const.SESSION_USERROL); //读取session中的用户信息(含角色信息)
if(null == userr){
user = userService.getUserAndRoleById(user.getUSER_ID()); //通过用户ID读取用户信息和角色信息
session.setAttribute(Const.SESSION_USERROL, user); //存入session
}else{
user = userr;
}
|
ad5081d3
孙向锦
初始化项目
|
249
|
String USERNAME = user.getUSERNAME();
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
250
|
if ("teacher".equals(changeMenu)) {
|
338594c8
孙向锦
添加教师端页面
|
251
252
|
PageData tpd = new PageData();
tpd.put("ID", user.getUSER_ID());
|
8246d00c
孙向锦
修复bug
|
253
254
255
256
|
PageData teacherInfo = v1Service.getTeacherInfo(tpd);
List<PageData> classInfos = v1Service.getTeacherInfoGrade(tpd);
pd.put("TEACHER", teacherInfo);
pd.put("CLASSINFO", classInfos);
|
b9dc59e6
孙向锦
管理员过滤条件
|
257
258
|
session.setAttribute(USERNAME + Const.ROLE_ID,
"teacher");
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
259
|
session.setAttribute(Const.SESSION_USERNAME, USERNAME); // 放入用户名到session
|
fd0087a8
孙向锦
添加英语语言
|
260
261
262
263
264
|
if(isChineseLanguageClient()){
mv.setViewName("sunvote/teacher/teacher_main");
}else{
mv.setViewName("sunvote/teacher/en_teacher_main");
}
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
265
266
|
mv.addObject("user", user);
pd.put("SYSNAME", Tools.readTxtFile(Const.SYSNAME)); // 读取系统名称
|
4b347a15
孙向锦
修改编辑试题后,添加的返回路径
|
267
268
269
|
if(pd.get("DEFAULTURL") == null){
pd.put("DEFAULTURL", "../paper/list2.do");
}
|
6b3a5ad0
孙向锦
添加管理员界面
|
270
271
272
273
274
|
mv.addObject("pd", pd);
return mv;
}else if("admin".equals(changeMenu)){
PageData tpd = new PageData();
tpd.put("ID", user.getUSER_ID());
|
4b347a15
孙向锦
修改编辑试题后,添加的返回路径
|
275
|
String schoolId = "" ;
|
837ae11d
孙向锦
添加班長管理
|
276
|
PageData adminInfos = v1Service.getAdminInfo(tpd);
|
6b3a5ad0
孙向锦
添加管理员界面
|
277
|
// 查询学校信息
|
416902b7
孙向锦
添加课后作业部分API
|
278
|
Object tgradleId = "" ;
|
837ae11d
孙向锦
添加班長管理
|
279
|
|
b9dc59e6
孙向锦
管理员过滤条件
|
280
281
|
session.setAttribute(USERNAME + Const.ROLE_ID,
"admin");
|
837ae11d
孙向锦
添加班長管理
|
282
|
List<PageData> gradeInfos = schoolgradesubjectService.listAllGrade(adminInfos);
|
6b3a5ad0
孙向锦
添加管理员界面
|
283
|
mv.addObject("gradeInfos", gradeInfos);
|
837ae11d
孙向锦
添加班長管理
|
284
285
|
mv.addObject("adminInfos", adminInfos);
mv.addObject("SCHOOL_ID", adminInfos.get("ID"));
|
6b3a5ad0
孙向锦
添加管理员界面
|
286
|
session.setAttribute(Const.SESSION_USERNAME, USERNAME); // 放入用户名到session
|
fd0087a8
孙向锦
添加英语语言
|
287
288
289
290
291
|
if(isChineseLanguageClient()){
mv.setViewName("sunvote/admin/admin_main");
}else{
mv.setViewName("sunvote/admin/en_admin_main");
}
|
6b3a5ad0
孙向锦
添加管理员界面
|
292
293
|
mv.addObject("user", user);
pd.put("SYSNAME", Tools.readTxtFile(Const.SYSNAME)); // 读取系统名称
|
4b347a15
孙向锦
修改编辑试题后,添加的返回路径
|
294
295
296
297
|
if(pd.get("DEFAULTURL") == null){
pd.put("DEFAULTURL", "../paper/list4.do?school_id=" + schoolId);
}
//
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
298
|
mv.addObject("pd", pd);
|
4b347a15
孙向锦
修改编辑试题后,添加的返回路径
|
299
|
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
300
|
return mv;
|
338594c8
孙向锦
添加教师端页面
|
301
|
}
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
|
Role role = user.getRole(); // 获取用户角色
String roleRights = role != null ? role.getRIGHTS() : ""; // 角色权限(菜单权限)
String ROLE_IDS = user.getROLE_IDS();
session.setAttribute(USERNAME + Const.SESSION_ROLE_RIGHTS,
roleRights); // 将角色权限存入session
session.setAttribute(Const.SESSION_USERNAME, USERNAME); // 放入用户名到session
this.setAttributeToAllDEPARTMENT_ID(session, USERNAME); // 把用户的组织机构权限放到session里面
List<Menu> allmenuList = new ArrayList<Menu>();
allmenuList = this.getAttributeMenu(session, USERNAME,
roleRights, getArrayRoleRights(ROLE_IDS)); // 菜单缓存
List<Menu> menuList = new ArrayList<Menu>();
if (null == session.getAttribute(USERNAME + Const.SESSION_QX)) {
session.setAttribute(USERNAME + Const.SESSION_QX,
this.getUQX(USERNAME)); // 主职角色按钮权限放到session中
session.setAttribute(USERNAME + Const.SESSION_QX2,
this.getUQX2(USERNAME)); // 副职角色按钮权限放到session中
}
|
b9dc59e6
孙向锦
管理员过滤条件
|
320
321
|
session.setAttribute(USERNAME + Const.ROLE_ID,
"systemadmin");
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
322
323
324
325
326
|
this.getRemortIP(USERNAME); // 更新登录IP
menuList = this.changeMenuF(allmenuList, session, USERNAME,
changeMenu); // 切换菜单
mv.setViewName("system/index/main");
|
ad5081d3
孙向锦
初始化项目
|
327
328
|
mv.addObject("user", user);
mv.addObject("menuList", menuList);
|
bed6e1fc
孙向锦
添加其他功能
|
329
|
} else {
|
fd0087a8
孙向锦
添加英语语言
|
330
331
332
333
334
|
if(isChineseLanguageClient()){
mv.setViewName("system/index/login");
}else{
mv.setViewName("system/index/en_login");
}
|
ad5081d3
孙向锦
初始化项目
|
335
|
}
|
bed6e1fc
孙向锦
添加其他功能
|
336
|
} catch (Exception e) {
|
fd0087a8
孙向锦
添加英语语言
|
337
338
339
340
341
|
if(isChineseLanguageClient()){
mv.setViewName("system/index/login");
}else{
mv.setViewName("system/index/en_login");
}
|
ad5081d3
孙向锦
初始化项目
|
342
343
|
logger.error(e.getMessage(), e);
}
|
bed6e1fc
孙向锦
添加其他功能
|
344
345
|
pd.put("SYSNAME", Tools.readTxtFile(Const.SYSNAME)); // 读取系统名称
mv.addObject("pd", pd);
|
ad5081d3
孙向锦
初始化项目
|
346
347
|
return mv;
}
|
bed6e1fc
孙向锦
添加其他功能
|
348
349
350
351
|
/**
* 获取副职角色权限List
*
|
ad5081d3
孙向锦
初始化项目
|
352
353
354
355
|
* @param ROLE_IDS
* @return
* @throws Exception
*/
|
bed6e1fc
孙向锦
添加其他功能
|
356
357
|
public List<String> getArrayRoleRights(String ROLE_IDS) throws Exception {
if (Tools.notEmpty(ROLE_IDS)) {
|
ad5081d3
孙向锦
初始化项目
|
358
359
|
List<String> list = new ArrayList<String>();
String arryROLE_ID[] = ROLE_IDS.split(",fh,");
|
bed6e1fc
孙向锦
添加其他功能
|
360
|
for (int i = 0; i < arryROLE_ID.length; i++) {
|
ad5081d3
孙向锦
初始化项目
|
361
362
363
|
PageData pd = new PageData();
pd.put("ROLE_ID", arryROLE_ID[i]);
pd = roleService.findObjectById(pd);
|
bed6e1fc
孙向锦
添加其他功能
|
364
|
if (null != pd) {
|
ad5081d3
孙向锦
初始化项目
|
365
|
String RIGHTS = pd.getString("RIGHTS");
|
bed6e1fc
孙向锦
添加其他功能
|
366
|
if (Tools.notEmpty(RIGHTS)) {
|
ad5081d3
孙向锦
初始化项目
|
367
368
369
370
371
|
list.add(RIGHTS);
}
}
}
return list.size() == 0 ? null : list;
|
bed6e1fc
孙向锦
添加其他功能
|
372
|
} else {
|
ad5081d3
孙向锦
初始化项目
|
373
374
375
|
return null;
}
}
|
bed6e1fc
孙向锦
添加其他功能
|
376
377
378
379
|
/**
* 菜单缓存
*
|
ad5081d3
孙向锦
初始化项目
|
380
381
382
383
384
385
386
|
* @param session
* @param USERNAME
* @param roleRights
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
|
bed6e1fc
孙向锦
添加其他功能
|
387
388
|
public List<Menu> getAttributeMenu(Session session, String USERNAME,
String roleRights, List<String> arrayRoleRights) throws Exception {
|
ad5081d3
孙向锦
初始化项目
|
389
|
List<Menu> allmenuList = new ArrayList<Menu>();
|
bed6e1fc
孙向锦
添加其他功能
|
390
391
392
393
394
|
if (null == session.getAttribute(USERNAME + Const.SESSION_allmenuList)) {
allmenuList = menuService.listAllMenuQx("0"); // 获取所有菜单
if (Tools.notEmpty(roleRights)) {
allmenuList = this.readMenu(allmenuList, roleRights,
arrayRoleRights); // 根据角色权限获取本权限的菜单列表
|
ad5081d3
孙向锦
初始化项目
|
395
|
}
|
bed6e1fc
孙向锦
添加其他功能
|
396
397
398
399
400
|
session.setAttribute(USERNAME + Const.SESSION_allmenuList,
allmenuList);// 菜单权限放入session中
} else {
allmenuList = (List<Menu>) session.getAttribute(USERNAME
+ Const.SESSION_allmenuList);
|
ad5081d3
孙向锦
初始化项目
|
401
402
403
|
}
return allmenuList;
}
|
bed6e1fc
孙向锦
添加其他功能
|
404
405
406
407
408
409
410
411
|
/**
* 根据角色权限获取本权限的菜单列表(递归处理)
*
* @param menuList
* :传入的总菜单
* @param roleRights
* :加密的权限字符串
|
ad5081d3
孙向锦
初始化项目
|
412
413
|
* @return
*/
|
bed6e1fc
孙向锦
添加其他功能
|
414
415
416
417
418
419
420
421
422
423
|
public List<Menu> readMenu(List<Menu> menuList, String roleRights,
List<String> arrayRoleRights) {
for (int i = 0; i < menuList.size(); i++) {
Boolean b1 = RightsHelper.testRights(roleRights, menuList.get(i)
.getMENU_ID());
menuList.get(i).setHasMenu(b1); // 赋予主职角色菜单权限
if (!b1 && null != arrayRoleRights) {
for (int n = 0; n < arrayRoleRights.size(); n++) {
if (RightsHelper.testRights(arrayRoleRights.get(n),
menuList.get(i).getMENU_ID())) {
|
ad5081d3
孙向锦
初始化项目
|
424
425
426
427
428
|
menuList.get(i).setHasMenu(true);
break;
}
}
}
|
bed6e1fc
孙向锦
添加其他功能
|
429
430
431
|
if (menuList.get(i).isHasMenu()) { // 判断是否有此菜单权限
this.readMenu(menuList.get(i).getSubMenu(), roleRights,
arrayRoleRights);// 是:继续排查其子菜单
|
ad5081d3
孙向锦
初始化项目
|
432
433
434
435
|
}
}
return menuList;
}
|
bed6e1fc
孙向锦
添加其他功能
|
436
437
438
439
|
/**
* 切换菜单处理
*
|
ad5081d3
孙向锦
初始化项目
|
440
441
442
443
444
445
446
|
* @param allmenuList
* @param session
* @param USERNAME
* @param changeMenu
* @return
*/
@SuppressWarnings("unchecked")
|
bed6e1fc
孙向锦
添加其他功能
|
447
448
|
public List<Menu> changeMenuF(List<Menu> allmenuList, Session session,
String USERNAME, String changeMenu) {
|
ad5081d3
孙向锦
初始化项目
|
449
450
|
List<Menu> menuList = new ArrayList<Menu>();
/** 菜单缓存为空 或者 传入的菜单类型和当前不一样的时候,条件成立,重新拆分菜单,把选择的菜单类型放入缓存 */
|
bed6e1fc
孙向锦
添加其他功能
|
451
452
|
if (null == session.getAttribute(USERNAME + Const.SESSION_menuList)
|| (!changeMenu.equals(session.getAttribute("changeMenu")))) {
|
ad5081d3
孙向锦
初始化项目
|
453
454
455
456
|
List<Menu> menuList1 = new ArrayList<Menu>();
List<Menu> menuList2 = new ArrayList<Menu>();
List<Menu> menuList3 = new ArrayList<Menu>();
List<Menu> menuList4 = new ArrayList<Menu>();
|
bed6e1fc
孙向锦
添加其他功能
|
457
|
for (int i = 0; i < allmenuList.size(); i++) {// 拆分菜单
|
ad5081d3
孙向锦
初始化项目
|
458
|
Menu menu = allmenuList.get(i);
|
bed6e1fc
孙向锦
添加其他功能
|
459
460
461
462
463
464
465
466
|
if ("1".equals(menu.getMENU_TYPE())) {
menuList1.add(menu); // 系统菜单
} else if ("2".equals(menu.getMENU_TYPE())) {
menuList2.add(menu); // 业务菜单
} else if ("3".equals(menu.getMENU_TYPE())) {
menuList3.add(menu); // 菜单类型三
} else if ("4".equals(menu.getMENU_TYPE())) {
menuList4.add(menu); // 菜单类型四
|
ad5081d3
孙向锦
初始化项目
|
467
468
469
|
}
}
session.removeAttribute(USERNAME + Const.SESSION_menuList);
|
bed6e1fc
孙向锦
添加其他功能
|
470
471
472
|
if ("index".equals(changeMenu)) {
session.setAttribute(USERNAME + Const.SESSION_menuList,
menuList2);
|
ad5081d3
孙向锦
初始化项目
|
473
474
475
|
session.removeAttribute("changeMenu");
session.setAttribute("changeMenu", "index");
menuList = menuList2;
|
bed6e1fc
孙向锦
添加其他功能
|
476
477
478
|
} else if ("2".equals(changeMenu)) {
session.setAttribute(USERNAME + Const.SESSION_menuList,
menuList1);
|
ad5081d3
孙向锦
初始化项目
|
479
480
481
|
session.removeAttribute("changeMenu");
session.setAttribute("changeMenu", "2");
menuList = menuList1;
|
bed6e1fc
孙向锦
添加其他功能
|
482
483
484
|
} else if ("3".equals(changeMenu)) {
session.setAttribute(USERNAME + Const.SESSION_menuList,
menuList3);
|
ad5081d3
孙向锦
初始化项目
|
485
486
487
|
session.removeAttribute("changeMenu");
session.setAttribute("changeMenu", "3");
menuList = menuList3;
|
bed6e1fc
孙向锦
添加其他功能
|
488
489
490
|
} else if ("4".equals(changeMenu)) {
session.setAttribute(USERNAME + Const.SESSION_menuList,
menuList4);
|
ad5081d3
孙向锦
初始化项目
|
491
492
493
|
session.removeAttribute("changeMenu");
session.setAttribute("changeMenu", "4");
menuList = menuList4;
|
4f32cbf7
孙向锦
更新新东方服务界面维护文档
|
494
|
} else if ("teacher".equals(changeMenu)) {
|
338594c8
孙向锦
添加教师端页面
|
495
496
497
498
|
session.setAttribute(USERNAME + Const.SESSION_menuList,
menuList2);
session.removeAttribute("changeMenu");
session.setAttribute("changeMenu", "index");
|
ad5081d3
孙向锦
初始化项目
|
499
|
}
|
bed6e1fc
孙向锦
添加其他功能
|
500
501
502
|
} else {
menuList = (List<Menu>) session.getAttribute(USERNAME
+ Const.SESSION_menuList);
|
ad5081d3
孙向锦
初始化项目
|
503
504
505
|
}
return menuList;
}
|
bed6e1fc
孙向锦
添加其他功能
|
506
507
508
509
|
/**
* 把用户的组织机构权限放到session里面
*
|
ad5081d3
孙向锦
初始化项目
|
510
511
512
|
* @param session
* @param USERNAME
* @return
|
bed6e1fc
孙向锦
添加其他功能
|
513
|
* @throws Exception
|
ad5081d3
孙向锦
初始化项目
|
514
|
*/
|
bed6e1fc
孙向锦
添加其他功能
|
515
516
517
518
|
public void setAttributeToAllDEPARTMENT_ID(Session session, String USERNAME)
throws Exception {
String DEPARTMENT_IDS = "0", DEPARTMENT_ID = "0";
if (!"admin".equals(USERNAME)) {
|
ad5081d3
孙向锦
初始化项目
|
519
|
PageData pd = datajurService.getDEPARTMENT_IDS(USERNAME);
|
bed6e1fc
孙向锦
添加其他功能
|
520
521
|
DEPARTMENT_IDS = null == pd ? "无权" : pd.getString("DEPARTMENT_IDS");
DEPARTMENT_ID = null == pd ? "无权" : pd.getString("DEPARTMENT_ID");
|
ad5081d3
孙向锦
初始化项目
|
522
|
}
|
bed6e1fc
孙向锦
添加其他功能
|
523
524
|
session.setAttribute(Const.DEPARTMENT_IDS, DEPARTMENT_IDS); // 把用户的组织机构权限集合放到session里面
session.setAttribute(Const.DEPARTMENT_ID, DEPARTMENT_ID); // 把用户的最高组织机构权限放到session里面
|
ad5081d3
孙向锦
初始化项目
|
525
|
}
|
bed6e1fc
孙向锦
添加其他功能
|
526
|
|
ad5081d3
孙向锦
初始化项目
|
527
528
|
/**
* 进入tab标签
|
bed6e1fc
孙向锦
添加其他功能
|
529
|
*
|
ad5081d3
孙向锦
初始化项目
|
530
531
|
* @return
*/
|
bed6e1fc
孙向锦
添加其他功能
|
532
533
|
@RequestMapping(value = "/tab")
public String tab() {
|
ad5081d3
孙向锦
初始化项目
|
534
535
|
return "system/index/tab";
}
|
bed6e1fc
孙向锦
添加其他功能
|
536
|
|
ad5081d3
孙向锦
初始化项目
|
537
538
|
/**
* 进入首页后的默认页面
|
bed6e1fc
孙向锦
添加其他功能
|
539
|
*
|
ad5081d3
孙向锦
初始化项目
|
540
|
* @return
|
bed6e1fc
孙向锦
添加其他功能
|
541
|
* @throws Exception
|
ad5081d3
孙向锦
初始化项目
|
542
|
*/
|
bed6e1fc
孙向锦
添加其他功能
|
543
544
|
@RequestMapping(value = "/login_default")
public ModelAndView defaultPage() throws Exception {
|
ad5081d3
孙向锦
初始化项目
|
545
546
|
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
|
bed6e1fc
孙向锦
添加其他功能
|
547
548
549
550
551
552
553
|
pd.put("userCount",
Integer.parseInt(userService.getUserCount("").get("userCount")
.toString()) - 1); // 系统用户数
pd.put("appUserCount",
Integer.parseInt(appuserService.getAppUserCount("")
.get("appUserCount").toString())); // 会员数
mv.addObject("pd", pd);
|
ad5081d3
孙向锦
初始化项目
|
554
555
556
|
mv.setViewName("system/index/default");
return mv;
}
|
bed6e1fc
孙向锦
添加其他功能
|
557
|
|
ad5081d3
孙向锦
初始化项目
|
558
559
|
/**
* 用户注销
|
bed6e1fc
孙向锦
添加其他功能
|
560
|
*
|
ad5081d3
孙向锦
初始化项目
|
561
562
|
* @param session
* @return
|
bed6e1fc
孙向锦
添加其他功能
|
563
|
* @throws Exception
|
ad5081d3
孙向锦
初始化项目
|
564
|
*/
|
bed6e1fc
孙向锦
添加其他功能
|
565
566
567
568
|
@RequestMapping(value = "/logout")
public ModelAndView logout() throws Exception {
String USERNAME = Jurisdiction.getUsername(); // 当前登录的用户名
logBefore(logger, USERNAME + "退出系统");
|
ad5081d3
孙向锦
初始化项目
|
569
570
571
|
FHLOG.save(USERNAME, "退出");
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
|
bed6e1fc
孙向锦
添加其他功能
|
572
573
574
|
this.removeSession(USERNAME);// 请缓存
// shiro销毁登录
Subject subject = SecurityUtils.getSubject();
|
ad5081d3
孙向锦
初始化项目
|
575
576
577
|
subject.logout();
pd = this.getPageData();
pd.put("msg", pd.getString("msg"));
|
bed6e1fc
孙向锦
添加其他功能
|
578
|
pd = this.setLoginPd(pd); // 设置登录页面的配置参数
|
fd0087a8
孙向锦
添加英语语言
|
579
580
581
582
583
|
if(isChineseLanguageClient()){
mv.setViewName("system/index/login");
}else{
mv.setViewName("system/index/en_login");
}
|
bed6e1fc
孙向锦
添加其他功能
|
584
|
mv.addObject("pd", pd);
|
ad5081d3
孙向锦
初始化项目
|
585
586
|
return mv;
}
|
bed6e1fc
孙向锦
添加其他功能
|
587
|
|
ad5081d3
孙向锦
初始化项目
|
588
589
590
|
/**
* 清理session
*/
|
bed6e1fc
孙向锦
添加其他功能
|
591
592
|
public void removeSession(String USERNAME) {
Session session = Jurisdiction.getSession(); // 以下清除session缓存
|
ad5081d3
孙向锦
初始化项目
|
593
594
595
596
597
598
599
600
601
602
603
604
605
|
session.removeAttribute(Const.SESSION_USER);
session.removeAttribute(USERNAME + Const.SESSION_ROLE_RIGHTS);
session.removeAttribute(USERNAME + Const.SESSION_allmenuList);
session.removeAttribute(USERNAME + Const.SESSION_menuList);
session.removeAttribute(USERNAME + Const.SESSION_QX);
session.removeAttribute(USERNAME + Const.SESSION_QX2);
session.removeAttribute(Const.SESSION_userpds);
session.removeAttribute(Const.SESSION_USERNAME);
session.removeAttribute(Const.SESSION_USERROL);
session.removeAttribute("changeMenu");
session.removeAttribute("DEPARTMENT_IDS");
session.removeAttribute("DEPARTMENT_ID");
}
|
bed6e1fc
孙向锦
添加其他功能
|
606
607
608
609
|
/**
* 设置登录页面的配置参数
*
|
ad5081d3
孙向锦
初始化项目
|
610
611
612
|
* @param pd
* @return
*/
|
bed6e1fc
孙向锦
添加其他功能
|
613
614
615
616
|
public PageData setLoginPd(PageData pd) {
pd.put("SYSNAME", Tools.readTxtFile(Const.SYSNAME)); // 读取系统名称
String strLOGINEDIT = Tools.readTxtFile(Const.LOGINEDIT); // 读取登录页面配置
if (null != strLOGINEDIT && !"".equals(strLOGINEDIT)) {
|
ad5081d3
孙向锦
初始化项目
|
617
|
String strLo[] = strLOGINEDIT.split(",fh,");
|
bed6e1fc
孙向锦
添加其他功能
|
618
|
if (strLo.length == 2) {
|
ad5081d3
孙向锦
初始化项目
|
619
620
621
622
623
|
pd.put("isZhuce", strLo[0]);
pd.put("isMusic", strLo[1]);
}
}
try {
|
bed6e1fc
孙向锦
添加其他功能
|
624
|
List<PageData> listImg = loginimgService.listAll(pd); // 登录背景图片
|
ad5081d3
孙向锦
初始化项目
|
625
626
627
628
629
630
|
pd.put("listImg", listImg);
} catch (Exception e) {
e.printStackTrace();
}
return pd;
}
|
bed6e1fc
孙向锦
添加其他功能
|
631
632
633
634
|
/**
* 获取用户权限
*
|
ad5081d3
孙向锦
初始化项目
|
635
636
637
|
* @param session
* @return
*/
|
bed6e1fc
孙向锦
添加其他功能
|
638
|
public Map<String, String> getUQX(String USERNAME) {
|
ad5081d3
孙向锦
初始化项目
|
639
640
641
642
|
PageData pd = new PageData();
Map<String, String> map = new HashMap<String, String>();
try {
pd.put(Const.SESSION_USERNAME, USERNAME);
|
bed6e1fc
孙向锦
添加其他功能
|
643
|
|
ad5081d3
孙向锦
初始化项目
|
644
|
PageData userpd = new PageData();
|
bed6e1fc
孙向锦
添加其他功能
|
645
|
userpd = userService.findByUsername(pd); // 通过用户名获取用户信息
|
ad5081d3
孙向锦
初始化项目
|
646
647
|
String ROLE_ID = userpd.get("ROLE_ID").toString();
String ROLE_IDS = userpd.getString("ROLE_IDS");
|
bed6e1fc
孙向锦
添加其他功能
|
648
649
650
651
652
653
|
pd.put("ROLE_ID", ROLE_ID); // 获取角色ID
pd = roleService.findObjectById(pd); // 获取角色信息
map.put("adds", pd.getString("ADD_QX")); // 增
map.put("dels", pd.getString("DEL_QX")); // 删
map.put("edits", pd.getString("EDIT_QX")); // 改
map.put("chas", pd.getString("CHA_QX")); // 查
|
ad5081d3
孙向锦
初始化项目
|
654
|
List<PageData> buttonQXnamelist = new ArrayList<PageData>();
|
bed6e1fc
孙向锦
添加其他功能
|
655
656
657
658
|
if ("admin".equals(USERNAME)) {
buttonQXnamelist = fhbuttonService.listAll(pd); // admin用户拥有所有按钮权限
} else {
if (Tools.notEmpty(ROLE_IDS)) {// (主副职角色综合按钮权限)
|
ad5081d3
孙向锦
初始化项目
|
659
660
|
ROLE_IDS = ROLE_IDS + ROLE_ID;
String arryROLE_ID[] = ROLE_IDS.split(",fh,");
|
bed6e1fc
孙向锦
添加其他功能
|
661
662
663
664
665
|
buttonQXnamelist = buttonrightsService
.listAllBrAndQxnameByZF(arryROLE_ID);
} else { // (主职角色按钮权限)
buttonQXnamelist = buttonrightsService
.listAllBrAndQxname(pd); // 此角色拥有的按钮权限标识列表
|
ad5081d3
孙向锦
初始化项目
|
666
667
|
}
}
|
bed6e1fc
孙向锦
添加其他功能
|
668
669
|
for (int i = 0; i < buttonQXnamelist.size(); i++) {
map.put(buttonQXnamelist.get(i).getString("QX_NAME"), "1"); // 按钮权限
|
ad5081d3
孙向锦
初始化项目
|
670
671
672
|
}
} catch (Exception e) {
logger.error(e.toString(), e);
|
bed6e1fc
孙向锦
添加其他功能
|
673
|
}
|
ad5081d3
孙向锦
初始化项目
|
674
675
|
return map;
}
|
bed6e1fc
孙向锦
添加其他功能
|
676
677
678
679
|
/**
* 获取用户权限(处理副职角色)
*
|
ad5081d3
孙向锦
初始化项目
|
680
681
682
|
* @param session
* @return
*/
|
bed6e1fc
孙向锦
添加其他功能
|
683
|
public Map<String, List<String>> getUQX2(String USERNAME) {
|
ad5081d3
孙向锦
初始化项目
|
684
685
686
687
688
|
PageData pd = new PageData();
Map<String, List<String>> maps = new HashMap<String, List<String>>();
try {
pd.put(Const.SESSION_USERNAME, USERNAME);
PageData userpd = new PageData();
|
bed6e1fc
孙向锦
添加其他功能
|
689
|
userpd = userService.findByUsername(pd); // 通过用户名获取用户信息
|
ad5081d3
孙向锦
初始化项目
|
690
|
String ROLE_IDS = userpd.getString("ROLE_IDS");
|
bed6e1fc
孙向锦
添加其他功能
|
691
|
if (Tools.notEmpty(ROLE_IDS)) {
|
ad5081d3
孙向锦
初始化项目
|
692
693
694
695
696
697
|
String arryROLE_ID[] = ROLE_IDS.split(",fh,");
PageData rolePd = new PageData();
List<String> addsList = new ArrayList<String>();
List<String> delsList = new ArrayList<String>();
List<String> editsList = new ArrayList<String>();
List<String> chasList = new ArrayList<String>();
|
bed6e1fc
孙向锦
添加其他功能
|
698
|
for (int i = 0; i < arryROLE_ID.length; i++) {
|
ad5081d3
孙向锦
初始化项目
|
699
700
701
702
703
704
705
|
rolePd.put("ROLE_ID", arryROLE_ID[i]);
rolePd = roleService.findObjectById(rolePd);
addsList.add(rolePd.getString("ADD_QX"));
delsList.add(rolePd.getString("DEL_QX"));
editsList.add(rolePd.getString("EDIT_QX"));
chasList.add(rolePd.getString("CHA_QX"));
}
|
bed6e1fc
孙向锦
添加其他功能
|
706
707
708
709
|
maps.put("addsList", addsList); // 增
maps.put("delsList", delsList); // 删
maps.put("editsList", editsList); // 改
maps.put("chasList", chasList); // 查
|
ad5081d3
孙向锦
初始化项目
|
710
711
712
|
}
} catch (Exception e) {
logger.error(e.toString(), e);
|
bed6e1fc
孙向锦
添加其他功能
|
713
|
}
|
ad5081d3
孙向锦
初始化项目
|
714
715
|
return maps;
}
|
bed6e1fc
孙向锦
添加其他功能
|
716
717
718
719
|
/**
* 更新登录用户的IP
*
|
ad5081d3
孙向锦
初始化项目
|
720
721
722
|
* @param USERNAME
* @throws Exception
*/
|
bed6e1fc
孙向锦
添加其他功能
|
723
|
public void getRemortIP(String USERNAME) throws Exception {
|
ad5081d3
孙向锦
初始化项目
|
724
725
726
|
PageData pd = new PageData();
HttpServletRequest request = this.getRequest();
String ip = "";
|
bed6e1fc
孙向锦
添加其他功能
|
727
728
729
730
731
|
if (request.getHeader("x-forwarded-for") == null) {
ip = request.getRemoteAddr();
} else {
ip = request.getHeader("x-forwarded-for");
}
|
ad5081d3
孙向锦
初始化项目
|
732
733
734
|
pd.put("USERNAME", USERNAME);
pd.put("IP", ip);
userService.saveIP(pd);
|
bed6e1fc
孙向锦
添加其他功能
|
735
736
|
}
|
ad5081d3
孙向锦
初始化项目
|
737
|
}
|