——————————DescriptionStart——————————
运行环境 Java≥8、MySQL≥5.7
开发工具 eclipse/idea/myeclipse/sts等均可配置运行
适用 课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot大学生实习管理系统(java+springboot+thymeleaf+html+jquery+bootstrap+maven)
项目介绍
本系统的用户可以分为三种:管理员、教师、学生。三种角色登录后会有不同菜单界面;
管理员主要功能:
信息管理 学生信息管理、教师信息管理、生产实习信息管理、顶岗实习信息管理; 生产实习 生产实习申请、我的生产实习、我的成绩、我的申请 顶岗实习 顶岗实习申请、我的顶岗实习、我的成绩、我的申请 实习管理 生产实习管理 生产实习过程管理 生产实习成绩统计 顶岗实习审核 顶岗实习过程管理 顶岗实习成绩统计 分享 系统管理 用户管理 菜单管理 角色信息管理
教师主要功能:
信息管理 学生信息管理; 实习管理 生产实习审核 生产实习过程管理 生产实习成绩统计 顶岗实习审核 顶岗实习过程管理 顶岗实习成绩统计 分享 信息审核; 我的分享、讨论区;
学生主要功能:
生产实习: 生产实习申请; 我的生产实习; 我的成绩; 我的申请; 顶岗实习: 顶岗实习申请; 我的顶岗实习; 我的成绩; 我的申请; 分享: 我的分享; 讨论区;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7版本;
技术栈
1.核心框架:Spring Boot。 2.安全框架:Apache Shiro。 3.模板引擎:Thymeleaf。 4.持久层框架:MyBatis。 5.定时任务:Quartz。 6.数据库连接池:Druid。 7.工具类:Fastjson。 8.前端:Thymeleaf+html+JQuery+bootstrap
使用说明 运行项目,输入localhost:8092 登录
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 } public static String getHostIp () { try { return InetAddress.getLocalHost().getHostAddress(); } catch (UnknownHostException e) { } return "127.0.0.1" ; } public static String getHostName () { try { return InetAddress.getLocalHost().getHostName(); } catch (UnknownHostException e) { } return "未知" ; } } package com.ruoyi.web.controller.system;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 AjaxResult ajaxResult = AjaxResult.error("您已在别处登录,请您修改密码或重新登录" ); ServletUtils.renderString(res, objectMapper.writeValueAsString(ajaxResult)); } else { WebUtils.issueRedirect(request, response, kickoutUrl); } return false ; } public void setMaxSession (int maxSession) { this .maxSession = maxSession; } public void setKickoutAfter (boolean kickoutAfter) { this .kickoutAfter = kickoutAfter; } public void setKickoutUrl (String kickoutUrl) { this .kickoutUrl = kickoutUrl; } public void setSessionManager (SessionManager sessionManager) { this .sessionManager = sessionManager; } public void setCacheManager (CacheManager cacheManager) { this .cache = cacheManager.getCache(ShiroConstants.SYS_USERCACHE); } } package com.ruoyi.web.controller.sau;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 public AjaxResult deleteStudent (@RequestParam(value = "ids") String studentId) { try { userService.deleteUserByIds(studentId); } catch (Exception e) { return error(e.getMessage()); } int Count = studentService.deleteStudent(studentId); studentService.deleteStudent2(studentId); if (Count > 0 ){ return AjaxResult.success("删除学生信息成功" ); } return AjaxResult.warn("删除学生信息失败" ); } @GetMapping("/edit/{studentId}") public String edit (@PathVariable("studentId") Long studentId, ModelMap mmap) { mmap.put("student" , studentService.selectStudentById(studentId)); mmap.put("roles" , roleService.selectRoleAll()); return prefix + "/edit" ; } @PostMapping("/updateStudent") @RequiresPermissions("system:student:edit") @ApiOperation(value = "修改学生信息") @Transactional @ResponseBody public AjaxResult updateStudent (@RequestParam HashMap<String,Object> map) { Student student = new Student(); student.setStudentId(Long.parseLong(map.get("studentId" ).toString())); student.setStudentName(map.get("studentName" ).toString()); student.setStudentGrade(Double.parseDouble(map.get("studentGrade" ).toString())); student.setStudentBirthday(map.get("studentBirthday" ).toString()); student.setStudentSex(Integer.parseInt(map.get("studentSex" ).toString())); student.setDepartmentId(Long.parseLong(map.get("departmentId" ).toString())); int Count = studentService.updateStudent(student); SysUser user = new SysUser(); user.setUserId(student.getStudentId()); user.setUserName(student.getStudentName()); user.setDeptId(student.getDepartmentId()); user.setSex(map.get("studentSex" ).toString()); List<Long> list = roleService.selectRolesIdByUserId(student.getStudentId()); Long[] roleIds = new Long[list.size()];
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 * 校验角色权限 */ @PostMapping("/checkRoleKeyUnique") @ResponseBody public String checkRoleKeyUnique (SysRole role) { return roleService.checkRoleKeyUnique(role); } @GetMapping("/selectMenuTree") public String selectMenuTree () { return prefix + "/tree" ; } @Log(title = "角色管理", businessType = BusinessType.UPDATE) @RequiresPermissions("system:role:edit") @PostMapping("/changeStatus") @ResponseBody public AjaxResult changeStatus (SysRole role) { roleService.checkRoleAllowed(role); return toAjax(roleService.changeStatus(role)); } @RequiresPermissions("system:role:edit") @GetMapping("/authUser/{roleId}") public String authUser (@PathVariable("roleId") Long roleId, ModelMap mmap) { mmap.put("role" , roleService.selectRoleById(roleId)); return prefix + "/authUser" ; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 map.put("departmentId" ,deptService.getDeptName(Long.parseLong(map.get("departmentId" ).toString()))); } } return getDataTable(list); } } package com.ruoyi.framework.shiro.web.filter.kickout;public class KickoutSessionFilter extends AccessControlFilter { private final static ObjectMapper objectMapper = new ObjectMapper();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 * 查询已分配用户角色列表 */ @RequiresPermissions("system:role:list") @PostMapping("/authUser/allocatedList") @ResponseBody public TableDataInfo allocatedList (SysUser user) { startPage(); List<SysUser> list = userService.selectAllocatedList(user); return getDataTable(list); } @Log(title = "角色管理", businessType = BusinessType.GRANT) @PostMapping("/authUser/cancel") @ResponseBody public AjaxResult cancelAuthUser (SysUserRole userRole) { return toAjax(roleService.deleteAuthUser(userRole)); } @Log(title = "角色管理", businessType = BusinessType.GRANT) @PostMapping("/authUser/cancelAll") @ResponseBody public AjaxResult cancelAuthUserAll (Long roleId, String userIds) { return toAjax(roleService.deleteAuthUsers(roleId, userIds)); } @GetMapping("/authUser/selectUser/{roleId}") public String selectUser (@PathVariable("roleId") Long roleId, ModelMap mmap) { mmap.put("role" , roleService.selectRoleById(roleId)); return prefix + "/selectUser" ; }
——————————PayStart——————————
项目链接: https://javayms.github.io?id=211422312105200ib https://javayms.pages.dev?id=211422312105200ib