【Java】学生学习成果管理平台 SpringBoot+Vue框架 计算机毕业设计项目 Idea+Navicat+MySQL安装 附源码+文档+讲解

69 阅读3分钟

前言

💖💖作者:计算机程序员小杨 💙💙个人简介:我是一名计算机相关专业的从业者,擅长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("审核失败");
}

六.系统文档展示

在这里插入图片描述

结束

💕💕文末获取源码联系 计算机程序员小杨