springboot在线教育系统设计与实现

发布时间:2024年01月19日

微服务在线教育系统设计与实现

摘要

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了微服务在线教育系统的开发全过程。通过分析微服务在线教育系统管理的不足,创建了一个计算机管理微服务在线教育系统的方案。文章介绍了微服务在线教育系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。

本微服务在线教育系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,课程信息管理,课程类型管理,学科管理,购买的课程管理,职业规划管理,视频点播管理,我的笔记管理,我的课程管理,消息通知管理,学习交流,试卷管理,留言板管理,试题管理,系统管理,考试管理。用户功能有个人中心,用户管理,购买的课程管理,我的笔记管理,我的课程管理,消息通知管理。因而具有一定的实用性。

本站是一个B/S模式系统,采用SSM框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得微服务在线教育系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高微服务在线教育系统管理效率。

springboot在线教育系统设计与实现049

关键词:微服务在线教育系统;SSM框架;MYSQL数据库;Spring Boot

演示视频:

springboot在线教育系统源码和论文PPT

Abstract

With the deepening and extensive application of information technology in management, the implementation of management information systems has gradually matured in technology. This article introduces the whole process of the development of the microservice online education system. By analyzing the deficiencies in the management of the microservice online education system, a computer-managed microservice online education system was created. The article introduces the system analysis part of the microservice online education system, including feasibility analysis, etc. The system design part mainly introduces the system function design and database design.

This microservice online education system has two roles: administrator and user. Administrator functions include personal center, user management, course information management, course type management, subject management, purchased course management, career planning management, video-on-demand management, my notes management, my course management, message notification management, learning exchanges , Test paper management, message board management, test question management, system management, exam management. User functions include personal center, user management, purchased course management, my notes management, my course management, and message notification management. So it has a certain practicability.

This site is a B/S mode system, using SSM framework, MYSQL database design and development, fully guarantee the stability of the system. The system has the characteristics of clear interface, simple operation and complete functions, which makes the management of the microservice online education system systematized and standardized. The use of this system frees managers from heavy work, realizes a paperless office, and can effectively improve the management efficiency of the microservice online education system.

Keywords:?Microservice online education system; SSM framework; MYSQL database; Spring Boot

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
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.ShipindianboEntity;
import com.entity.view.ShipindianboView;

import com.service.ShipindianboService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 视频点播
 * 后端接口
 * @author 
 * @email 
 * @date 2021-05-09 15:46:14
 */
@RestController
@RequestMapping("/shipindianbo")
public class ShipindianboController {
    @Autowired
    private ShipindianboService shipindianboService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ShipindianboEntity shipindianbo,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			shipindianbo.setYonghuzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<ShipindianboEntity> ew = new EntityWrapper<ShipindianboEntity>();
		PageUtils page = shipindianboService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shipindianbo), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,ShipindianboEntity shipindianbo, 
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			shipindianbo.setYonghuzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<ShipindianboEntity> ew = new EntityWrapper<ShipindianboEntity>();
		PageUtils page = shipindianboService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shipindianbo), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( ShipindianboEntity shipindianbo){
       	EntityWrapper<ShipindianboEntity> ew = new EntityWrapper<ShipindianboEntity>();
      	ew.allEq(MPUtil.allEQMapPre( shipindianbo, "shipindianbo")); 
        return R.ok().put("data", shipindianboService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ShipindianboEntity shipindianbo){
        EntityWrapper< ShipindianboEntity> ew = new EntityWrapper< ShipindianboEntity>();
 		ew.allEq(MPUtil.allEQMapPre( shipindianbo, "shipindianbo")); 
		ShipindianboView shipindianboView =  shipindianboService.selectView(ew);
		return R.ok("查询视频点播成功").put("data", shipindianboView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ShipindianboEntity shipindianbo = shipindianboService.selectById(id);
        return R.ok().put("data", shipindianbo);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        ShipindianboEntity shipindianbo = shipindianboService.selectById(id);
        return R.ok().put("data", shipindianbo);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody ShipindianboEntity shipindianbo, HttpServletRequest request){
    	shipindianbo.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shipindianbo);
        shipindianboService.insert(shipindianbo);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody ShipindianboEntity shipindianbo, HttpServletRequest request){
    	shipindianbo.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shipindianbo);
    	shipindianbo.setUserid((Long)request.getSession().getAttribute("userId"));
        shipindianboService.insert(shipindianbo);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ShipindianboEntity shipindianbo, HttpServletRequest request){
        //ValidatorUtils.validateEntity(shipindianbo);
        shipindianboService.updateById(shipindianbo);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        shipindianboService.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<String, Object> 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<ShipindianboEntity> wrapper = new EntityWrapper<ShipindianboEntity>();
		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("yonghu")) {
			wrapper.eq("yonghuzhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = shipindianboService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}
package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
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.XiaoxitongzhiEntity;
import com.entity.view.XiaoxitongzhiView;

import com.service.XiaoxitongzhiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 消息通知
 * 后端接口
 * @author 
 * @email 
 * @date 2021-05-09 15:46:15
 */
@RestController
@RequestMapping("/xiaoxitongzhi")
public class XiaoxitongzhiController {
    @Autowired
    private XiaoxitongzhiService xiaoxitongzhiService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,XiaoxitongzhiEntity xiaoxitongzhi,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			xiaoxitongzhi.setYonghuzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<XiaoxitongzhiEntity> ew = new EntityWrapper<XiaoxitongzhiEntity>();
		PageUtils page = xiaoxitongzhiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiaoxitongzhi), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,XiaoxitongzhiEntity xiaoxitongzhi, 
		HttpServletRequest request){
        EntityWrapper<XiaoxitongzhiEntity> ew = new EntityWrapper<XiaoxitongzhiEntity>();
		PageUtils page = xiaoxitongzhiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiaoxitongzhi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( XiaoxitongzhiEntity xiaoxitongzhi){
       	EntityWrapper<XiaoxitongzhiEntity> ew = new EntityWrapper<XiaoxitongzhiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( xiaoxitongzhi, "xiaoxitongzhi")); 
        return R.ok().put("data", xiaoxitongzhiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(XiaoxitongzhiEntity xiaoxitongzhi){
        EntityWrapper< XiaoxitongzhiEntity> ew = new EntityWrapper< XiaoxitongzhiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( xiaoxitongzhi, "xiaoxitongzhi")); 
		XiaoxitongzhiView xiaoxitongzhiView =  xiaoxitongzhiService.selectView(ew);
		return R.ok("查询消息通知成功").put("data", xiaoxitongzhiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        XiaoxitongzhiEntity xiaoxitongzhi = xiaoxitongzhiService.selectById(id);
        return R.ok().put("data", xiaoxitongzhi);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        XiaoxitongzhiEntity xiaoxitongzhi = xiaoxitongzhiService.selectById(id);
        return R.ok().put("data", xiaoxitongzhi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody XiaoxitongzhiEntity xiaoxitongzhi, HttpServletRequest request){
    	xiaoxitongzhi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xiaoxitongzhi);
        xiaoxitongzhiService.insert(xiaoxitongzhi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody XiaoxitongzhiEntity xiaoxitongzhi, HttpServletRequest request){
    	xiaoxitongzhi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xiaoxitongzhi);
        xiaoxitongzhiService.insert(xiaoxitongzhi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody XiaoxitongzhiEntity xiaoxitongzhi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(xiaoxitongzhi);
        xiaoxitongzhiService.updateById(xiaoxitongzhi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        xiaoxitongzhiService.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<String, Object> 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<XiaoxitongzhiEntity> wrapper = new EntityWrapper<XiaoxitongzhiEntity>();
		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("yonghu")) {
			wrapper.eq("yonghuzhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = xiaoxitongzhiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

文章来源:https://blog.csdn.net/2303_80201259/article/details/135620596
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。