|
@@ -31,18 +31,16 @@ import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
|
@Controller
|
|
|
public class LoginController {
|
|
|
|
|
|
- protected static final String INDEX_VIEW = "modules/sys/index";
|
|
|
-
|
|
|
protected static final String AP_INDEX_VIEW = "modules/sys/indexAp";
|
|
|
|
|
|
- protected static final String SYS_LOGIN_VIEW = "modules/sys/sysLogin";
|
|
|
-
|
|
|
protected static final String AP_SYS_LOGIN_VIEW = "modules/sys/sysLoginAp";
|
|
|
|
|
|
- protected static final String MARK_LOGIN_VIEW = "modules/sys/markLogin";
|
|
|
-
|
|
|
protected static final String AP_MARK_LOGIN_VIEW = "modules/sys/markLoginAp";
|
|
|
|
|
|
+ protected static final String LOGIN_VIEW = "modules/sys/login";
|
|
|
+
|
|
|
+ private static final String LOGIN_TYPE_KEY = "loginType";
|
|
|
+
|
|
|
@Autowired
|
|
|
private UserService userService;
|
|
|
|
|
@@ -51,32 +49,35 @@ public class LoginController {
|
|
|
|
|
|
@Autowired
|
|
|
private ExamSubjectService examSubjectService;
|
|
|
-
|
|
|
+
|
|
|
@Autowired
|
|
|
private ExamService examService;
|
|
|
|
|
|
@Value("${app.index}")
|
|
|
private String appIndex;
|
|
|
+
|
|
|
+ @Value("${index.logo}")
|
|
|
+ private String indexLogo;
|
|
|
|
|
|
@RequestMapping(value = { "/", "", "/index" })
|
|
|
public ModelAndView index(HttpServletRequest request) {
|
|
|
if ("aopeng".equals(appIndex)) {
|
|
|
return new ModelAndView(AP_INDEX_VIEW);
|
|
|
}
|
|
|
- return new ModelAndView(INDEX_VIEW);
|
|
|
+ return new ModelAndView("redirect:/login");
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/admin-login", method = RequestMethod.GET)
|
|
|
public ModelAndView adminIndex(HttpServletRequest request) {
|
|
|
- // StmmsSession session = RequestUtils.getSession(request);
|
|
|
- // if (StringUtils.isNotBlank(session.getParameter("userId"))) {
|
|
|
- // return new ModelAndView("modules/sys/examIndex");
|
|
|
- // } else {
|
|
|
if ("aopeng".equals(appIndex)) {
|
|
|
return new ModelAndView(AP_SYS_LOGIN_VIEW);
|
|
|
}
|
|
|
- return new ModelAndView(SYS_LOGIN_VIEW);
|
|
|
- // }
|
|
|
+ StmmsSession session = RequestUtils.getSession(request);
|
|
|
+ session.setParameter(LOGIN_TYPE_KEY, null);
|
|
|
+ ModelAndView view = new ModelAndView(LOGIN_VIEW);
|
|
|
+ view.addObject("indexLogo", indexLogo);
|
|
|
+ view.addObject("showType", "admin-login");
|
|
|
+ return view;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -89,54 +90,161 @@ public class LoginController {
|
|
|
*/
|
|
|
@RequestMapping(value = "/admin-login", method = RequestMethod.POST)
|
|
|
public ModelAndView adminLogin(User user, HttpServletRequest request, HttpServletResponse response) {
|
|
|
+ StmmsSession session = RequestUtils.getSession(request);
|
|
|
User u = userService.findByLoginNameAndStatus(user.getLoginName());
|
|
|
if (u != null) {
|
|
|
- if (u.getPassword().equals(Md5EncryptUtils.md5(user.getPassword()))) {
|
|
|
- u.setLastLoginTime(new Date());
|
|
|
- u.setLastLoginIp(request.getRemoteAddr());
|
|
|
- userService.save(u);
|
|
|
+ return adminLogin(u, user.getPassword(), request, session);
|
|
|
+ } else {
|
|
|
+ if ("aopeng".equals(appIndex)) {
|
|
|
+ ModelAndView aPview = new ModelAndView(AP_SYS_LOGIN_VIEW);
|
|
|
+ aPview.addObject("message", "无此用户");
|
|
|
+ return aPview;
|
|
|
+ }
|
|
|
+ ModelAndView modelAndView = new ModelAndView(LOGIN_VIEW);
|
|
|
+ modelAndView.addObject("message", "无此用户");
|
|
|
+ return modelAndView;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- StmmsSession session = RequestUtils.getSession(request);
|
|
|
- new WebUser(u.getId(), u.getType()).writeToSession(session);
|
|
|
+ @RequestMapping(value = "/login", method = RequestMethod.GET)
|
|
|
+ public ModelAndView login(HttpServletRequest request) {
|
|
|
+ StmmsSession session = RequestUtils.getSession(request);
|
|
|
+ session.setParameter(LOGIN_TYPE_KEY, null);
|
|
|
+ ModelAndView view = new ModelAndView(LOGIN_VIEW);
|
|
|
+ view.addObject("indexLogo", indexLogo);
|
|
|
+ view.addObject("showType", "admin-login");
|
|
|
+ return view;
|
|
|
+ }
|
|
|
|
|
|
- if (u.getType() == UserType.ADMIN || u.getType() == UserType.VIEWER
|
|
|
- || u.getType() == UserType.SCHOOLVIEWER) {
|
|
|
- if (u.getType() == UserType.VIEWER) {// 科组长
|
|
|
- String examId = u.getLoginName().split("-")[0];
|
|
|
- String subjectCode = u.getLoginName().split("-")[1];
|
|
|
- session.setParameter("examId", examId);
|
|
|
- session.setParameter("subjectCode", subjectCode);
|
|
|
- }
|
|
|
- ModelAndView modelAndView = new ModelAndView("redirect:admin/home");
|
|
|
- return modelAndView;
|
|
|
- } else {
|
|
|
- if ("aopeng".equals(appIndex)) {
|
|
|
- ModelAndView aPview = new ModelAndView(AP_SYS_LOGIN_VIEW);
|
|
|
- aPview.addObject("message", "无此类型的用户");
|
|
|
- return aPview;
|
|
|
- }
|
|
|
- ModelAndView view = new ModelAndView(SYS_LOGIN_VIEW);
|
|
|
- view.addObject("message", "无此类型的用户");
|
|
|
- return view;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 科组长、评卷员登录
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @param loginType
|
|
|
+ * @param examId
|
|
|
+ * @param code
|
|
|
+ * @param password
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/mark-login", method = RequestMethod.POST)
|
|
|
+ public ModelAndView login(HttpServletRequest request, @RequestParam String loginName, @RequestParam String password) {
|
|
|
+ Marker marker = markerService.findByLoginName(loginName);
|
|
|
+ if (marker != null) {
|
|
|
+ return markerLogin(request, marker, password);
|
|
|
+ }
|
|
|
+ // SubjectHeader header =
|
|
|
+ // subjectHeaderService.findByLoginName(loginName);
|
|
|
+ // if (header != null) {
|
|
|
+ // return subjectHeaderLogin(request, header, password);
|
|
|
+ // }
|
|
|
+ if ("aopeng".equals(appIndex)) {
|
|
|
+ ModelAndView aPview = new ModelAndView(AP_MARK_LOGIN_VIEW);
|
|
|
+ aPview.addObject("message", "帐号不存在");
|
|
|
+ return aPview;
|
|
|
+ }
|
|
|
+ ModelAndView view = new ModelAndView(LOGIN_VIEW);
|
|
|
+ view.addObject("message", "帐号不存在");
|
|
|
+ return view;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 登录
|
|
|
+ *
|
|
|
+ * @param user
|
|
|
+ * @param request
|
|
|
+ * @param response
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/login", method = RequestMethod.POST)
|
|
|
+ public ModelAndView adminLogin(User user, @RequestParam(required = false) String showType,
|
|
|
+ HttpServletRequest request, HttpServletResponse response) {
|
|
|
+ StmmsSession session = RequestUtils.getSession(request);
|
|
|
+ String loginType = session.getParameter(LOGIN_TYPE_KEY);
|
|
|
+ // 管理员
|
|
|
+ if ("admin-login".equals(showType)) {
|
|
|
+ User u = userService.findByLoginNameAndStatus(user.getLoginName());
|
|
|
+ if (u != null) {
|
|
|
+ return adminLogin(u, user.getPassword(), request, session);
|
|
|
} else {
|
|
|
if ("aopeng".equals(appIndex)) {
|
|
|
ModelAndView aPview = new ModelAndView(AP_SYS_LOGIN_VIEW);
|
|
|
- aPview.addObject("message", "密码错误");
|
|
|
+ aPview.addObject("message", "无此用户");
|
|
|
return aPview;
|
|
|
}
|
|
|
- ModelAndView modelAndView = new ModelAndView(SYS_LOGIN_VIEW);
|
|
|
- modelAndView.addObject("message", "密码错误");
|
|
|
+ ModelAndView modelAndView = new ModelAndView(LOGIN_VIEW);
|
|
|
+ modelAndView.addObject("message", "无此用户");
|
|
|
+ modelAndView.addObject("showType", showType);
|
|
|
+ modelAndView.addObject("indexLogo", indexLogo);
|
|
|
return modelAndView;
|
|
|
}
|
|
|
+ } else if ("mark-login".equals(showType) || "mark-login".equals(loginType)) {
|
|
|
+ Marker marker = markerService.findByLoginName(user.getLoginName());
|
|
|
+ if (marker != null) {
|
|
|
+ return markerLogin(request, marker, user.getPassword());
|
|
|
+ }
|
|
|
+ if ("aopeng".equals(appIndex)) {
|
|
|
+ ModelAndView aPview = new ModelAndView(AP_MARK_LOGIN_VIEW);
|
|
|
+ aPview.addObject("message", "帐号不存在");
|
|
|
+ return aPview;
|
|
|
+ }
|
|
|
+ ModelAndView view = new ModelAndView(LOGIN_VIEW);
|
|
|
+ view.addObject("message", "帐号不存在");
|
|
|
+ view.addObject("showType", showType);
|
|
|
+ view.addObject("indexLogo", indexLogo);
|
|
|
+ return view;
|
|
|
+ } else {
|
|
|
+ return new ModelAndView("redirect:/login");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 管理员登录
|
|
|
+ * @param u
|
|
|
+ * @param password
|
|
|
+ * @param request
|
|
|
+ * @param session
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private ModelAndView adminLogin(User u, String password, HttpServletRequest request, StmmsSession session) {
|
|
|
+ if (u.getPassword().equals(Md5EncryptUtils.md5(password))) {
|
|
|
+ u.setLastLoginTime(new Date());
|
|
|
+ u.setLastLoginIp(request.getRemoteAddr());
|
|
|
+ userService.save(u);
|
|
|
+
|
|
|
+ new WebUser(u.getId(), u.getType()).writeToSession(session);
|
|
|
+
|
|
|
+ if (u.getType() == UserType.ADMIN || u.getType() == UserType.VIEWER || u.getType() == UserType.SCHOOLVIEWER) {
|
|
|
+ if (u.getType() == UserType.VIEWER) {// 科组长
|
|
|
+ String examId = u.getLoginName().split("-")[0];
|
|
|
+ String subjectCode = u.getLoginName().split("-")[1];
|
|
|
+ session.setParameter("examId", examId);
|
|
|
+ session.setParameter("subjectCode", subjectCode);
|
|
|
+ }
|
|
|
+ ModelAndView modelAndView = new ModelAndView("redirect:admin/home");
|
|
|
+ return modelAndView;
|
|
|
+ } else {
|
|
|
+ if ("aopeng".equals(appIndex)) {
|
|
|
+ ModelAndView aPview = new ModelAndView(AP_SYS_LOGIN_VIEW);
|
|
|
+ aPview.addObject("message", "无此类型的用户");
|
|
|
+ return aPview;
|
|
|
+ }
|
|
|
+ ModelAndView view = new ModelAndView(LOGIN_VIEW);
|
|
|
+ view.addObject("message", "无此类型的用户");
|
|
|
+ view.addObject("showType", "admin-login");
|
|
|
+ view.addObject("indexLogo", indexLogo);
|
|
|
+ return view;
|
|
|
+ }
|
|
|
} else {
|
|
|
if ("aopeng".equals(appIndex)) {
|
|
|
ModelAndView aPview = new ModelAndView(AP_SYS_LOGIN_VIEW);
|
|
|
- aPview.addObject("message", "无此用户");
|
|
|
+ aPview.addObject("message", "密码错误");
|
|
|
return aPview;
|
|
|
}
|
|
|
- ModelAndView modelAndView = new ModelAndView(SYS_LOGIN_VIEW);
|
|
|
- modelAndView.addObject("message", "无此用户");
|
|
|
+ ModelAndView modelAndView = new ModelAndView(LOGIN_VIEW);
|
|
|
+ modelAndView.addObject("message", "密码错误");
|
|
|
+ modelAndView.addObject("showType", "admin-login");
|
|
|
+ modelAndView.addObject("indexLogo", indexLogo);
|
|
|
return modelAndView;
|
|
|
}
|
|
|
}
|
|
@@ -163,50 +271,20 @@ public class LoginController {
|
|
|
*/
|
|
|
@RequestMapping(value = "/mark-login", method = RequestMethod.GET)
|
|
|
public ModelAndView loginInit(HttpServletRequest request, @RequestParam(required = false) String message) {
|
|
|
-
|
|
|
if ("aopeng".equals(appIndex)) {
|
|
|
ModelAndView aPview = new ModelAndView(AP_MARK_LOGIN_VIEW);
|
|
|
aPview.addObject("message", StringUtils.trimToNull(message));
|
|
|
return aPview;
|
|
|
}
|
|
|
- ModelAndView modelAndView = new ModelAndView(MARK_LOGIN_VIEW);
|
|
|
+ StmmsSession session = RequestUtils.getSession(request);
|
|
|
+ session.setParameter(LOGIN_TYPE_KEY, "mark-login");
|
|
|
+ ModelAndView modelAndView = new ModelAndView(LOGIN_VIEW);
|
|
|
modelAndView.addObject("message", StringUtils.trimToNull(message));
|
|
|
+ modelAndView.addObject(LOGIN_TYPE_KEY, "mark-login");
|
|
|
+ modelAndView.addObject("indexLogo", indexLogo);
|
|
|
return modelAndView;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 科组长、评卷员登录
|
|
|
- *
|
|
|
- * @param request
|
|
|
- * @param loginType
|
|
|
- * @param examId
|
|
|
- * @param code
|
|
|
- * @param password
|
|
|
- * @return
|
|
|
- */
|
|
|
- @RequestMapping(value = "/mark-login", method = RequestMethod.POST)
|
|
|
- public ModelAndView login(HttpServletRequest request, @RequestParam String loginName,
|
|
|
- @RequestParam String password) {
|
|
|
- Marker marker = markerService.findByLoginName(loginName);
|
|
|
- if (marker != null) {
|
|
|
- return markerLogin(request, marker, password);
|
|
|
- }
|
|
|
-
|
|
|
- // SubjectHeader header =
|
|
|
- // subjectHeaderService.findByLoginName(loginName);
|
|
|
- // if (header != null) {
|
|
|
- // return subjectHeaderLogin(request, header, password);
|
|
|
- // }
|
|
|
- if ("aopeng".equals(appIndex)) {
|
|
|
- ModelAndView aPview = new ModelAndView(AP_MARK_LOGIN_VIEW);
|
|
|
- aPview.addObject("message", "帐号不存在");
|
|
|
- return aPview;
|
|
|
- }
|
|
|
- ModelAndView view = new ModelAndView(MARK_LOGIN_VIEW);
|
|
|
- view.addObject("message", "帐号不存在");
|
|
|
- return view;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 评卷员登录
|
|
|
*
|
|
@@ -216,7 +294,7 @@ public class LoginController {
|
|
|
* @return
|
|
|
*/
|
|
|
public ModelAndView markerLogin(HttpServletRequest request, Marker marker, String password) {
|
|
|
- ModelAndView modelAndView = new ModelAndView(MARK_LOGIN_VIEW);
|
|
|
+ ModelAndView modelAndView = new ModelAndView(LOGIN_VIEW);
|
|
|
ModelAndView modelAndViewForAP = new ModelAndView(AP_MARK_LOGIN_VIEW);
|
|
|
if (!marker.getPassword().equals(password)) {
|
|
|
if ("aopeng".equals(appIndex)) {
|
|
@@ -224,6 +302,8 @@ public class LoginController {
|
|
|
return modelAndViewForAP;
|
|
|
}
|
|
|
modelAndView.addObject("message", "密码错误");
|
|
|
+ modelAndView.addObject("indexLogo", indexLogo);
|
|
|
+ modelAndView.addObject("showType", "mark-login");
|
|
|
return modelAndView;
|
|
|
}
|
|
|
if (marker.isEnable() == false) {
|
|
@@ -232,21 +312,25 @@ public class LoginController {
|
|
|
return modelAndViewForAP;
|
|
|
}
|
|
|
modelAndView.addObject("message", "帐号已禁用");
|
|
|
+ modelAndView.addObject("indexLogo", indexLogo);
|
|
|
+ modelAndView.addObject("showType", "mark-login");
|
|
|
return modelAndView;
|
|
|
}
|
|
|
Exam exam = examService.findById(marker.getExamId());
|
|
|
Date now = new Date();
|
|
|
- if((exam.getStartTime()!=null&&now.before(exam.getStartTime()))
|
|
|
- || (exam.getEndTime()!=null&&now.after(exam.getEndTime()))){
|
|
|
+ if ((exam.getStartTime() != null && now.before(exam.getStartTime()))
|
|
|
+ || (exam.getEndTime() != null && now.after(exam.getEndTime()))) {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- String start = exam.getStartTime()==null?"":" 开始时间:"+sdf.format(exam.getStartTime());
|
|
|
- String end = exam.getEndTime()==null?"":" 结束时间:"+sdf.format(exam.getEndTime());
|
|
|
+ String start = exam.getStartTime() == null ? "" : " 开始时间:" + sdf.format(exam.getStartTime());
|
|
|
+ String end = exam.getEndTime() == null ? "" : " 结束时间:" + sdf.format(exam.getEndTime());
|
|
|
if ("aopeng".equals(appIndex)) {
|
|
|
- modelAndViewForAP.addObject("message", "不在评卷时间范围,"+start+" "+end);
|
|
|
+ modelAndViewForAP.addObject("message", "不在评卷时间范围," + start + " " + end);
|
|
|
return modelAndViewForAP;
|
|
|
}
|
|
|
- modelAndView.addObject("message", "不在评卷时间范围 "+start+" "+end);
|
|
|
- return modelAndView;
|
|
|
+ modelAndView.addObject("message", "不在评卷时间范围 " + start + " " + end);
|
|
|
+ modelAndView.addObject("indexLogo", indexLogo);
|
|
|
+ modelAndView.addObject("showType", "mark-login");
|
|
|
+ return modelAndView;
|
|
|
}
|
|
|
|
|
|
new WebUser(marker.getId(), UserType.MARKER).writeToSession(RequestUtils.getSession(request));
|
|
@@ -254,11 +338,11 @@ public class LoginController {
|
|
|
if (marker.getLastLoginTime() == null) {
|
|
|
return new ModelAndView("redirect:/mark/reset");
|
|
|
} else {
|
|
|
- marker.setLastLoginTime(new Date());
|
|
|
- marker.setLastLoginIp(request.getRemoteAddr());
|
|
|
- markerService.save(marker);
|
|
|
+ marker.setLastLoginTime(new Date());
|
|
|
+ marker.setLastLoginIp(request.getRemoteAddr());
|
|
|
+ markerService.save(marker);
|
|
|
return new ModelAndView("redirect:/mark/subject-select");
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|