文末获取源码
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
一、前言介绍
如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统校园综合信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个智慧校园管理系统,可以解决许多问题。
智慧校园管理系统可以实现记事本管理,备忘录管理,软件管理,软件留言管理,软件收藏管理,课程管理,课程留言管理,课程收藏管理,老师管理,宿舍管理,宿舍人员管理,宿舍归寝管理,宿舍报修管理,音乐管理,音乐留言管理,音乐收藏管理,用户管理,成绩管理等功能。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。
智慧校园管理系统可以提高校园综合信息管理问题的解决效率,优化校园综合信息处理流程,保证校园综合信息数据的安全,它是一个非常可靠,非常安全的应用程序。
二、功能结构设计
图1即为设计的管理员功能结构,管理员权限操作的功能包括管理记事本,管理备忘录,管理软件,管理课程,管理音乐,管理宿舍,管理成绩,管理老师等。
图2即为设计的老师功能结构,老师权限操作的功能包括管理成绩,管理宿舍,管理宿舍归寝,管理宿舍报修,管理音乐,管理软件等。
图3即为设计的用户功能结构,用户权限操作的功能包括下载软件安装包,观看课程视频以及软件安装视频,播放音乐,查看成绩,管理备忘录以及记事本信息,提交宿舍报修信息,查看宿舍人员信息等。
三、管理员功能实现
3.1音乐管理
图5.1 即为编码实现的音乐管理界面,管理员下架音乐,上架音乐,修改音乐信息,包括修改音乐热度,音乐名称,音乐类型等信息,删除音乐,查询音乐等。
3.2软件管理
图即为编码实现的软件管理界面,管理员上传计算机专业相关的软件安装包,可以修改软件描述信息,包括软件名称,软件照片,安装教程,软件类型等信息,可以下架软件,删除软件信息等。
3.3备忘录管理
图即为编码实现的备忘录管理界面,管理员增删改查备忘录信息,备忘录信息包括备忘录名称,备忘录类型,记录时间等信息。
四、师功能实现
4.1宿舍管理
图5.4 即为编码实现的宿舍管理界面,老师在宿舍管理界面录入宿舍信息,宿舍信息包括宿舍地址,宿舍名称,录入时间等信息,老师可以查询宿舍,修改宿舍信息等。
4.2宿舍归寝管理
图即为编码实现的宿舍归寝管理界面,老师在宿舍归寝管理界面中登记宿舍归寝信息,宿舍归寝信息包括归寝状态,归寝日期,用户姓名等信息,老师可以修改宿舍归寝信息,查询宿舍归寝信息等。
4.3课程管理
图即为编码实现的课程管理界面,老师需要上传课程学习视频,上传课件,登记课程信息等,同时老师可以上架课程,下架课程,修改课程描述信息,删除课程等。
4.4成绩管理
图即为编码实现的成绩管理界面,老师登记用户的课程成绩信息,可以修改成绩分数,查询用户成绩等。
五、用户功能实现
5.1软件信息
图5.8 即为编码实现的软件信息界面,用户下载软件安装包,查看软件安装视频,在软件信息界面的下方留言区域发布留言。
4.2课程信息
图即为编码实现的课程信息界面,用户通过课程视频学习课程知识,可以下载课程课件,可以在课程信息界面下方的留言区域发布课程留言,可以可以收藏本界面的课程。
4.3音乐信息
图即为编码实现的音乐信息界面,用户收听音乐,可以在音乐信息界面的下方留言区域发布音乐留言信息,可以收藏音乐,已经收藏的音乐可以取消收藏。
4.4宿舍报修管理
图即为编码实现的宿舍报修管理界面,用户在后台的宿舍报修管理界面提交宿舍报修信息,可以查询宿舍报修信息等。
4.5成绩查看
图即为编码实现的成绩查看界面,用户在后台的成绩查看界面查看课程考试分数,查询课程成绩。
五、部分核心代码
/**
* 上传文件映射表
*/
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
@Autowired
private ConfigService configService;
/**
* 上传文件
*/
@RequestMapping("/upload")
public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
if (file.isEmpty()) {
throw new EIException("上传文件不能为空");
}
String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
String fileName = new Date().getTime()+"."+fileExt;
File dest = new File(upload.getAbsolutePath()+"/"+fileName);
file.transferTo(dest);
/**
* 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
* 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,
* 并且项目路径不能存在中文、空格等特殊字符
*/
// FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
if(StringUtils.isNotBlank(type) && type.equals("1")) {
ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
if(configEntity==null) {
configEntity = new ConfigEntity();
configEntity.setName("faceFile");
configEntity.setValue(fileName);
} else {
configEntity.setValue(fileName);
}
configService.insertOrUpdate(configEntity);
}
return R.ok().put("file", fileName);
}
/**
* 下载文件
*/
@IgnoreAuth
@RequestMapping("/download")
public ResponseEntity<byte[]> download(@RequestParam String fileName) {
try {
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
File file = new File(upload.getAbsolutePath()+"/"+fileName);
if(file.exists()){
/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
getResponse().sendError(403);
}*/
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", fileName);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
}
} catch (IOException e) {
e.printStackTrace();
}
return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
}
}