BaseController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package com.fdkankan.ucenter.common;
  2. import com.fdkankan.common.util.DateEditor;
  3. import com.fdkankan.common.util.JwtUtil;
  4. import com.fdkankan.ucenter.common.constants.NacosProperty;
  5. import com.fdkankan.ucenter.entity.User;
  6. import com.fdkankan.ucenter.service.IUserService;
  7. import com.fdkankan.ucenter.util.DateUserUtil;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.propertyeditors.StringTrimmerEditor;
  11. import org.springframework.data.domain.PageRequest;
  12. import org.springframework.data.domain.Sort;
  13. import org.springframework.data.domain.Sort.Direction;
  14. import org.springframework.util.StringUtils;
  15. import org.springframework.web.bind.WebDataBinder;
  16. import org.springframework.web.bind.annotation.InitBinder;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.io.*;
  20. import java.util.Date;
  21. @Slf4j
  22. public class BaseController {
  23. @Autowired
  24. protected HttpServletRequest request;
  25. @Autowired
  26. protected HttpServletResponse response;
  27. @Autowired
  28. IUserService userService;
  29. @InitBinder
  30. protected void initBinder(WebDataBinder webDataBinder) {
  31. webDataBinder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
  32. webDataBinder.registerCustomEditor(Date.class, new DateEditor(true));
  33. }
  34. /**
  35. * 带参重定向
  36. *
  37. * @param path
  38. * @return
  39. */
  40. protected String redirect(String path) {
  41. return "redirect:" + path;
  42. }
  43. /**
  44. * 不带参重定向
  45. *
  46. * @param response
  47. * @param path
  48. * @return
  49. */
  50. protected String redirect(HttpServletResponse response, String path) {
  51. try {
  52. response.sendRedirect(path);
  53. } catch (IOException e) {
  54. e.printStackTrace();
  55. }
  56. return null;
  57. }
  58. public static void output(HttpServletResponse resp, File file) {
  59. OutputStream os = null;
  60. BufferedInputStream bis = null;
  61. byte[] buff = new byte[1024];
  62. try {
  63. os = resp.getOutputStream();
  64. bis = new BufferedInputStream(new FileInputStream(file));
  65. int i = 0;
  66. while ((i = bis.read(buff)) != -1) {
  67. os.write(buff, 0, i);
  68. os.flush();
  69. }
  70. } catch (IOException e) {
  71. e.printStackTrace();
  72. } finally {
  73. try {
  74. bis.close();
  75. } catch (IOException e) {
  76. e.printStackTrace();
  77. }
  78. }
  79. }
  80. protected String getToken(){
  81. return request.getHeader("token");
  82. }
  83. protected Long getUserId(){
  84. String token = request.getHeader("token");
  85. if(StringUtils.isEmpty(token)){
  86. return null;
  87. }
  88. String username = JwtUtil.getUsername(token);
  89. User user = userService.getByUserName(username);
  90. if(user == null){
  91. return null;
  92. }
  93. return user.getId();
  94. }
  95. protected String getLang(){
  96. return StringUtils.isEmpty(request.getHeader("lang")) ? "en":request.getHeader("lang");
  97. }
  98. protected String getSign(){
  99. return request.getHeader("sign");
  100. }
  101. protected Integer getTimeZone(){
  102. Integer minute = 0;
  103. String timeZone = request.getHeader("timeZone");
  104. try {
  105. if(!StringUtils.isEmpty(timeZone)){
  106. minute = Integer.parseInt(timeZone);
  107. }
  108. }catch (Exception e){
  109. log.error("getClientTime-error:requestHeaderTimeZone:{}",timeZone,e);
  110. }
  111. if(!NacosProperty.activeFile.contains("eur")){
  112. minute += 480;
  113. }
  114. return minute;
  115. }
  116. protected String getClientTime(){
  117. return DateUserUtil.AddMinute(new Date(),getTimeZone());
  118. }
  119. }