私信或留言即免费送开题报告和任务书(可指定任意题目)
目录
一、摘要
随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于在线视频教育平台当然也不能排除在外,随着网络技术的不断成熟,带动了在线视频教育平台,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对在线视频教育平台而言非常有利。
本系统采用的数据库是Mysql,使用SpringBoot框架开发,运行环境使用Tomcat服务器,ECLIPSE 是本系统的开发平台。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
关键字:在线视频教育平台 Mysql数据库 SpringBoot框架
二、相关技术
java、tomcat、mysql、spring、springBoot、mybatis、query、vue
三、系统设计
3.1 整体功能设计图
3.2 功能具体细节设计
用户功能模块
用户点击进入到系统操作界面,可以对首页、个人中心、课程信息管理、我的收藏管理、订单管理等功能模块,个人信息:通过列表可以获取账号、密码、姓名、性别、手机、邮箱、照片、备注并进行修改操作,如图5-1所示。
课程信息管理:通过列表可以获取课程编号、课程名称、课程类型、关键字、课时、课程详情、封面、教师工号、教师姓名、价格、审核回复、审核状态等信息进行详情或查看评论操作,如图5-2所示。
我的收藏管理:通过列表可以获取收藏名称、收藏图片等信息,进行详情、修改及删除操作,如图5-3所示。
订单管理:通过列表可以获取订单管理;订单编号、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、状态、地址等信息,进行详情、修改、删除等操作,如图5-4所示。
管理员功能模块
管理员通过用户名和密码、角色填写完成后进行登录,如图5-5所示。管理员登录成功后进入到系统操作界面,可以对首页、个人中心、用户管理、教师管理、课程信息管理、课程类型管理、我的收藏管理、系统管理、订单管理等功能模块进行相对应操作。
用户管理:通过列表可以获账号、密码、姓名、性别、手机、邮箱、照片、备注等内容,可以进行详情、修改或删除操作,如图5-6所示。
教师功能模块
教师点击进入到系统操作界面,可以对首页、个人中心、课程信息管理、我的收藏管理等功能模块,课程信息管理页面通过列表可以获取课程编号、课程名称、课程类型、关键字、课时、课程详情、封面、教师工号、教师姓名、价格、审核回复、审核状态并进行详情、修改、查看评论或删除等操作,如图5-13所示。
前台首页功能模块
在前台首页,在首页可以查看首页、课程信息、个人中心、后台管理、购物车等内容,如图5-15所示。
用户登录,在登录页面通过填写账号、密码、角色等信息完成登录,如图5-16所示。
四、数据库设计
用户管理实体E-R图,如图4.5所示。
教师管理E-R图,如图4.6所示。
五、核心代码
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
ShigudengjiEntity shigudengji = shigudengjiService.selectById(id);
if(shigudengji !=null){
//entity转view
ShigudengjiView view = new ShigudengjiView();
BeanUtils.copyProperties( shigudengji , view );//把实体数据重构到view中
//级联表
YonghuEntity yonghu = yonghuService.selectById(shigudengji.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYonghuId(yonghu.getId());
}
//级联表
YuangongEntity yuangong = yuangongService.selectById(shigudengji.getYuangongId());
if(yuangong != null){
BeanUtils.copyProperties( yuangong , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYuangongId(yuangong.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody ShigudengjiEntity shigudengji, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,shigudengji:{}",this.getClass().getName(),shigudengji.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"权限为空");
else if("员工".equals(role))
shigudengji.setYuangongId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
Wrapper<ShigudengjiEntity> queryWrapper = new EntityWrapper<ShigudengjiEntity>()
.eq("yonghu_id", shigudengji.getYonghuId())
.eq("yuangong_id", shigudengji.getYuangongId())
.eq("shigudengji_uuid_number", shigudengji.getShigudengjiUuidNumber())
.eq("shigudengji_name", shigudengji.getShigudengjiName())
.eq("shigudengji_types", shigudengji.getShigudengjiTypes())
.eq("zeren_types", shigudengji.getZerenTypes())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
ShigudengjiEntity shigudengjiEntity = shigudengjiService.selectOne(queryWrapper);
if(shigudengjiEntity==null){
shigudengji.setInsertTime(new Date());
shigudengji.setCreateTime(new Date());
shigudengjiService.insert(shigudengji);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
六、论文参考
七、源码获取
点赞、收藏、关注、评论啦。
联系即送开题报告和任务书,欢迎咨询
👇🏻获取联系方式在文章末尾👇🏻