AdminController.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package cn.efunbox.audio.controller;
  2. import cn.efunbox.audio.consts.Consts;
  3. import cn.efunbox.audio.entity.Admin;
  4. import cn.efunbox.audio.service.AdminService;
  5. import cn.efunbox.audio.utils.ApiCode;
  6. import cn.efunbox.audio.utils.Common;
  7. import cn.efunbox.audio.utils.HttpUtil;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.data.redis.core.StringRedisTemplate;
  12. import org.springframework.data.redis.core.ValueOperations;
  13. import org.springframework.web.bind.annotation.RequestBody;
  14. import org.springframework.web.bind.annotation.RequestMapping;
  15. import org.springframework.web.bind.annotation.RequestMethod;
  16. import org.springframework.web.bind.annotation.RestController;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.UUID;
  22. import java.util.concurrent.TimeUnit;
  23. /**
  24. * Created by yao on 17-9-26.
  25. */
  26. @RestController
  27. @Slf4j
  28. @RequestMapping(value = "/admin")
  29. public class AdminController {
  30. @Autowired
  31. AdminService adminService;
  32. @Autowired
  33. StringRedisTemplate stringRedisTemplate;
  34. @Value("${admin.token.expire}")
  35. int tokenExpire = 24*30;
  36. @RequestMapping(value = "/login" ,method = RequestMethod.POST)
  37. public void Search(HttpServletRequest request, HttpServletResponse response){
  38. String name = request.getParameter("name");
  39. String pwd = request.getParameter("pwd");
  40. if(name==null && pwd==null){
  41. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  42. return;
  43. }
  44. List<Admin> list = adminService.SearchByName(name);
  45. if(list==null || list.size()<1){
  46. HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
  47. return;
  48. }
  49. Admin admin = list.get(0);
  50. String pwdMD5 = Common.getMD5(Common.getMD5(pwd)+admin.getSalt());
  51. // System.out.println(pwdMD5);
  52. // System.out.println(admin.getPwd());
  53. if(pwdMD5.equalsIgnoreCase(admin.getPwd())){
  54. String token = UUID.randomUUID().toString().replaceAll("-", "");
  55. admin.setToken(token);
  56. adminService.Update(admin);
  57. admin.setPwd("");
  58. admin.setSalt("");
  59. SaveRedis(admin);
  60. HttpUtil.responseOkData(request, response, admin);
  61. }else
  62. HttpUtil.responseApiCode(request, response, ApiCode.INVALID_TOKEN);
  63. return;
  64. }
  65. // @RequestMapping(value = "/register", method = RequestMethod.POST)
  66. // public void Insert(HttpServletRequest request, HttpServletResponse response){
  67. // String name = request.getParameter("name");
  68. // String pwd = request.getParameter("pwd");
  69. // String idChannel = request.getParameter("idChannel");
  70. // if(name==null || name.length()<4 || pwd==null || pwd.length()<4){
  71. // HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  72. // return;
  73. // }
  74. // if(idChannel==null || idChannel.length()==0)
  75. // idChannel = "0";
  76. // String salt = UUID.randomUUID().toString().replaceAll("-","");
  77. // String token = UUID.randomUUID().toString().replaceAll("-", "");
  78. // String pwdMD5 = Common.getMD5(Common.getMD5(pwd) + salt);
  79. //
  80. // List<Admin> list = adminService.SearchByName(name);
  81. // if(list!=null && list.size()>0){
  82. // HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
  83. // return;
  84. // }
  85. // Admin admin = new Admin();
  86. // admin.setName(name);
  87. // admin.setIdChannel(Long.valueOf(idChannel));
  88. // admin.setPwd(pwdMD5);
  89. // admin.setSalt(salt);
  90. // admin.setToken(token);
  91. // admin.setCreated(new Date());
  92. // admin = adminService.Insert(admin);
  93. // SaveRedis(admin);
  94. //
  95. // HttpUtil.responseOutWithJson(request, response, admin);
  96. // return;
  97. // }
  98. @RequestMapping(value = "/register", method = RequestMethod.POST)
  99. public void Insert(HttpServletRequest request, HttpServletResponse response, @RequestBody Admin admin){
  100. String name = admin.getName();
  101. String pwd = admin.getPwd();
  102. if(name==null || name.length()<4 || pwd==null || pwd.length()<4){
  103. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  104. return;
  105. }
  106. String salt = UUID.randomUUID().toString().replaceAll("-","");
  107. String token = UUID.randomUUID().toString().replaceAll("-", "");
  108. String pwdMD5 = Common.getMD5(Common.getMD5(pwd) + salt);
  109. List<Admin> list = adminService.SearchByName(name);
  110. if(list!=null && list.size()>0){
  111. HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
  112. return;
  113. }
  114. admin.setPwd(pwdMD5);
  115. admin.setSalt(salt);
  116. admin.setToken(token);
  117. admin.setCreated(new Date());
  118. admin = adminService.Insert(admin);
  119. SaveRedis(admin);
  120. HttpUtil.responseOutWithJson(request, response, admin);
  121. return;
  122. }
  123. /**
  124. * 将token放入redis
  125. * @param admin
  126. */
  127. public void SaveRedis(Admin admin){
  128. ValueOperations valueOperations = stringRedisTemplate.opsForValue();
  129. valueOperations.set(Consts.REDIS_ADMIN+admin.getId(), admin.getToken(), tokenExpire*3600, TimeUnit.SECONDS);
  130. }
  131. }