745d6e4c5d94e8eac8491553a4b45af58a6d0c46.svn-base 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package com.xxl.job.admin.controller;
  2. import com.xxl.job.admin.controller.annotation.PermissionLimit;
  3. import com.xxl.job.admin.core.model.XxlJobGroup;
  4. import com.xxl.job.admin.core.model.XxlJobUser;
  5. import com.xxl.job.admin.core.util.I18nUtil;
  6. import com.xxl.job.admin.dao.XxlJobGroupDao;
  7. import com.xxl.job.admin.dao.XxlJobUserDao;
  8. import com.xxl.job.admin.service.LoginService;
  9. import com.xxl.job.core.biz.model.ReturnT;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.ui.Model;
  12. import org.springframework.util.DigestUtils;
  13. import org.springframework.util.StringUtils;
  14. import org.springframework.web.bind.annotation.RequestMapping;
  15. import org.springframework.web.bind.annotation.RequestParam;
  16. import org.springframework.web.bind.annotation.ResponseBody;
  17. import javax.annotation.Resource;
  18. import javax.servlet.http.HttpServletRequest;
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * @author xuxueli 2019-05-04 16:39:50
  24. */
  25. @Controller
  26. @RequestMapping("/user")
  27. public class UserController {
  28. @Resource
  29. private XxlJobUserDao xxlJobUserDao;
  30. @Resource
  31. private XxlJobGroupDao xxlJobGroupDao;
  32. @RequestMapping
  33. @PermissionLimit(adminuser = true)
  34. public String index(Model model) {
  35. // 执行器列表
  36. List<XxlJobGroup> groupList = xxlJobGroupDao.findAll();
  37. model.addAttribute("groupList", groupList);
  38. return "user/user.index";
  39. }
  40. @RequestMapping("/pageList")
  41. @ResponseBody
  42. @PermissionLimit(adminuser = true)
  43. public Map<String, Object> pageList(@RequestParam(required = false, defaultValue = "0") int start,
  44. @RequestParam(required = false, defaultValue = "10") int length,
  45. String username, int role) {
  46. // page list
  47. List<XxlJobUser> list = xxlJobUserDao.pageList(start, length, username, role);
  48. int list_count = xxlJobUserDao.pageListCount(start, length, username, role);
  49. // package result
  50. Map<String, Object> maps = new HashMap<String, Object>();
  51. maps.put("recordsTotal", list_count); // 总记录数
  52. maps.put("recordsFiltered", list_count); // 过滤后的总记录数
  53. maps.put("data", list); // 分页列表
  54. return maps;
  55. }
  56. @RequestMapping("/add")
  57. @ResponseBody
  58. @PermissionLimit(adminuser = true)
  59. public ReturnT<String> add(XxlJobUser xxlJobUser) {
  60. // valid username
  61. if (!StringUtils.hasText(xxlJobUser.getUsername())) {
  62. return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input")+I18nUtil.getString("user_username") );
  63. }
  64. xxlJobUser.setUsername(xxlJobUser.getUsername().trim());
  65. if (!(xxlJobUser.getUsername().length()>=4 && xxlJobUser.getUsername().length()<=20)) {
  66. return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" );
  67. }
  68. // valid password
  69. if (!StringUtils.hasText(xxlJobUser.getPassword())) {
  70. return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input")+I18nUtil.getString("user_password") );
  71. }
  72. xxlJobUser.setPassword(xxlJobUser.getPassword().trim());
  73. if (!(xxlJobUser.getPassword().length()>=4 && xxlJobUser.getPassword().length()<=20)) {
  74. return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" );
  75. }
  76. // md5 password
  77. xxlJobUser.setPassword(DigestUtils.md5DigestAsHex(xxlJobUser.getPassword().getBytes()));
  78. // check repeat
  79. XxlJobUser existUser = xxlJobUserDao.loadByUserName(xxlJobUser.getUsername());
  80. if (existUser != null) {
  81. return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("user_username_repeat") );
  82. }
  83. // write
  84. xxlJobUserDao.save(xxlJobUser);
  85. return ReturnT.SUCCESS;
  86. }
  87. @RequestMapping("/update")
  88. @ResponseBody
  89. @PermissionLimit(adminuser = true)
  90. public ReturnT<String> update(HttpServletRequest request, XxlJobUser xxlJobUser) {
  91. // avoid opt login seft
  92. XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
  93. if (loginUser.getUsername().equals(xxlJobUser.getUsername())) {
  94. return new ReturnT<String>(ReturnT.FAIL.getCode(), I18nUtil.getString("user_update_loginuser_limit"));
  95. }
  96. // valid password
  97. if (StringUtils.hasText(xxlJobUser.getPassword())) {
  98. xxlJobUser.setPassword(xxlJobUser.getPassword().trim());
  99. if (!(xxlJobUser.getPassword().length()>=4 && xxlJobUser.getPassword().length()<=20)) {
  100. return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" );
  101. }
  102. // md5 password
  103. xxlJobUser.setPassword(DigestUtils.md5DigestAsHex(xxlJobUser.getPassword().getBytes()));
  104. } else {
  105. xxlJobUser.setPassword(null);
  106. }
  107. // write
  108. xxlJobUserDao.update(xxlJobUser);
  109. return ReturnT.SUCCESS;
  110. }
  111. @RequestMapping("/remove")
  112. @ResponseBody
  113. @PermissionLimit(adminuser = true)
  114. public ReturnT<String> remove(HttpServletRequest request, int id) {
  115. // avoid opt login seft
  116. XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
  117. if (loginUser.getId() == id) {
  118. return new ReturnT<String>(ReturnT.FAIL.getCode(), I18nUtil.getString("user_update_loginuser_limit"));
  119. }
  120. xxlJobUserDao.delete(id);
  121. return ReturnT.SUCCESS;
  122. }
  123. @RequestMapping("/updatePwd")
  124. @ResponseBody
  125. public ReturnT<String> updatePwd(HttpServletRequest request, String password){
  126. // valid password
  127. if (password==null || password.trim().length()==0){
  128. return new ReturnT<String>(ReturnT.FAIL.getCode(), "密码不可为空");
  129. }
  130. password = password.trim();
  131. if (!(password.length()>=4 && password.length()<=20)) {
  132. return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" );
  133. }
  134. // md5 password
  135. String md5Password = DigestUtils.md5DigestAsHex(password.getBytes());
  136. // update pwd
  137. XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
  138. // do write
  139. XxlJobUser existUser = xxlJobUserDao.loadByUserName(loginUser.getUsername());
  140. existUser.setPassword(md5Password);
  141. xxlJobUserDao.update(existUser);
  142. return ReturnT.SUCCESS;
  143. }
  144. }