• SpringBoot+Vue+Element-UI实现自动排课系统


    文末获取源码

    开发语言:Java

    框架:springboot

    JDK版本:JDK1.8

    服务器:tomcat7

    数据库:mysql 5.7/8.0

    数据库工具:Navicat11

    开发软件:eclipse/myeclipse/idea

    Maven包:Maven3.3.9

    浏览器:谷歌浏览器

    前言介绍

    自动排课系统也都将通过计算机进行整体智能化操作,对于自动排课系统所牵扯的管理及数据保存都是非常多的,例如(1)管理员;首页、个人中心、学生管理、教师管理、班级信息管理、专业信息管理、教室信息管理、课程信息管理、排课信息管理、系统管理,(2)学生;首页、个人中心、排课信息管理,(3)教师;首页、个人中心、课程信息管理、排课信息管理,(4)前台首页;首页、教室信息、课程信息、公告信息、个人中心、后台管理等功能,这给管理者的工作带来了巨大的挑战,面对大量的信息,传统的管理系统,都是通过笔记的方式进行详细信息的统计,后来出现电脑,通过电脑输入软件将纸质的信息统计到电脑上,这种方式比较传统,而且想要统计数据信息比较麻烦,还受时间和空间的影响,所以为此开发了自动排课系统;为学生提供了方便管理平台,方便管理员查看及维护,并且可以通过需求进行内容的编辑及维护等;对于学生和教师而言,可以随时进行查询所需信息,管理员可以足不出户就可以获取到系统的数据信息等,而且还能节省学生和教师很多时间,所以开发自动排课系统给管理者带来了很大的方便,同时也方便管理员对学生及教师信息进行处理。 

    系统功能分析和描述 

    使用自动排课系统分为管理员和学生、教师三个角色的权限子模块。

    管理员所能使用的功能主要有:首页、个人中心、学生管理、教师管理、班级信息管理、专业信息管理、教室信息管理、课程信息管理、排课信息管理、系统管理等。

    学生可以实现首页、个人中心、排课信息管理等。

    教师可以实现首页、个人中心、课程信息管理、排课信息管理等。

    系统展示 

    首页

    教室信息

    课程信息 

    管理员页面

    教室信息管理

    排课信息管理

    学生页面

    排课信息管理

    教师页面

    课程信息管理

    部分核心代码 

    排课信息

    1. /**
    2. * 排课信息
    3. * 后端接口
    4. * @author
    5. * @email
    6. * @date 2021-12-28 16:21:56
    7. */
    8. @RestController
    9. @RequestMapping("/paikexinxi")
    10. public class PaikexinxiController {
    11. @Autowired
    12. private PaikexinxiService paikexinxiService;
    13. /**
    14. * 后端列表
    15. */
    16. @RequestMapping("/page")
    17. public R page(@RequestParam Map<String, Object> params,PaikexinxiEntity paikexinxi,
    18. HttpServletRequest request){
    19. String tableName = request.getSession().getAttribute("tableName").toString();
    20. if(tableName.equals("jiaoshi")) {
    21. paikexinxi.setJiaoshigonghao((String)request.getSession().getAttribute("username"));
    22. }
    23. if(tableName.equals("xuesheng")) {
    24. paikexinxi.setXuehao((String)request.getSession().getAttribute("username"));
    25. }
    26. EntityWrapper<PaikexinxiEntity> ew = new EntityWrapper<PaikexinxiEntity>();
    27. PageUtils page = paikexinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, paikexinxi), params), params));
    28. return R.ok().put("data", page);
    29. }
    30. /**
    31. * 前端列表
    32. */
    33. @RequestMapping("/list")
    34. public R list(@RequestParam Map<String, Object> params,PaikexinxiEntity paikexinxi,
    35. HttpServletRequest request){
    36. EntityWrapper<PaikexinxiEntity> ew = new EntityWrapper<PaikexinxiEntity>();
    37. PageUtils page = paikexinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, paikexinxi), params), params));
    38. return R.ok().put("data", page);
    39. }
    40. /**
    41. * 列表
    42. */
    43. @RequestMapping("/lists")
    44. public R list( PaikexinxiEntity paikexinxi){
    45. EntityWrapper<PaikexinxiEntity> ew = new EntityWrapper<PaikexinxiEntity>();
    46. ew.allEq(MPUtil.allEQMapPre( paikexinxi, "paikexinxi"));
    47. return R.ok().put("data", paikexinxiService.selectListView(ew));
    48. }
    49. /**
    50. * 查询
    51. */
    52. @RequestMapping("/query")
    53. public R query(PaikexinxiEntity paikexinxi){
    54. EntityWrapper< PaikexinxiEntity> ew = new EntityWrapper< PaikexinxiEntity>();
    55. ew.allEq(MPUtil.allEQMapPre( paikexinxi, "paikexinxi"));
    56. PaikexinxiView paikexinxiView = paikexinxiService.selectView(ew);
    57. return R.ok("查询排课信息成功").put("data", paikexinxiView);
    58. }
    59. /**
    60. * 后端详情
    61. */
    62. @RequestMapping("/info/{id}")
    63. public R info(@PathVariable("id") Long id){
    64. PaikexinxiEntity paikexinxi = paikexinxiService.selectById(id);
    65. return R.ok().put("data", paikexinxi);
    66. }
    67. /**
    68. * 前端详情
    69. */
    70. @RequestMapping("/detail/{id}")
    71. public R detail(@PathVariable("id") Long id){
    72. PaikexinxiEntity paikexinxi = paikexinxiService.selectById(id);
    73. return R.ok().put("data", paikexinxi);
    74. }
    75. /**
    76. * 后端保存
    77. */
    78. @RequestMapping("/save")
    79. public R save(@RequestBody PaikexinxiEntity paikexinxi, HttpServletRequest request){
    80. paikexinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    81. //ValidatorUtils.validateEntity(paikexinxi);
    82. paikexinxiService.insert(paikexinxi);
    83. return R.ok();
    84. }
    85. /**
    86. * 前端保存
    87. */
    88. @RequestMapping("/add")
    89. public R add(@RequestBody PaikexinxiEntity paikexinxi, HttpServletRequest request){
    90. paikexinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    91. //ValidatorUtils.validateEntity(paikexinxi);
    92. paikexinxiService.insert(paikexinxi);
    93. return R.ok();
    94. }
    95. /**
    96. * 修改
    97. */
    98. @RequestMapping("/update")
    99. public R update(@RequestBody PaikexinxiEntity paikexinxi, HttpServletRequest request){
    100. //ValidatorUtils.validateEntity(paikexinxi);
    101. paikexinxiService.updateById(paikexinxi);//全部更新
    102. return R.ok();
    103. }
    104. /**
    105. * 删除
    106. */
    107. @RequestMapping("/delete")
    108. public R delete(@RequestBody Long[] ids){
    109. paikexinxiService.deleteBatchIds(Arrays.asList(ids));
    110. return R.ok();
    111. }
    112. /**
    113. * 提醒接口
    114. */
    115. @RequestMapping("/remind/{columnName}/{type}")
    116. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    117. @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    118. map.put("column", columnName);
    119. map.put("type", type);
    120. if(type.equals("2")) {
    121. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    122. Calendar c = Calendar.getInstance();
    123. Date remindStartDate = null;
    124. Date remindEndDate = null;
    125. if(map.get("remindstart")!=null) {
    126. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    127. c.setTime(new Date());
    128. c.add(Calendar.DAY_OF_MONTH,remindStart);
    129. remindStartDate = c.getTime();
    130. map.put("remindstart", sdf.format(remindStartDate));
    131. }
    132. if(map.get("remindend")!=null) {
    133. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    134. c.setTime(new Date());
    135. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    136. remindEndDate = c.getTime();
    137. map.put("remindend", sdf.format(remindEndDate));
    138. }
    139. }
    140. Wrapper<PaikexinxiEntity> wrapper = new EntityWrapper<PaikexinxiEntity>();
    141. if(map.get("remindstart")!=null) {
    142. wrapper.ge(columnName, map.get("remindstart"));
    143. }
    144. if(map.get("remindend")!=null) {
    145. wrapper.le(columnName, map.get("remindend"));
    146. }
    147. String tableName = request.getSession().getAttribute("tableName").toString();
    148. if(tableName.equals("jiaoshi")) {
    149. wrapper.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
    150. }
    151. if(tableName.equals("xuesheng")) {
    152. wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));
    153. }
    154. int count = paikexinxiService.selectCount(wrapper);
    155. return R.ok().put("count", count);
    156. }
    157. }

    登录页面

    1. /**
    2. * 登录相关
    3. */
    4. @RequestMapping("users")
    5. @RestController
    6. public class UserController{
    7. @Autowired
    8. private UserService userService;
    9. @Autowired
    10. private TokenService tokenService;
    11. /**
    12. * 登录
    13. */
    14. @IgnoreAuth
    15. @PostMapping(value = "/login")
    16. public R login(String username, String password, String captcha, HttpServletRequest request) {
    17. UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    18. if(user==null || !user.getPassword().equals(password)) {
    19. return R.error("账号或密码不正确");
    20. }
    21. String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
    22. return R.ok().put("token", token);
    23. }
    24. /**
    25. * 注册
    26. */
    27. @IgnoreAuth
    28. @PostMapping(value = "/register")
    29. public R register(@RequestBody UserEntity user){
    30. // ValidatorUtils.validateEntity(user);
    31. if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    32. return R.error("用户已存在");
    33. }
    34. userService.insert(user);
    35. return R.ok();
    36. }
    37. /**
    38. * 退出
    39. */
    40. @GetMapping(value = "logout")
    41. public R logout(HttpServletRequest request) {
    42. request.getSession().invalidate();
    43. return R.ok("退出成功");
    44. }
    45. /**
    46. * 密码重置
    47. */
    48. @IgnoreAuth
    49. @RequestMapping(value = "/resetPass")
    50. public R resetPass(String username, HttpServletRequest request){
    51. UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    52. if(user==null) {
    53. return R.error("账号不存在");
    54. }
    55. user.setPassword("123456");
    56. userService.update(user,null);
    57. return R.ok("密码已重置为:123456");
    58. }
    59. /**
    60. * 列表
    61. */
    62. @RequestMapping("/page")
    63. public R page(@RequestParam Map<String, Object> params,UserEntity user){
    64. EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    65. PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
    66. return R.ok().put("data", page);
    67. }
    68. /**
    69. * 列表
    70. */
    71. @RequestMapping("/list")
    72. public R list( UserEntity user){
    73. EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    74. ew.allEq(MPUtil.allEQMapPre( user, "user"));
    75. return R.ok().put("data", userService.selectListView(ew));
    76. }
    77. /**
    78. * 信息
    79. */
    80. @RequestMapping("/info/{id}")
    81. public R info(@PathVariable("id") String id){
    82. UserEntity user = userService.selectById(id);
    83. return R.ok().put("data", user);
    84. }
    85. /**
    86. * 获取用户的session用户信息
    87. */
    88. @RequestMapping("/session")
    89. public R getCurrUser(HttpServletRequest request){
    90. Long id = (Long)request.getSession().getAttribute("userId");
    91. UserEntity user = userService.selectById(id);
    92. return R.ok().put("data", user);
    93. }
    94. /**
    95. * 保存
    96. */
    97. @PostMapping("/save")
    98. public R save(@RequestBody UserEntity user){
    99. // ValidatorUtils.validateEntity(user);
    100. if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    101. return R.error("用户已存在");
    102. }
    103. userService.insert(user);
    104. return R.ok();
    105. }
    106. /**
    107. * 修改
    108. */
    109. @RequestMapping("/update")
    110. public R update(@RequestBody UserEntity user){
    111. // ValidatorUtils.validateEntity(user);
    112. UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    113. if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    114. return R.error("用户名已存在。");
    115. }
    116. userService.updateById(user);//全部更新
    117. return R.ok();
    118. }
    119. /**
    120. * 删除
    121. */
    122. @RequestMapping("/delete")
    123. public R delete(@RequestBody Long[] ids){
    124. userService.deleteBatchIds(Arrays.asList(ids));
    125. return R.ok();
    126. }
    127. }

  • 相关阅读:
    python机器学习入门之numpy的用法(超详细,必看)
    [ubuntu]修改时区和更新时间
    Linux学习之Redis使用
    Word控件Spire.Doc 【段落处理】教程(四):如何在 C#、VB.NET 中设置 Word 项目符号样式
    C/C++语言100题练习计划 73——Error(二分答案算法实现)
    BottomNavigation 底部导航模版
    linux ssh 禁止指定用户通过ssh登录
    【面经】携程数据仓库面经
    【数据结构】B树(B-树)和B+树
    【Qt】控件探幽——QLineEdit
  • 原文地址:https://blog.csdn.net/m0_49113107/article/details/126554282