温馨提示:这篇文章已超过441天没有更新,请注意相关的内容是否还可用!
摘要:基于Springboot和Vue框架,结合微信小程序技术,开发了一款在线学习平台。该平台提供便捷的学习体验,利用微信小程序的用户基础,实现移动学习资源的无缝接入。通过Springboot构建后端架构,Vue负责前端界面开发,小程序作为移动端的延伸,共同构建一个高效、互动的在线学习生态系统。
一、项目介绍
基于Spring Boot+Vue+小程序的在线学习平台从实际情况出发,结合当前年轻人的学习环境喜好来开发。基于Spring Boot+Vue+小程序的在线学习平台在语言上使用Java语言进行开发,在数据库存储方面使用的MySQL数据库,开发工具是IDEA。
功能丰富,项目保证质量,需要可以最底下查看QQ二维码找我私聊。运行讲解服务均可有尝提供,即便你是零基础,也能听懂的优秀讲解老师。
功能:
1.个人中心修改密码里查看个人信息
2.教师管理
3.学生管理
4.课程视频管理
5.课程签到管理
6.课程问题管理
7.课程答题管理
8.答题成绩管理
9.课程类型管理
10.课程资料管理
11.通知信息管理
12.加入课程管理
13.学习论坛管理
14.课程考试管理
15.试题管理
16.系统简介,轮播图,平台公告,关于我们管理
17.考试管理
关键词:商品;购物;Spring Boot框架;MySQL
二、开发环境
开发语言:Java
框架:springboot + vue + 小程序
JDK版本:JDK1.8
数据库:mysql
数据库工具:Navicat11
开发软件:idea/vscode/eclipse
Maven包:Maven
表结构示例:
表名:kechengxinxi
功能:课程信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kechengbianhao | varchar | 200 | 课程编号 | ||
kechengmingcheng | varchar | 200 | 课程名称 | ||
kechengleixing | varchar | 200 | 课程类型 | ||
keshi | varchar | 200 | 课时 | ||
xuefen | varchar | 200 | 学分 | ||
kechengtupian | longtext | 4294967295 | 课程图片 | ||
shangkeshijian | varchar | 200 | 上课时间 | ||
shangkedidian | varchar | 200 | 上课地点 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
kechengjieshao | longtext | 4294967295 | 课程介绍 |
表名:discusskechengshipin
功能:课程视频评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
avatarurl | longtext | 4294967295 | 头像 | ||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表名:kechengqiandao
功能:课程签到
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
kechengbianhao | varchar | 200 | 课程编号 | ||
kechengmingcheng | varchar | 200 | 课程名称 | ||
kechengtupian | longtext | 4294967295 | 课程图片 | ||
kechengleixing | varchar | 200 | 课程类型 | ||
jiaoshigonghao | varchar | 200 | 教师工号 | ||
jiaoshixingming | varchar | 200 | 教师姓名 | ||
zhangcheng | varchar | 200 | 章程 | ||
xuehao | varchar | 200 | 学号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
xueshengshouji | varchar | 200 | 学生手机 | ||
zhuanye | varchar | 200 | 专业 | ||
banji | varchar | 200 | 班级 | ||
qiandaoshijian | datetime | 签到时间 | |||
kechengxinde | longtext | 4294967295 | 课程心得 |
代码示例一,课程信息代码
package com.controller; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; import java.util.Map; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.annotation.IgnoreAuth; import com.entity.KechengxinxiEntity; import com.entity.view.KechengxinxiView; import com.service.KechengxinxiService; import com.utils.PageUtils; import com.utils.R; import com.utils.MPUtil; /** * 课程信息 * 后端接口 */ @RestController @RequestMapping("/kechengxinxi") public class KechengxinxiController { @Autowired private KechengxinxiService kechengxinxiService; /** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map params, KechengxinxiEntity kechengxinxi, HttpServletRequest request) { String tableName = request.getSession().getAttribute("tableName").toString(); if (tableName.equals("jiaoshi")) { kechengxinxi.setJiaoshigonghao((String) request.getSession().getAttribute("username")); } EntityWrapper ew = new EntityWrapper(); PageUtils page = kechengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengxinxi), params), params)); return R.ok().put("data", page); } /** * 前端列表 */ @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map params, KechengxinxiEntity kechengxinxi, HttpServletRequest request) { EntityWrapper ew = new EntityWrapper(); PageUtils page = kechengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengxinxi), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/lists") public R list(KechengxinxiEntity kechengxinxi) { EntityWrapper ew = new EntityWrapper(); ew.allEq(MPUtil.allEQMapPre(kechengxinxi, "kechengxinxi")); return R.ok().put("data", kechengxinxiService.selectListView(ew)); } /** * 查询 */ @RequestMapping("/query") public R query(KechengxinxiEntity kechengxinxi) { EntityWrapper ew = new EntityWrapper(); ew.allEq(MPUtil.allEQMapPre(kechengxinxi, "kechengxinxi")); KechengxinxiView kechengxinxiView = kechengxinxiService.selectView(ew); return R.ok("查询课程信息成功").put("data", kechengxinxiView); } /** * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id) { KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id); return R.ok().put("data", kechengxinxi); } /** * 前端详情 */ @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id) { KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id); return R.ok().put("data", kechengxinxi); } /** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) { kechengxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue()); //ValidatorUtils.validateEntity(kechengxinxi); kechengxinxiService.insert(kechengxinxi); return R.ok(); } /** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) { kechengxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue()); //ValidatorUtils.validateEntity(kechengxinxi); kechengxinxiService.insert(kechengxinxi); return R.ok(); } /** * 修改 */ @RequestMapping("/update") @Transactional public R update(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) { kechengxinxiService.updateById(kechengxinxi);//全部更新 return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids) { kechengxinxiService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } /** * 提醒接口 */ @RequestMapping("/remind/{columnName}/{type}") public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type, @RequestParam Map map) { map.put("column", columnName); map.put("type", type); if (type.equals("2")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date remindStartDate = null; Date remindEndDate = null; if (map.get("remindstart") != null) { Integer remindStart = Integer.parseInt(map.get("remindstart").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH, remindStart); remindStartDate = c.getTime(); map.put("remindstart", sdf.format(remindStartDate)); } if (map.get("remindend") != null) { Integer remindEnd = Integer.parseInt(map.get("remindend").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH, remindEnd); remindEndDate = c.getTime(); map.put("remindend", sdf.format(remindEndDate)); } } Wrapper wrapper = new EntityWrapper(); if (map.get("remindstart") != null) { wrapper.ge(columnName, map.get("remindstart")); } if (map.get("remindend") != null) { wrapper.le(columnName, map.get("remindend")); } String tableName = request.getSession().getAttribute("tableName").toString(); if (tableName.equals("jiaoshi")) { wrapper.eq("jiaoshigonghao", (String) request.getSession().getAttribute("username")); } int count = kechengxinxiService.selectCount(wrapper); return R.ok().put("count", count); } }
课程名称 课程类型 教师姓名 查询 新增 删除 {{ scope.row.kechengbianhao }} {{ scope.row.kechengmingcheng }} {{ scope.row.kechengleixing }} {{ scope.row.keshi }} {{ scope.row.xuefen }}无图片 {{ scope.row.shangkeshijian }} {{ scope.row.shangkedidian }} {{ scope.row.jiaoshigonghao }} {{ scope.row.jiaoshixingming }} 详情 加入课程 发布视频 发布资料 修改 查看评论 删除
三.关于我的联系方式
还没有评论,来说两句吧...