前言
💖💖作者:计算机程序员小杨 💙💙个人简介:我是一名计算机相关专业的从业者,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。热爱技术,喜欢钻研新工具和框架,也乐于通过代码解决实际问题,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💕💕文末获取源码联系 计算机程序员小杨 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目 计算机毕业设计选题 💜💜
一.开发工具简介
开发语言:Java+Python(两个版本都支持) 后端框架:Spring Boot(Spring+SpringMVC+Mybatis)+Django(两个版本都支持) 前端:Vue+ElementUI+HTML 数据库:MySQL 系统架构:B/S 开发工具:IDEA(Java的)或者PyCharm(Python的)
二.系统内容简介
《学生学习成果管理平台》是一款基于Spring Boot+Vue技术栈构建的B/S架构综合管理系统,采用MySQL数据库存储数据。该平台整合了学生学习过程中的多维度成果记录功能,涵盖竞赛获奖、证书获取、开发项目、课程设计等学业成果的统一管理,同时提供教师管理模块便于指导教师对学生成果进行审核与指导。平台还内置资讯发布、交流互动、论坛讨论等社区功能,方便师生之间的经验分享与学习交流。通过个人中心模块,学生可以系统化地展示个人学习成果,形成完整的学业档案。管理员可通过后台对举报记录、论坛分类、资讯分类等进行统一管理,确保平台内容健康有序。整个系统界面友好,操作便捷,能够有效辅助高校进行学生学习成果的数字化管理。
三.系统功能演示
四.系统界面展示
五.系统源码展示
// ========== 功能一:竞赛获奖管理核心业务代码 ==========
/**
* 提交竞赛获奖记录并进行审核
*/
@PostMapping("/competition/submit")
public Result submitCompetitionAward(@RequestBody CompetitionAward award, HttpServletRequest request) {
// 获取当前登录学生ID
String token = request.getHeader("Authorization");
Long studentId = TokenUtil.getStudentId(token);
award.setStudentId(studentId);
award.setStatus(0); // 0-待审核
award.setSubmitTime(new Date());
// 验证必填字段
if (StringUtils.isEmpty(award.getCompetitionName()) ||
StringUtils.isEmpty(award.getAwardLevel()) ||
award.getAwardTime() == null) {
return Result.error("竞赛名称、获奖等级和获奖时间不能为空");
}
// 验证证书图片是否上传
if (StringUtils.isEmpty(award.getCertificateImg())) {
return Result.error("请上传获奖证书图片");
}
// 检查是否重复提交相同竞赛
QueryWrapper<CompetitionAward> wrapper = new QueryWrapper<>();
wrapper.eq("student_id", studentId)
.eq("competition_name", award.getCompetitionName())
.eq("award_time", award.getAwardTime());
CompetitionAward existAward = competitionAwardMapper.selectOne(wrapper);
if (existAward != null) {
return Result.error("该竞赛获奖记录已存在,请勿重复提交");
}
// 根据获奖等级自动计算综合测评加分
Integer score = calculateCompetitionScore(award.getAwardLevel(), award.getCompetitionType());
award.setScore(score);
// 保存获奖记录
int rows = competitionAwardMapper.insert(award);
if (rows > 0) {
// 发送审核通知给对应教师
Teacher teacher = teacherMapper.selectById(award.getTeacherId());
if (teacher != null) {
notificationService.sendAuditNotice(teacher.getEmail(),
studentId, "竞赛获奖", award.getCompetitionName());
}
return Result.success("提交成功,请等待教师审核");
}
return Result.error("提交失败");
}
/**
* 教师审核竞赛获奖记录
*/
@PutMapping("/competition/audit")
public Result auditCompetitionAward(@RequestBody AuditRequest auditRequest) {
Long awardId = auditRequest.getAwardId();
Integer status = auditRequest.getStatus(); // 1-通过 2-驳回
String reason = auditRequest.getReason();
CompetitionAward award = competitionAwardMapper.selectById(awardId);
if (award == null) {
return Result.error("获奖记录不存在");
}
if (award.getStatus() != 0) {
return Result.error("该记录已审核,无需重复操作");
}
award.setStatus(status);
award.setAuditTime(new Date());
award.setAuditReason(reason);
int rows = competitionAwardMapper.updateById(award);
if (rows > 0) {
// 审核通过后更新学生综合测评总分
if (status == 1) {
Student student = studentMapper.selectById(award.getStudentId());
student.setTotalScore(student.getTotalScore() + award.getScore());
studentMapper.updateById(student);
}
// 发送审核结果通知给学生
Student student = studentMapper.selectById(award.getStudentId());
String message = status == 1 ? "您的竞赛获奖记录审核通过" : "您的竞赛获奖记录被驳回,原因:" + reason;
notificationService.sendMessage(student.getEmail(), message);
return Result.success("审核完成");
}
return Result.error("审核失败");
}
六.系统文档展示
结束
💕💕文末获取源码联系 计算机程序员小杨