基于javaweb的SpringBoot就业信息管理系统(java+springboot+maven+mybaits+vue+elementui+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

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

功能说明

292323421807

302323421807

312323421807

322323421807

332323421807

342323421807

基于javaweb的SpringBoot就业信息管理系统(java+springboot+maven+mybaits+vue+elementui+mysql)

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
管理员
admin 123456

学生
学生账号1 123456
学生账号2 123456
学生账号3 123456
学生账号4 123456
学生账号5 123456
学生账号6 123456

导师
导师账号1 123456
导师账号2 123456
导师账号3 123456
导师账号4 123456
导师账号5 123456
导师账号6 123456

企业
企业账号1 123456
企业账号2 123456
企业账号3 123456
企业账号4 123456
企业账号5 123456
企业账号6 123456

项目介绍

基于SpringBoot Vue的就业信息管理系统

前台功能:进入系统可以实现首页,招聘信息,交流论坛,公告资讯,个人中心,后台管理等功能进行操作。

后台由管理员,学生,企业和导师,主要功能包括首页,个人中心,学生管理,导师管理,企业管理,招聘信息管理,应聘信息管理,面试邀请管理,就业指导管理,交流论坛,系统管理等。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;

技术栈

后端:SpringBoot+Mybaits

前端:layui+Vue+ELementUI

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,前台访问地址: http://localhost:8080/springboote71hf/front/index.html 后台访问地址: http://localhost:8080/springboote71hf/admin/dist/index.html 管理员用户名密码:abo/abo 学生用户名密码:学生账号1/123456 导师用户名密码:导师账号1/123456 企业用户名密码:企业账号1/123456

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

/**
* 权限(Token)验证
*/
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {

public static final String LOGIN_TOKEN_KEY = "Token";

@Autowired
private TokenService tokenService;

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

//支持跨域请求
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
// 跨域时会首先发送一个OPTIONS请求,这里我们给OPTIONS请求直接返回正常状态
if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {
response.setStatus(HttpStatus.OK.value());
return false;
}

IgnoreAuth annotation;
if (handler instanceof HandlerMethod) {
annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
} else {
return true;
}

//从header中获取token
String token = request.getHeader(LOGIN_TOKEN_KEY);

/**
* 不需要验证权限的方法直接放过
*/
if(annotation!=null) {
return true;
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
   }

/**
* 查询
*/
@RequestMapping("/query")
public R query(DaoshiEntity daoshi){
EntityWrapper< DaoshiEntity> ew = new EntityWrapper< DaoshiEntity>();
ew.allEq(MPUtil.allEQMapPre( daoshi, "daoshi"));
DaoshiView daoshiView = daoshiService.selectView(ew);
return R.ok("查询导师成功").put("data", daoshiView);
}

/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
DaoshiEntity daoshi = daoshiService.selectById(id);
return R.ok().put("data", daoshi);
}

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




/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody DaoshiEntity daoshi, HttpServletRequest request){
daoshi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(daoshi);
DaoshiEntity user = daoshiService.selectOne(new EntityWrapper<DaoshiEntity>().eq("daoshizhanghao", daoshi.getDaoshizhanghao()));
if(user!=null) {
return R.error("用户已存在");
}
daoshi.setId(new Date().getTime());
daoshiService.insert(daoshi);
return R.ok();
}

/**
1
2
3
4
5
6
7
8
9
10
11
12




/**
* 面试邀请
* 后端接口
* @email
*/
@RestController
@RequestMapping("/mianshiyaoqing")
public class MianshiyaoqingController {
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

/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{

@Autowired
private UserService userService;

@Autowired
private TokenService tokenService;

/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}

/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
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
	
@Autowired
private UserService userService;

@Autowired
private TokenService tokenService;

/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}

/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}

/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
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
		return R.error("用户已存在");
}
daoshi.setId(new Date().getTime());
daoshiService.insert(daoshi);
return R.ok();
}

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


/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
daoshiService.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);


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