BaseController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.kede.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 java.util.List;
  8. import javax.annotation.Resource;
  9. import javax.servlet.http.HttpServletRequest;
  10. import com.kede.linksAndHot.bo.InputLinksList;
  11. import com.kede.linksAndHot.bo.outLinksList;
  12. import com.kede.linksAndHot.bo.publicLinks;
  13. import com.kede.linksAndHot.service.LinkesService;
  14. import com.kede.linksAndHot.service.PopularCitiesService;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.apache.shiro.SecurityUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.beans.factory.annotation.Value;
  19. import org.springframework.beans.propertyeditors.CustomDateEditor;
  20. import org.springframework.core.io.support.ResourcePropertySource;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.ui.Model;
  23. import org.springframework.web.bind.WebDataBinder;
  24. import org.springframework.web.bind.annotation.InitBinder;
  25. import org.springframework.web.bind.annotation.ModelAttribute;
  26. import com.kede.common.bo.Error;
  27. import com.kede.common.constant.AFTConstants;
  28. import com.kede.common.model.Admin;
  29. import com.kede.core.shiro.token.TokenManager;
  30. @Controller
  31. public class BaseController {
  32. @Autowired
  33. private LinkesService linkesService;
  34. @Autowired
  35. private PopularCitiesService popularCitiesService;
  36. @Resource(name = "errorResource")
  37. private ResourcePropertySource errorResource;
  38. @Value(value = "${static.host}")
  39. private String staticHost = null;
  40. @Value(value = "${avatar.host}")
  41. private String avatarHost = null;
  42. @Value(value = "${upload.path}")
  43. private String uploadPath = null;
  44. @Value(value = "${upload.private.path}")
  45. private String uploadPrivatePath = null;
  46. @Value(value = "${accessKey}")
  47. private String accessKey = null;
  48. @Value(value = "${accessSecret}")
  49. private String accessSecret = null;
  50. @Value(value = "${portal.host}")
  51. private String portalHost = null;
  52. @Value(value = "${avatar.upload.host}")
  53. private String avatarUploadHost = null;
  54. protected Error buildError(String key) {
  55. return buildError(key, null);
  56. }
  57. protected Error buildError(String key, String message) {
  58. String msg = (String) errorResource.getProperty(key);
  59. if (StringUtils.isEmpty(msg)) {
  60. msg = message;
  61. }
  62. return new Error(key, msg);
  63. }
  64. /**
  65. * 带参数的error message
  66. *
  67. * @param key
  68. * @param message
  69. * @param object
  70. * @return
  71. */
  72. protected Error buildError(String key, String message, Object... object) {
  73. String msg = (String) errorResource.getProperty(key);
  74. if (StringUtils.isEmpty(msg)) {
  75. msg = message;
  76. }
  77. msg = MessageFormat.format(msg, object);
  78. return new Error(key, msg);
  79. }
  80. protected Error buildErrorByMsg(String msg, Object... params) {
  81. return new Error(MessageFormat.format(msg, params));
  82. }
  83. protected String getErrorMessage(String key) {
  84. Object msg = errorResource.getProperty(key);
  85. if (msg == null) {
  86. return key;
  87. }
  88. return (String) msg;
  89. }
  90. protected String getErrorMessage(String key, Object... obj) {
  91. return MessageFormat.format(getErrorMessage(key), obj);
  92. }
  93. @InitBinder
  94. public void initBinder(WebDataBinder binder) {
  95. DateFormat dateFormat = new SimpleDateFormat(AFTConstants.YYYYMMDDHHMMSS);
  96. dateFormat.setLenient(true);
  97. binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
  98. }
  99. @ModelAttribute
  100. public void prepareModel(HttpServletRequest request, Model model) {
  101. Calendar calendar=Calendar.getInstance();
  102. int weekYear = calendar.getWeekYear();
  103. int start=2000;
  104. model.addAttribute("countYear", weekYear-2001);
  105. model.addAttribute("staticDomain", avatarHost);
  106. model.addAttribute("staticHost", staticHost);
  107. model.addAttribute("avatarHost", avatarHost);
  108. model.addAttribute("uploadPath", uploadPath);
  109. model.addAttribute("avatarUploadHost", avatarUploadHost);
  110. model.addAttribute("portalHost", portalHost);
  111. model.addAttribute("basePath", request.getContextPath());
  112. model.addAttribute("shiro", SecurityUtils.getSubject());
  113. model.addAttribute("isLogin", TokenManager.isLogin());
  114. model.addAttribute("csrf", TokenManager.getCSRF());
  115. model.addAttribute("links",getLinks());
  116. model.addAttribute("popularCities",getpopularCities());
  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. private Object getpopularCities() {
  125. return popularCitiesService.getAllpopularCities();
  126. }
  127. private List<publicLinks> getLinks(){
  128. return linkesService.getAllLinks();
  129. }
  130. }