SysIndexController.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.ruoyi.web.controller.system;
  2. import java.util.Date;
  3. import java.util.List;
  4. import javax.servlet.http.Cookie;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.ui.ModelMap;
  9. import org.springframework.web.bind.annotation.GetMapping;
  10. import org.springframework.web.bind.annotation.PathVariable;
  11. import com.ruoyi.common.config.RuoYiConfig;
  12. import com.ruoyi.common.core.controller.BaseController;
  13. import com.ruoyi.common.core.domain.entity.SysMenu;
  14. import com.ruoyi.common.core.domain.entity.SysUser;
  15. import com.ruoyi.common.core.text.Convert;
  16. import com.ruoyi.common.utils.CookieUtils;
  17. import com.ruoyi.common.utils.DateUtils;
  18. import com.ruoyi.common.utils.ServletUtils;
  19. import com.ruoyi.common.utils.ShiroUtils;
  20. import com.ruoyi.common.utils.StringUtils;
  21. import com.ruoyi.system.service.ISysConfigService;
  22. import com.ruoyi.system.service.ISysMenuService;
  23. /**
  24. * 首页 业务处理
  25. *
  26. * @author ruoyi
  27. */
  28. @Controller
  29. public class SysIndexController extends BaseController
  30. {
  31. @Autowired
  32. private ISysMenuService menuService;
  33. @Autowired
  34. private ISysConfigService configService;
  35. // 系统首页
  36. @GetMapping("/index")
  37. public String index(ModelMap mmap)
  38. {
  39. // 取身份信息
  40. SysUser user = ShiroUtils.getSysUser();
  41. // 根据用户id取出菜单
  42. List<SysMenu> menus = menuService.selectMenusByUser(user);
  43. mmap.put("menus", menus);
  44. mmap.put("user", user);
  45. mmap.put("sideTheme", configService.selectConfigByKey("sys.index.sideTheme"));
  46. mmap.put("skinName", configService.selectConfigByKey("sys.index.skinName"));
  47. mmap.put("ignoreFooter", configService.selectConfigByKey("sys.index.ignoreFooter"));
  48. mmap.put("copyrightYear", RuoYiConfig.getCopyrightYear());
  49. mmap.put("demoEnabled", RuoYiConfig.isDemoEnabled());
  50. mmap.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate()));
  51. mmap.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate()));
  52. // 菜单导航显示风格
  53. String menuStyle = configService.selectConfigByKey("sys.index.menuStyle");
  54. // 移动端,默认使左侧导航菜单,否则取默认配置
  55. String indexStyle = ServletUtils.checkAgentIsMobile(ServletUtils.getRequest().getHeader("User-Agent")) ? "index" : menuStyle;
  56. // 优先Cookie配置导航菜单
  57. Cookie[] cookies = ServletUtils.getRequest().getCookies();
  58. for (Cookie cookie : cookies)
  59. {
  60. if (StringUtils.isNotEmpty(cookie.getName()) && "nav-style".equalsIgnoreCase(cookie.getName()))
  61. {
  62. indexStyle = cookie.getValue();
  63. break;
  64. }
  65. }
  66. String webIndex = "topnav".equalsIgnoreCase(indexStyle) ? "index-topnav" : "index";
  67. return webIndex;
  68. }
  69. // 切换主题
  70. @GetMapping("/system/switchSkin")
  71. public String switchSkin()
  72. {
  73. return "skin";
  74. }
  75. // 切换菜单
  76. @GetMapping("/system/menuStyle/{style}")
  77. public void menuStyle(@PathVariable String style, HttpServletResponse response)
  78. {
  79. CookieUtils.setCookie(response, "nav-style", style);
  80. }
  81. // 系统介绍
  82. @GetMapping("/system/main")
  83. public String main(ModelMap mmap)
  84. {
  85. mmap.put("version", RuoYiConfig.getVersion());
  86. return "main";
  87. }
  88. // 检查初始密码是否提醒修改
  89. public boolean initPasswordIsModify(Date pwdUpdateDate)
  90. {
  91. Integer initPasswordModify = Convert.toInt(configService.selectConfigByKey("sys.account.initPasswordModify"));
  92. return initPasswordModify != null && initPasswordModify == 1 && pwdUpdateDate == null;
  93. }
  94. // 检查密码是否过期
  95. public boolean passwordIsExpiration(Date pwdUpdateDate)
  96. {
  97. Integer passwordValidateDays = Convert.toInt(configService.selectConfigByKey("sys.account.passwordValidateDays"));
  98. if (passwordValidateDays != null && passwordValidateDays > 0)
  99. {
  100. if (StringUtils.isNull(pwdUpdateDate))
  101. {
  102. // 如果从未修改过初始密码,直接提醒过期
  103. return true;
  104. }
  105. Date nowDate = DateUtils.getNowDate();
  106. return DateUtils.differentDaysByMillisecond(nowDate, pwdUpdateDate) > passwordValidateDays;
  107. }
  108. return false;
  109. }
  110. }