用户登录
请假管理
请假审核
学生签到
活动管理
学校公告
用户管理
职位管理
菜单管理
应用管理
角色管理
请假审核
学生签到
活动管理
技术描述
开发工具: 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);
}
}