项目介绍
一个简单的“在线教学平台系统”,实现基本的选课功能。
主要功能:
管理员能够实现学生基本信息的录入、修改、删除等操作,其中学生信息包括学号、姓名、性别、专业等信息;
管理员能够实现课程的录入、修改、删除等功能,其中课程信息包括课程号、课程名、课程图片、学分等;
学生能实现选课功能,每个学生可以在首页浏览课程信息,并可以进行选课操作,其中课程信息包括学分、上课地点、课程编号、授课教师、课程名等信息;
管理员可以查看学生选课信息,并可以进行添加选课学生和删除选择该课程的学生等操作;
有汇总功能,管理员首页可以查看没门课程的选课人数。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者Mac OS;
5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;
软件架构
系统是一个基于SSM框架实现的项目,采用当前最流行的框架Spring-SpringMVC-MyBatis设计。
前端:HTML+BootStrap+CSS+Javascript
后端:Spring+SpringMVC+mybatis
使用说明
1.使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,下载所需jar包;
2.使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
3.将项目中db.properties配置文件中的数据库配置改为自己的配置
4.配置tomcat,然后运行项目,输入localhost:8080/xxx登录
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
try{
Map<String,Object> map = new HashMap<>();
PageHelper.startPage(page , limit);
List<SelectableCourse> list = selectableCourseDAO.selectByUser(username);
if(list == null){
return Msg.fail();
}
//System.out.println("=="+username+"==");
PageInfo<SelectableCourse> pageInfo = new PageInfo<>(list);
map.put("totalPage" , pageInfo.getPages()); //总页数
map.put("totalCount" , pageInfo.getTotal()); //总条数
map.put("currentPage" , page); //当前页数。
map.put("data" , pageInfo.getList()); //获得的数据量
map.put("tCase",username);
return JSON.toJSON(map);
}catch(Exception e){
e.printStackTrace();
return Msg.fail();
}
}
//测试。
@PostMapping("cc")
public Object cc(){
Map<String,Object> map = new HashMap<>();
try{
selectableCourseDAO.updateMinCourseStock(1);
@RestController
@RequestMapping("usercourse")
@Api
public class UserCourseController{
@Autowired
UserCourseService userCourseService;
@Autowired
SelectableCourseDAO selectableCourseDAO;
/**
* 选课
* @param courseId
* @param username
* @return
*/
@PostMapping("choose")
@PreAuthorize("hasAuthority('student')")
public Object chooseCourse(@RequestParam("courseId") Integer courseId ,
@RequestParam("username") String username){
Map<String,Object> map = new HashMap<>();
try{
return userCourseService.chooseCourse(courseId , username);
}catch(Exception e){
if(e instanceof DataIntegrityViolationException){
map.put("msg","该课程已经被抢完啦。");
}else{
map.put("msg","出现其他异常,选课失败!");
//System.out.println("=="+username+"==");
PageInfo<SelectableCourse> pageInfo = new PageInfo<>(list);
map.put("totalPage" , pageInfo.getPages()); //总页数
map.put("totalCount" , pageInfo.getTotal()); //总条数
map.put("currentPage" , page); //当前页数。
map.put("data" , pageInfo.getList()); //获得的数据量
map.put("tCase",username);
return JSON.toJSON(map);
}catch(Exception e){
e.printStackTrace();
return Msg.fail();
}
}
//测试。
@PostMapping("cc")
public Object cc(){
Map<String,Object> map = new HashMap<>();
try{
selectableCourseDAO.updateMinCourseStock(1);
return true;
}catch(Exception e){
if(e instanceof DataIntegrityViolationException){
map.put("msg","该课程已经被抢完啦。");
}else{
@Api
public class UserCourseController{
@Autowired
UserCourseService userCourseService;
@Autowired
SelectableCourseDAO selectableCourseDAO;
/**
* 选课
* @param courseId
* @param username
* @return
*/
@PostMapping("choose")
@PreAuthorize("hasAuthority('student')")
*/
@GetMapping("/ExcelDownload")
@PreAuthorize("hasAuthority('admin')")
public void excelDownload(HttpServletResponse response) throws IOException{
adminService.excelOut(response);
}
/**
* 课程管理
* @return
*/
@GetMapping("/courseManage")
@PreAuthorize("hasAnyAuthority('admin')")
public String courseManage(){
selectableCourseDAO.updateMinCourseStock(1);
return true;
}catch(Exception e){
if(e instanceof DataIntegrityViolationException){
map.put("msg","该课程已经被抢完啦。");
}else{
map.put("msg","出现其他异常,选课失败!");
}
map.put("flag",false);
return JSON.toJSON(map);
}
}
}
管理员管理控制层:
@Controller
@Api
public class AdminController{
@Autowired
AdminService adminService;
}
/**
* 课程管理
* @return
*/
@GetMapping("/courseManage")
@PreAuthorize("hasAnyAuthority('admin')")
public String courseManage(){
return "courseManage";
}
/**
* 添加课程
* @return
*/
@GetMapping("/addCourse")
public Object cancelCourse(@RequestParam("courseId") Integer courseId ,
@RequestParam("username") String username){
return userCourseService.cancelCourse(courseId,username);
}
/**
* 获取学生所选全部课程
* @param page
* @param limit
* @param username
* @return
*/
@PostMapping("studentInfo")
@PreAuthorize("hasAuthority('admin') or hasAuthority('student')")
public Object studentInfo(@RequestParam(value = "page", defaultValue = "1") int page ,
@RequestParam(value = "limit", defaultValue = "10") int limit ,
@RequestParam("username")String username){
try{
try{
Map<String,Object> map = new HashMap<>();
PageHelper.startPage(page , limit);
List<SelectableCourse> list = selectableCourseDAO.selectByUser(username);
if(list == null){
return Msg.fail();
}
//System.out.println("=="+username+"==");
PageInfo<SelectableCourse> pageInfo = new PageInfo<>(list);
map.put("totalPage" , pageInfo.getPages()); //总页数
map.put("totalCount" , pageInfo.getTotal()); //总条数
map.put("currentPage" , page); //当前页数。
map.put("data" , pageInfo.getList()); //获得的数据量
map.put("tCase",username);
return JSON.toJSON(map);
}catch(Exception e){
e.printStackTrace();
return Msg.fail();
}
}
//测试。
@PostMapping("cc")
return userCourseService.chooseCourse(courseId , username);
}catch(Exception e){
if(e instanceof DataIntegrityViolationException){
map.put("msg","该课程已经被抢完啦。");
}else{
map.put("msg","出现其他异常,选课失败!");
}
map.put("flag",false);
return JSON.toJSON(map);
}
}
/**
* 退课
* @param courseId
* @param username
* @return
*/
@PostMapping("cancel")
@PreAuthorize("hasAuthority('student')")
public Object cancelCourse(@RequestParam("courseId") Integer courseId ,
@RequestParam("username") String username){
return userCourseService.cancelCourse(courseId,username);
}
/**
* 获取学生所选全部课程