BaseController.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package com.goafanti.common.controller;
  2. import java.text.DateFormat;
  3. import java.text.MessageFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Calendar;
  6. import java.util.Date;
  7. import javax.annotation.Resource;
  8. import javax.servlet.http.HttpServletRequest;
  9. import org.apache.commons.lang3.StringUtils;
  10. import org.apache.shiro.SecurityUtils;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.beans.propertyeditors.CustomDateEditor;
  13. import org.springframework.core.io.support.ResourcePropertySource;
  14. import org.springframework.stereotype.Controller;
  15. import org.springframework.ui.Model;
  16. import org.springframework.web.bind.WebDataBinder;
  17. import org.springframework.web.bind.annotation.InitBinder;
  18. import org.springframework.web.bind.annotation.ModelAttribute;
  19. import com.goafanti.common.bo.Error;
  20. import com.goafanti.common.constant.AFTConstants;
  21. import com.goafanti.common.model.Admin;
  22. import com.goafanti.common.model.User;
  23. import com.goafanti.core.shiro.token.TokenManager;
  24. @Controller
  25. public class BaseController {
  26. @Resource(name = "errorResource")
  27. private ResourcePropertySource errorResource;
  28. @Value(value = "${static.host}")
  29. private String staticHost = null;
  30. @Value(value = "${skjt.host}")
  31. private String skjtHost = null;
  32. @Value(value = "${avatar.host}")
  33. private String avatarHost = null;
  34. @Value(value = "${upload.path}")
  35. private String uploadPath = null;
  36. @Value(value = "${upload.private.path}")
  37. private String uploadPrivatePath = null;
  38. @Value(value = "${accessKey}")
  39. private String accessKey = null;
  40. @Value(value = "${accessSecret}")
  41. private String accessSecret = null;
  42. @Value(value = "${portal.host}")
  43. private String portalHost = null;
  44. @Value(value = "${avatar.upload.host}")
  45. private String avatarUploadHost = null;
  46. @Value(value = "${video.server}")
  47. private String videoServer = null;
  48. protected Error buildError(String key) {
  49. return buildError(key, null);
  50. }
  51. protected Error buildError(String key, String message) {
  52. String msg = (String) errorResource.getProperty(key);
  53. if (StringUtils.isEmpty(msg)) {
  54. msg = message;
  55. }else {
  56. msg=MessageFormat.format(msg, message);
  57. }
  58. return new Error(key, msg);
  59. }
  60. /**
  61. * 带参数的error message
  62. *
  63. * @param key
  64. * @param message
  65. * @param object
  66. * @return
  67. */
  68. protected Error buildError(String key, String message, Object... object) {
  69. String msg = (String) errorResource.getProperty(key);
  70. if (StringUtils.isEmpty(msg)) {
  71. msg = message;
  72. }
  73. msg = MessageFormat.format(msg, object);
  74. return new Error(key, msg);
  75. }
  76. protected Error buildErrorByMsg(String msg, Object... params) {
  77. return new Error(MessageFormat.format(msg, params));
  78. }
  79. protected String getErrorMessage(String key) {
  80. Object msg = errorResource.getProperty(key);
  81. if (msg == null) {
  82. return key;
  83. }
  84. return (String) msg;
  85. }
  86. protected String getErrorMessage(String key, Object... obj) {
  87. return MessageFormat.format(getErrorMessage(key), obj);
  88. }
  89. @InitBinder
  90. public void initBinder(WebDataBinder binder) {
  91. DateFormat dateFormat = new SimpleDateFormat(AFTConstants.YYYYMMDDHHMMSS);
  92. dateFormat.setLenient(true);
  93. binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
  94. }
  95. @ModelAttribute
  96. public void prepareModel(HttpServletRequest request, Model model) {
  97. model.addAttribute("staticDomain", avatarHost);
  98. model.addAttribute("staticHost", staticHost);
  99. model.addAttribute("skjtHost", skjtHost);
  100. model.addAttribute("avatarHost", avatarHost);
  101. model.addAttribute("avatarUploadHost", avatarUploadHost);
  102. model.addAttribute("portalHost", portalHost);
  103. model.addAttribute("basePath", request.getContextPath());
  104. model.addAttribute("videoServer", videoServer);
  105. model.addAttribute("isAdmin", false);
  106. int yearCount=0;
  107. Calendar c=Calendar.getInstance();
  108. yearCount=c.getWeekYear()-2001;
  109. model.addAttribute("yearCount", yearCount);
  110. if (TokenManager.isLogin() && TokenManager.getToken() instanceof User) {
  111. model.addAttribute("userData", TokenManager.getUserToken());
  112. model.addAttribute("userName", TokenManager.getUserToken().getNickname());
  113. model.addAttribute("shiro", SecurityUtils.getSubject());
  114. model.addAttribute("isLogin", TokenManager.isLogin());
  115. model.addAttribute("csrf", TokenManager.getCSRF());
  116. }
  117. if (TokenManager.isLogin() && TokenManager.getToken() instanceof Admin) {
  118. model.addAttribute("adminData", TokenManager.getAdminToken());
  119. model.addAttribute("userName", TokenManager.getAdminToken().getName());
  120. model.addAttribute("departmentId", TokenManager.getAdminToken().getDepartmentId());
  121. model.addAttribute("isAdmin", true);
  122. }
  123. }
  124. }