基于SSM+MySQL+SpringBoot+Layui的高校校园信息管理系统

用户登录

请假管理

请假审核

学生签到

活动管理

学校公告

用户管理

职位管理

菜单管理

应用管理

角色管理

请假审核

学生签到

活动管理

技术描述

开发工具: Idea/Eclipse
数据库: mysql
Jar包仓库: Maven
前段框架: LayUI
后端框架: Spring+SpringMVC+Mybatis+SpringBoot

资料说明

基于SSM+MySQL+SpringBoot+Layui的高校校园信息管理系统,分为管理员,教师,学生三个角色。整体功能包含请假,学生管理,菜单管理,角色管理,应用管理,活动管理,学生签到,请假审核,日志管理,用户管理等。


@Controller
public class BackupRestoreController    {

    private String PATH_PREFIX = "backupRestore/";


	
    @Resource
    private BackupRestoreService backupRestoreService;
    
    @Resource
    private SysConfigService sysConfigService;
    
    
    @Autowired
	private Environment environment;
	


    /**
     * 系统备份还原页面
     *
     * @author zhenpeng
     * @date 2021-06-03 17:10:21
     */
    
    @GetMapping("/backupRestore/index")
    public String index() {
        return PATH_PREFIX + "index.html";
    }

    /**
     * 系统备份还原表单页面
     *
     * @author zhenpeng
     * @date 2021-06-03 17:10:21
     */
    @GetMapping("/backupRestore/form")
    public String form() {
        return PATH_PREFIX + "form.html";
    }

    /**
     * 查询系统备份还原
     *
     * @author zhenpeng
     * @date 2021-06-03 17:10:21
     */
    
    @ResponseBody
    @GetMapping("/backupRestore/page")
    @BusinessLog(title = "系统备份还原_查询", opType = LogAnnotionOpTypeEnum.QUERY)
    public PageResult<BackupRestore> page(BackupRestoreParam backupRestoreParam) {
        return backupRestoreService.page(backupRestoreParam);
    }

    /**
     * 添加系统备份还原
     *
     * @author zhenpeng
     * @date 2021-06-03 17:10:21
     */
    
    @ResponseBody
    @PostMapping("/backupRestore/add")
    @BusinessLog(title = "系统备份还原_增加", opType = LogAnnotionOpTypeEnum.ADD)
    public ResponseData add(@RequestBody @Validated(BackupRestoreParam.add.class) BackupRestoreParam backupRestoreParam) {
        backupRestoreService.add(backupRestoreParam);
        return new SuccessResponseData();
    }

    /**
     * 删除系统备份还原
     *
     * @author zhenpeng
     * @date 2021-06-03 17:10:21
     */
    
    @ResponseBody
    @PostMapping("/backupRestore/delete")
    @BusinessLog(title = "系统备份还原_删除", opType = LogAnnotionOpTypeEnum.DELETE)
    public ResponseData delete(@RequestBody @Validated(BackupRestoreParam.delete.class) List<BackupRestoreParam> backupRestoreParamList) {
        backupRestoreService.delete(backupRestoreParamList);
        return new SuccessResponseData();
    }

    /**
     * 编辑系统备份还原
     *
     * @author zhenpeng
     * @date 2021-06-03 17:10:21
     */
    
    @ResponseBody
    @PostMapping("/backupRestore/edit")
    @BusinessLog(title = "系统备份还原_编辑", opType = LogAnnotionOpTypeEnum.EDIT)
    public ResponseData edit(@RequestBody @Validated(BackupRestoreParam.edit.class) BackupRestoreParam backupRestoreParam) {
        backupRestoreService.edit(backupRestoreParam);
        return new SuccessResponseData();
    }

    /**
     * 查看系统备份还原
     *
     * @author zhenpeng
     * @date 2021-06-03 17:10:21
     */
    
    @ResponseBody
    @GetMapping("/backupRestore/detail")
    @BusinessLog(title = "系统备份还原_查看", opType = LogAnnotionOpTypeEnum.DETAIL)
    public ResponseData detail(@Validated(BackupRestoreParam.detail.class) BackupRestoreParam backupRestoreParam) {
        return new SuccessResponseData(backupRestoreService.detail(backupRestoreParam));
    }

    /**
     * 系统备份还原列表
     *
     * @author zhenpeng
     * @date 2021-06-03 17:10:21
     */
    
    @ResponseBody
    @GetMapping("/backupRestore/list")
    @BusinessLog(title = "系统备份还原_列表", opType = LogAnnotionOpTypeEnum.QUERY)
    public ResponseData list(BackupRestoreParam backupRestoreParam) {
        return new SuccessResponseData(backupRestoreService.list(backupRestoreParam));
    }
    
    
    
    /**
     * 
    * @author: zhenpeng
    * @date 2021年6月3日 
    * @Title: list  
    * @Description: TODO(这里用一句话描述这个方法的作用) 备份方法
    * @param backupRestoreParam
    * @return    参数  
    * @return ResponseData    返回类型  
    * @throws
     */
    
    @ResponseBody
    @GetMapping("/backupRestore/Thebackup")
    @BusinessLog(title = "系统备份还原_列表", opType = LogAnnotionOpTypeEnum.QUERY)
    public ResponseData Thebackup(BackupRestoreParam backupRestoreParam) {
    	
    	
    	
        return new SuccessResponseData();
    }
    
    
    /**
     * 
    * @author: zhenpeng
    * @date 2021年6月3日 
    * @Title: list  
    * @Description: TODO(这里用一句话描述这个方法的作用) 还原方法
    * @param backupRestoreParam
    * @return    参数  
    * @return ResponseData    返回类型  
    * @throws
     */
    
    @ResponseBody
    @GetMapping("/backupRestore/reduction")
    @BusinessLog(title = "系统备份还原_列表", opType = LogAnnotionOpTypeEnum.QUERY)
    public ResponseData reduction(BackupRestoreParam backupRestoreParam) {
    	
    	
        return new SuccessResponseData();
    }
    
    
    
   // 
    @ResponseBody
    @GetMapping("/backupRestore/backup")
    @BusinessLog(title = "系统备份", opType = LogAnnotionOpTypeEnum.QUERY)
    public ResponseData backup() throws Exception {
    	
    	BackupRestoreVO  backupRestoreVO=new BackupRestoreVO();
    	List<String> list=CollectionUtil.newArrayList();
    	list.add("DB_INSTALLATION_PATH_LINUX");
    	list.add("DB_INSTALLATION_PATH");
    	list.add("THE_BACKUP_PATH");
    	//将这些参数查出来用于前端初始化
    	List<SysConfig> ret=CollectionUtil.newArrayList();
    	
    	//下面三个判断是因为定时任务位单独得线程自动注入得服务位null,则需要从容器中获得服务。
    	if(sysConfigService==null) {
    		 sysConfigService = (SysConfigService)SpringUtil.getBean(SysConfigService.class);
    	}
    	if(backupRestoreService==null) {
    		backupRestoreService = (BackupRestoreService)SpringUtil.getBean(BackupRestoreService.class);
     	}
    	if(environment==null) {
    		environment = (Environment)SpringUtil.getBean(Environment.class);
    	}
    	
    	
    	ret=sysConfigService.getALLsysConfigByCodeS(list);
		for (SysConfig sysConfig : ret) {
			switch (sysConfig.getCode()) {
			case "DB_INSTALLATION_PATH_LINUX":
				backupRestoreVO.setMysqlpathforLinux(sysConfig.getValue());
				break;
			case "DB_INSTALLATION_PATH":
				backupRestoreVO.setMysqlpathforWin(sysConfig.getValue());
				break;
			case "THE_BACKUP_PATH":
				backupRestoreVO.setBackupPath(sysConfig.getValue());
				break;

			}
		}
		
		//这里是因为定时任务调取该方法会报错无登录信息,则直接写admin
		Long  Long=0l;
		String  username="";
		try {
			 Long=LoginContextHolder.me().getSysLoginUserId();
			 username=LoginContextHolder.me().getSysLoginUser().getName();
		} catch (Exception e2) {
			Long=1000000000001L;
			username="admin";
		}
		String  dbid=UUID.randomUUID().toString().replace("-", "");
		
		
		
		backupRestoreVO.setUuid(dbid);
		backupRestoreVO.setUserid(Long+"");
		backupRestoreVO.setUsername(username);
		
		
		//开启多线程进行备份
		new Thread(() -> {
			try {
				new BackupRestoreUtil().backup(backupRestoreVO,backupRestoreService,environment);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	       }).start();
        return new SuccessResponseData(dbid);
    }
    
    
    
    
    
    
    
    @ResponseBody
    @GetMapping("/backupRestore/getret")
    @BusinessLog(title = "获取操作结果", opType = LogAnnotionOpTypeEnum.QUERY)
    public ResponseData getret(@RequestParam("id") String id) {
    	BackupRestoreParam  backupRestoreParam=new BackupRestoreParam();
    	backupRestoreParam.setId(id);
    	BackupRestore backupRestore =backupRestoreService.detail(backupRestoreParam);
    	return new SuccessResponseData(backupRestore);
    }
    
    
    
    
    
    @ResponseBody
    @GetMapping("/backupRestore/rollback")
    @BusinessLog(title = "还原数据", opType = LogAnnotionOpTypeEnum.QUERY)
    public ResponseData rollback() throws Exception {
    	
    	BackupRestoreVO  backupRestoreVO=new BackupRestoreVO();
    	List<String> list=CollectionUtil.newArrayList();
    	list.add("DB_INSTALLATION_PATH_LINUX");
    	list.add("DB_INSTALLATION_PATH");
    	list.add("THE_BACKUP_PATH");
    	//将这些参数查出来用于前端初始化
    	List<SysConfig> ret=CollectionUtil.newArrayList();
    	
    	//下面三个判断是因为定时任务位单独得线程自动注入得服务位null,则需要从容器中获得服务。
    	if(sysConfigService==null) {
    		sysConfigService=SpringUtil.getBean(SysConfigService.class);
    	}
    	if(backupRestoreService==null) {
    		backupRestoreService=SpringUtil.getBean(BackupRestoreService.class);
    	}
    	if(environment==null) {
    		environment=SpringUtil.getBean(Environment.class);
    	}
    	ret=sysConfigService.getALLsysConfigByCodeS(list);
    	
		for (SysConfig sysConfig : ret) {
			switch (sysConfig.getCode()) {
			case "DB_INSTALLATION_PATH_LINUX":
				backupRestoreVO.setMysqlpathforLinux(sysConfig.getValue());
				break;
			case "DB_INSTALLATION_PATH":
				backupRestoreVO.setMysqlpathforWin(sysConfig.getValue());
				break;
			case "THE_BACKUP_PATH":
				backupRestoreVO.setBackupPath(sysConfig.getValue());
				break;

			}
		}
		//还原得数据未最新备份数据,不管谁备份得
		//先查询相互最新得备份数据名称以及安装路径
		
		String filepath=backupRestoreService.getFilepathZuiXin();
		
		//这里是因为定时任务调取该方法会报错无登录信息,则直接写admin
		Long  Long=0l;
		String  username="";
		try {
			 Long=LoginContextHolder.me().getSysLoginUserId();
			 username=LoginContextHolder.me().getSysLoginUser().getName();
		} catch (Exception e2) {
			Long=1000000000001L;
			username="admin";
		}
		
		
		String  dbid=UUID.randomUUID().toString().replace("-", "");
		
		backupRestoreVO.setUuid(dbid);
		backupRestoreVO.setUserid(Long+"");
		backupRestoreVO.setUsername(username);
		backupRestoreVO.setHuanyuanFilePath(filepath);
		
		
		//开启多线程进行备份
		new Thread(() -> {
			try {
				new BackupRestoreUtil().rollback(backupRestoreVO,backupRestoreService,environment);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	       }).start();
        return new SuccessResponseData(dbid);
    }


    
    
    
    
    
    
    
    

}

猜你喜欢

转载自blog.csdn.net/qq_36155000/article/details/125589019
今日推荐