| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- package com.td.WaDa;
- import com.td.WaDa.common.service.ComConfigService;
- import com.td.WaDa.game.comusers.service.ComUsersService;
- import com.td.WaDa.sys.sysmenu.vo.SysMenuVo;
- import com.td.WaDa.sys.syssetting.service.SysSettingService;
- import com.td.WaDa.sys.syssettinglimit.service.SysSettingLimitService;
- import com.td.WaDa.sys.syssettingtask.service.SysSettingTaskService;
- import com.td.WaDa.sys.sysshortcutmenu.service.SysShortcutMenuService;
- import com.td.WaDa.sys.sysshortcutmenu.vo.SysShortcutMenuVo;
- import com.td.WaDa.sys.sysuser.service.SysUserService;
- import com.td.WaDa.sys.sysuser.vo.SysUserVo;
- import com.td.WaDa.sys.sysusermenu.service.SysUserMenuService;
- import com.td.WaDa.util.*;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.ApplicationRunner;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.cache.annotation.EnableCaching;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.scheduling.annotation.EnableAsync;
- import org.springframework.scheduling.annotation.EnableScheduling;
- import org.springframework.security.core.session.SessionRegistry;
- import org.springframework.security.core.session.SessionRegistryImpl;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.ModelAndView;
- import javax.imageio.ImageIO;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.awt.*;
- import java.awt.image.BufferedImage;
- import java.io.IOException;
- import java.net.InetAddress;
- import java.net.UnknownHostException;
- import java.util.List;
- @EnableAsync//开启异步调用
- @EnableCaching// 开启缓存,需要显示的指定
- @EnableScheduling
- @SpringBootApplication
- public class BossApplication {
- public static void main(String[] args) {
- SpringApplication.run(BossApplication.class, args);
- }
- /**
- * 解决不能注入session注册表问题
- */
- @Bean
- SessionRegistry sessionRegistry() {
- return new SessionRegistryImpl();
- }
- }
- @Slf4j
- @Controller
- @RequestMapping("/")
- @Configuration
- class IndexController {
- @Autowired
- private SysUserService sysUserService;
- @Autowired
- private SysSettingService sysSettingService;
- @Autowired
- private SysSettingTaskService sysSettingTaskService;
- @Autowired
- private SysSettingLimitService sysSettingLimitService;
- @Autowired
- private RedisSettingMap redisSettingMap;
- @Autowired
- private SysUserMenuService sysUserMenuService;
- @Autowired
- private SysShortcutMenuService sysShortcutMenuService;
- @Autowired
- private ComUsersService comUsersService;
- @Autowired
- private ComConfigService comConfigService;
- @Value("${server.servlet.context-path:}")
- private String contextPath;
- /**
- * 端口
- */
- @Value("${server.port}")
- private String port;
- /**
- * 启动成功
- */
- @Bean
- public ApplicationRunner applicationRunner() {
- return applicationArguments -> {
- try {
- /**
- * 当启动时候,向主redis设置一次数据。
- */
- ////系统启动时获取数据库数据,设置到公用静态集合sysSettingMap
- ////SysSettingVo sysSettingVo = sysSettingService.get("1").getData();
- ////SysSettingUtil.setSysSettingMap(sysSettingVo);
- //更新sys_setting
- redisSettingMap.updateSysSettingMap();
- //log.info(redisSettingMap.getSysSettingMap().toString());
- ////系统启动时获取数据库数据,设置到公用静态集合sysSettingTaskMap
- ////SysSettingTaskVo sysSettingTaskVo = sysSettingTaskService.get("1").getData();
- ////SysSettingTaskUtil.setSysSettingTaskMap(sysSettingTaskVo);
- //redisSettingMap.updateSysSettingTaskMap();
- //log.info(redisSettingMap.getSysSettingTaskMap().toString());
- ////限制登录ip
- ////SysSettingLimitVo sysSettingLimitVo = sysSettingLimitService.get("1").getData();
- ////SysSettingLimitUtil.setSysSettingLimitMap(sysSettingLimitVo);
- //redisSettingMap.updateSysSettingLimitMap();
- //log.info(redisSettingMap.getSysSettingLimitMap().toString());
- ////更新com config 的 Redis数据
- //comConfigService.updateList();
- ////更新com setting 的redis数据
- //redisSettingMap.updateComSettingMap();
- //获取本机内网IP
- log.info("启动成功:" + "http://" + InetAddress.getLocalHost().getHostAddress() + ":" + port + contextPath);
- } catch (UnknownHostException e) {
- //输出到日志文件中
- log.error(ErrorUtil.errorInfoToString(e));
- }
- };
- }
- /**
- * 跳转登录页面
- */
- @GetMapping("loginPage")
- public ModelAndView login() {
- ModelAndView modelAndView = new ModelAndView("login");
- //系统信息 SysSettingUtil.getSysSetting()
- modelAndView.addObject("sys", redisSettingMap.getSysSettingMap());
- //系统审查信息 SysSettingTaskUtil.getSysSettingTask()
- modelAndView.addObject("sysSettingTask", redisSettingMap.getSysSettingTaskMap());
- //系统限制信息 SysSettingLimitUtil.getSysSettingLimit()
- modelAndView.addObject("sysSettingLimit", redisSettingMap.getSysSettingLimitMap());
- //后端公钥
- String publicKey = redisSettingMap.getRSAPublicKeyBase64(); //RsaUtil.getPublicKey();
- log.info("login后端公钥:" + publicKey);
- modelAndView.addObject("publicKey", publicKey);
- return modelAndView;
- }
- /**
- * 跳转首页
- */
- @GetMapping("")
- public void index1(HttpServletResponse response) {
- //内部重定向
- try {
- response.sendRedirect(contextPath + "/index");
- } catch (IOException e) {
- //输出到日志文件中
- log.error(ErrorUtil.errorInfoToString(e));
- }
- }
- @GetMapping("index")
- public ModelAndView index() {
- ModelAndView modelAndView = new ModelAndView("index");
- //系统信息 SysSettingUtil.getSysSetting()
- modelAndView.addObject("sys", redisSettingMap.getSysSettingMap());
- //系统审查信息 SysSettingTaskUtil.getSysSettingTask()
- modelAndView.addObject("sysSettingTask", redisSettingMap.getSysSettingTaskMap());
- //系统限制信息 SysSettingLimitUtil.getSysSettingLimit()
- modelAndView.addObject("sysSettingLimit", redisSettingMap.getSysSettingLimitMap());
- //登录用户
- SysUserVo sysUserVo = sysUserService.findByLoginName(SecurityUtil.getLoginUser().getUsername()).getData();
- sysUserVo.setPassword(null);//隐藏部分属性
- modelAndView.addObject("loginUser", sysUserVo);
- //登录用户系统菜单
- List<SysMenuVo> menuVoList = sysUserMenuService.findByUserId(sysUserVo.getUserId()).getData();
- modelAndView.addObject("menuList", menuVoList);
- //登录用户快捷菜单
- List<SysShortcutMenuVo> shortcutMenuVoList = sysShortcutMenuService.findByUserId(sysUserVo.getUserId()).getData();
- modelAndView.addObject("shortcutMenuList", shortcutMenuVoList);
- //后端公钥
- String publicKey = redisSettingMap.getRSAPublicKeyBase64(); // RsaUtil.getPublicKey();
- log.info("index后端公钥:" + publicKey);
- modelAndView.addObject("publicKey", publicKey);
- //获取一个全平台的用户数据
- Long allComUserCount = comUsersService.findAllCount();
- modelAndView.addObject("allComUserCount", allComUserCount);
- Long todayComUserCount = comUsersService.newToday();
- modelAndView.addObject("todayComUserCount", todayComUserCount);
- return modelAndView;
- }
- /**
- * 获取验证码图片和文本(验证码文本会保存在HttpSession中)
- */
- @RequestMapping("getVerifyCodeImage")
- public void getVerifyCodeImage(HttpServletRequest request, HttpServletResponse response) throws IOException {
- //设置页面不缓存
- response.setHeader("Pragma", "no-cache");
- response.setHeader("Cache-Control", "no-cache");
- response.setDateHeader("Expires", 0);
- response.getOutputStream();
- String verifyCode = VerifyCodeImageUtil.generateTextCode(VerifyCodeImageUtil.TYPE_NUM_UPPER, 4, null);
- //将验证码放到HttpSession里面
- request.getSession().setAttribute("verifyCode", verifyCode);
- log.info("本次生成的验证码为:" + verifyCode + ",已存放到HttpSession中");
- //设置输出的内容的类型为JPEG图像
- response.setContentType("image/jpeg");
- BufferedImage bufferedImage = VerifyCodeImageUtil.generateImageCode(verifyCode, 90, 30, 3, true, Color.WHITE, Color.BLACK, null);
- //写给浏览器
- ImageIO.write(bufferedImage, "JPEG", response.getOutputStream());
- }
- /**
- * 跳转实时系统硬件监控
- */
- @GetMapping("monitor")
- public ModelAndView monitor() {
- return new ModelAndView("monitor.html", "port", port);
- }
- /**
- * 跳转实时日志
- */
- @GetMapping("logging")
- public ModelAndView logging() {
- return new ModelAndView("logging.html", "port", port);
- }
- }
|