基于javaweb的SpringBoot大学生实习管理系统(java+springboot+thymeleaf+html+jquery+bootstrap+maven)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

460023302402

480023302402

490023302402

500023302402

510023302402

520023302402

基于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 登录

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;
}

// 设置Cache的key的前缀
public void setCacheManager(CacheManager cacheManager)
{
// 必须和ehcache缓存配置中的缓存name一致
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";
}

/**
* 查询未分配用户角色列表


项目链接:
https://javayms.github.io?id=211422312105200ib
https://javayms.pages.dev?id=211422312105200ib