付费内容点击下载链接,会自动复制提取码哦~
您只有支付购买后才能查看该内容!

基于springboot在线课程管理系统的设计与实现

【推广有利】

【适用人群】

  • 实践技能提升:为计算机专业学生提供实际项目经验,帮助他们将理论知识应用于真实场景,增强实践能力。
  • 深入理解开发流程:为软件开发初学者提供全面的项目开发流程介绍,帮助他们掌握各个环节的关键要素,从而打下扎实的基础。
  • 增强竞争力:通过参与项目,求职者能够提升自己的技能和经验,增加在求职市场中的竞争力,使他们在面试中更具优势。
  • 拓展研究视野:为技术研究参考者提供丰富的资源,帮助他们了解最新的技术趋势和研究方向,从而拓宽技术视野。
  • 互动学习平台:创建一个互动交流的社区,鼓励学生和开发者分享经验、提出问题,从而共同进步和成长。
  • 个性化发展指导:为参与者提供针对性的反馈和指导,帮助他们在职业发展和技术研究中做出更明智的选择。

【相关技术】

  • 编程语言:Java
  • 开发框架:SpringBoot
  • 数据库:MySQL
  • 前端技术:Vue2.0
  • 工具与平台:IntelliJ IDEA

【关于退换货】

  • 特别说明:本项目为项目学习作品,不涉及实际产品销售,因商品的可复制性,因此不涉及退换货事宜。编写代码不易,请仔细阅读项目描述后再选购,介意者慎拍,多谢谅解。

【关于售后】

  • 技术支持:承诺所有项目均可正常运行,若项目启动中出现问题,可以联系在线客服,我们将尽快回复并提供支持。

【免责声明】

  • 原创与引用声明:所有项目均为个人或团队原创,部分内容可能引用自第三方资源。
  • 版权声明:项目中的第三方库及资源均遵循相应的开源协议,任何商业使用需获得授权。
  • 责任声明:项目仅供学习和研究使用,因使用本项目造成的任何损失,作者不承担任何法律责任。

【相关文档】

image-20240831160015025

【相关材料】

image-20240831155954509

【主要功能】

管理员功能实现

通知公告管理

管理员进入如图所示的通知公告管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成通知公告信息的修改,删除等操作。通知公告信息有通知公告名称,通知公告内容等信息。

img

添加通知@RequestMapping("/save")
public R save(@RequestBody GonggaoEntity gonggao, HttpServletRequest request){
    logger.debug("save方法:,,Controller:{},,gonggao:{}",this.getClass().getName(),gonggao.toString());
    String role = String.valueOf(request.getSession().getAttribute("role"));
    if(false)
        return R.error(511,"永远不会进入");
    Wrapper<GonggaoEntity> queryWrapper = new EntityWrapper<GonggaoEntity>()
        .eq("gonggao_name", gonggao.getGonggaoName())
        .eq("gonggao_types", gonggao.getGonggaoTypes())
        ;
    logger.info("sql语句:"+queryWrapper.getSqlSegment());
    GonggaoEntity gonggaoEntity = gonggaoService.selectOne(queryWrapper);
    if(gonggaoEntity==null){
        gonggao.setInsertTime(new Date());
        gonggao.setCreateTime(new Date());
        gonggaoService.insert(gonggao);
        return R.ok();
    }else {
        return R.error(511,"表中有相同数据");
    }
}

教师管理

管理员进入如图所示的教师管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成教师信息的修改,删除等操作。

img

教师删除@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
    jiaoshiService.deleteBatchIds(Arrays.asList(ids));
    return R.ok();
}

学生管理

管理员进入如图所示的学生管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成学生信息的修改,删除等操作。学生的账号密码,管理员也能重置。

img

学生删除@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
    xueshengService.deleteBatchIds(Arrays.asList(ids));
    return R.ok();
}

教师功能实现

教学计划管理

教师进入如图所示的教学计划管理界面之后,教师点击信息显示栏中最右侧的修改,删除按钮可依次完成教学计划信息的修改,删除等操作。教学计划信息包括教学计划文件,教学计划名称,教学计划编号等信息,教师可以添加教学计划。

img

添加教学计划@RequestMapping("/save")
public R save(@RequestBody JiaoxuejihuaEntity jiaoxuejihua, HttpServletRequest request){
    logger.debug("save方法:,,Controller:{},,jiaoxuejihua:{}",this.getClass().getName(),jiaoxuejihua.toString());

    String role = String.valueOf(request.getSession().getAttribute("role"));
    if(false)
        return R.error(511,"永远不会进入");
    else if("教师".equals(role))
        jiaoxuejihua.setJiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

    Wrapper<JiaoxuejihuaEntity> queryWrapper = new EntityWrapper<JiaoxuejihuaEntity>()
        .eq("jiaoshi_id", jiaoxuejihua.getJiaoshiId())
        .eq("kecheng_id", jiaoxuejihua.getKechengId())
        .eq("jiaoxuejihua_uuid_number", jiaoxuejihua.getJiaoxuejihuaUuidNumber())
        .eq("jiaoxuejihua_name", jiaoxuejihua.getJiaoxuejihuaName())
        .eq("jiaoxuejihua_types", jiaoxuejihua.getJiaoxuejihuaTypes())
        ;

    logger.info("sql语句:"+queryWrapper.getSqlSegment());
    JiaoxuejihuaEntity jiaoxuejihuaEntity = jiaoxuejihuaService.selectOne(queryWrapper);
    if(jiaoxuejihuaEntity==null){
        jiaoxuejihua.setInsertTime(new Date());
        jiaoxuejihua.setCreateTime(new Date());
        jiaoxuejihuaService.insert(jiaoxuejihua);
        return R.ok();
    }else {
        return R.error(511,"表中有相同数据");
    }
}

课程管理

教师进入如图所示的课程管理界面之后,教师点击信息显示栏中最右侧的修改,删除,下架按钮可依次完成课程信息的修改,删除,下架等操作。课程信息包括课程热度,课程视频,课程编号,课程名称等信息。教师也能添加课程。

img

添加课程@RequestMapping("/save")
public R save(@RequestBody KechengEntity kecheng, HttpServletRequest request){
    logger.debug("save方法:,,Controller:{},,kecheng:{}",this.getClass().getName(),kecheng.toString());

    String role = String.valueOf(request.getSession().getAttribute("role"));
    if(false)
        return R.error(511,"永远不会进入");
    else if("教师".equals(role))
        kecheng.setJiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

    Wrapper<KechengEntity> queryWrapper = new EntityWrapper<KechengEntity>()
        .eq("jiaoshi_id", kecheng.getJiaoshiId())
        .eq("kecheng_name", kecheng.getKechengName())
        .eq("kecheng_uuid_number", kecheng.getKechengUuidNumber())
        .eq("kecheng_video", kecheng.getKechengVideo())
        .eq("kecheng_types", kecheng.getKechengTypes())
        .eq("kecheng_clicknum", kecheng.getKechengClicknum())
        .eq("shangxia_types", kecheng.getShangxiaTypes())
        .eq("kecheng_delete", kecheng.getKechengDelete())
        ;

    logger.info("sql语句:"+queryWrapper.getSqlSegment());
    KechengEntity kechengEntity = kechengService.selectOne(queryWrapper);
    if(kechengEntity==null){
        kecheng.setKechengClicknum(1);
        kecheng.setShangxiaTypes(1);
        kecheng.setKechengDelete(1);
        kecheng.setCreateTime(new Date());
        kechengService.insert(kecheng);
        return R.ok();
    }else {
        return R.error(511,"表中有相同数据");
    }
}

课程留言管理

教师进入如图所示的课程留言管理界面之后,教师点击信息显示栏中最右侧的详情,回复按钮可依次完成课程留言信息的详情查看,留言回复等操作。

img

回复留言   @RequestMapping("/update")
public R update(@RequestBody KechengLiuyanEntity kechengLiuyan, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,kechengLiuyan:{}",this.getClass().getName(),kechengLiuyan.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("学生".equals(role))
//            kechengLiuyan.setXueshengId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
        //根据字段查询是否有相同数据
        Wrapper<KechengLiuyanEntity> queryWrapper = new EntityWrapper<KechengLiuyanEntity>()
            .eq("id",0)
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        KechengLiuyanEntity kechengLiuyanEntity = kechengLiuyanService.selectOne(queryWrapper);
        kechengLiuyan.setUpdateTime(new Date());
        if(kechengLiuyanEntity==null){
            kechengLiuyanService.updateById(kechengLiuyan);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

学生功能实现

课程信息

学生进入如图所示的课程信息界面之后,学生通过播放课程视频的方式学习课程知识,学生也能查看课程的知识要点,考试大纲等信息,还可以发布课程的留言信息。

img

通知公告

学生进入如图所示的通知公告界面之后,学生根据通知公告类型筛选通知公告信息,学生可以查看通知公告的具体内容。

img

更改个人信息

学生进入如图所示的更改个人信息界面之后,学生重新上传头像来替换现有的头像,以及对电子邮箱,手机号等产生变化的数据进行更改,更改了数据之后,需要学生点击更新信息按钮来保存更改的数据。

img

更改个人信息  @RequestMapping("/update")
public R update(@RequestBody XueshengEntity xuesheng, HttpServletRequest request){logger.debug("update方法:,,Controller:{},,xuesheng:{}",this.getClass().getName(),xuesheng.toString());
        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
        //根据字段查询是否有相同数据
        Wrapper<XueshengEntity> queryWrapper = new EntityWrapper<XueshengEntity>()
            .notIn("id",xuesheng.getId())
            .andNew()
            .eq("username", xuesheng.getUsername())
            .or()
            .eq("xuesheng_phone", xuesheng.getXueshengPhone())
            .or()
            .eq("xuesheng_id_number", xuesheng.getXueshengIdNumber());
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        XueshengEntity xueshengEntity = xueshengService.selectOne(queryWrapper);
        if("".equals(xuesheng.getXueshengPhoto()) || "null".equals(xuesheng.getXueshengPhoto())){
                xuesheng.setXueshengPhoto(null); }
        if(xueshengEntity==null){
            xueshengService.updateById(xuesheng);//根据id更新
            return R.ok(); }else {
            return R.error(511,"账户或者学生手机号或者学生身份证号已经被使用");}}