IndexController.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package com.xxl.job.admin.controller;
  2. import com.xxl.job.admin.controller.annotation.PermessionLimit;
  3. import com.xxl.job.admin.controller.interceptor.PermissionInterceptor;
  4. import com.xxl.job.admin.core.util.I18nUtil;
  5. import com.xxl.job.admin.service.XxlJobService;
  6. import com.xxl.job.core.biz.model.ReturnT;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.beans.propertyeditors.CustomDateEditor;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.ui.Model;
  11. import org.springframework.web.bind.WebDataBinder;
  12. import org.springframework.web.bind.annotation.InitBinder;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RequestMethod;
  15. import org.springframework.web.bind.annotation.ResponseBody;
  16. import javax.annotation.Resource;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.text.SimpleDateFormat;
  20. import java.util.Date;
  21. import java.util.Map;
  22. /**
  23. * index controller
  24. * @author xuxueli 2015-12-19 16:13:16
  25. */
  26. @Controller
  27. public class IndexController {
  28. @Resource
  29. private XxlJobService xxlJobService;
  30. @RequestMapping("/")
  31. public String index(Model model) {
  32. Map<String, Object> dashboardMap = xxlJobService.dashboardInfo();
  33. model.addAllAttributes(dashboardMap);
  34. return "index";
  35. }
  36. @RequestMapping("/chartInfo")
  37. @ResponseBody
  38. public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) {
  39. ReturnT<Map<String, Object>> chartInfo = xxlJobService.chartInfo(startDate, endDate);
  40. return chartInfo;
  41. }
  42. @RequestMapping("/toLogin")
  43. @PermessionLimit(limit=false)
  44. public String toLogin(Model model, HttpServletRequest request) {
  45. if (PermissionInterceptor.ifLogin(request)) {
  46. return "redirect:/";
  47. }
  48. return "login";
  49. }
  50. @RequestMapping(value="login", method=RequestMethod.POST)
  51. @ResponseBody
  52. @PermessionLimit(limit=false)
  53. public ReturnT<String> loginDo(HttpServletRequest request, HttpServletResponse response, String userName, String password, String ifRemember){
  54. // valid
  55. if (PermissionInterceptor.ifLogin(request)) {
  56. return ReturnT.SUCCESS;
  57. }
  58. // param
  59. if (StringUtils.isBlank(userName) || StringUtils.isBlank(password)){
  60. return new ReturnT<String>(500, I18nUtil.getString("login_param_empty"));
  61. }
  62. boolean ifRem = (StringUtils.isNotBlank(ifRemember) && "on".equals(ifRemember))?true:false;
  63. // do login
  64. boolean loginRet = PermissionInterceptor.login(response, userName, password, ifRem);
  65. if (!loginRet) {
  66. return new ReturnT<String>(500, I18nUtil.getString("login_param_unvalid"));
  67. }
  68. return ReturnT.SUCCESS;
  69. }
  70. @RequestMapping(value="logout", method=RequestMethod.POST)
  71. @ResponseBody
  72. @PermessionLimit(limit=false)
  73. public ReturnT<String> logout(HttpServletRequest request, HttpServletResponse response){
  74. if (PermissionInterceptor.ifLogin(request)) {
  75. PermissionInterceptor.logout(request, response);
  76. }
  77. return ReturnT.SUCCESS;
  78. }
  79. @RequestMapping("/help")
  80. public String help() {
  81. /*if (!PermissionInterceptor.ifLogin(request)) {
  82. return "redirect:/toLogin";
  83. }*/
  84. return "help";
  85. }
  86. @InitBinder
  87. public void initBinder(WebDataBinder binder) {
  88. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  89. dateFormat.setLenient(false);
  90. binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
  91. }
  92. }