Java项目:SpringBoot人才求职招聘网站

作者主页:Java毕设网

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

一、项目介绍

基于SpringBoot框架开发的求职招聘网站。
本项目分三种角色:管理员、招聘人员、求职者。
用户可以以两种身份注册登录,一种是求职者,另一种是招聘者。

求职者可以浏览查询公司信息、职位信息,并且可以填写自己的简历,然后给自己心仪的职位投递简历。招聘者可以填写自己公司的信息,然后进行认证申请,申请通过后,就可以进行发布职位,接收求职者投递来简历,并且进行审核和通知。

除此之外,该项目还附带后台管理功能,管理员可以登录后台管系统,进行职位类别添加、管理用户信息、通过审核来更改公司、职位的状态等。

项目功能:注册(引入邮箱验证码功能)、登录、修改密码、按条件查询、填写我的简历、填写公司信息、投递简历、发布职位、接收简历等等功能。

二、环境需要

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

三、技术栈

SpringBoot + FreeMarker + JPA

四、使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application-dev.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,项目运行成功后,在浏览器中输入网址:
http://localhost:8082/home/index/index  访问的是网站首页面

http://localhost:8082/admin/system/login  访问的是后台管理页面

五、运行截图

用户界面

管理页面

六、相关代码

登陆管理控制器

/**
 * @author EV
 * @date 2021/4/8 23:31
 */
@Controller
public class LoginController {

    @Autowired
    UserService userService;

    @GetMapping("/toLogin")
    public String toLogin(){
        return "login";
    }

    @PostMapping("/userLogin")
    public String login(@RequestParam String username, @RequestParam String password,
                        HttpSession session, RedirectAttributes attributes) {
        QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", username).eq("password", password);
        User user = userService.getOne(wrapper);
        if (user != null){
            session.setAttribute("user",user);
            return "redirect:/index";
        }else {
            attributes.addFlashAttribute("message","用户名或密码错误");
            return "redirect:/toLogin";
        }
    }

    @GetMapping("/toRegister")
    public String toRegister() {
        return "register";
    }

    @PostMapping("/register")
    public String register(User user) {
        user.setCreateTime(new Date());
        userService.save(user);
        return "redirect:/toLogin";
    }

    @GetMapping("/findUsername")
    @ResponseBody
    public void findUsername(String username, HttpServletResponse response) throws IOException {
        response.setContentType("application/json;charset=utf-8");
        QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", username);
        User userInfo = userService.getOne(wrapper);
        Map<String, Object> map = new HashMap<>();
        if (userInfo != null) {
            map.put("userExit", true);
            map.put("msg", "用户名已存在");
        } else {
            map.put("userExit", false);
            map.put("msg", "正确");
        }
        //将map转为json,并且传递给客户端
        String s = JSON.toJSONString(map);
        PrintWriter writer = response.getWriter();
        writer.write(s);
        writer.close();
    }

    @GetMapping("/findName")
    @ResponseBody
    public void findName(String name, HttpServletResponse response) throws IOException {
        response.setContentType("application/json;charset=utf-8");
        QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("name", name);
        User userInfo = userService.getOne(wrapper);
        Map<String, Object> map = new HashMap<>();
        if (userInfo != null) {
            map.put("nameExit", true);
            map.put("msg", "用户名已存在");
        } else {
            map.put("nameExit", false);
            map.put("msg", "正确");
        }
        //将map转为json,并且传递给客户端
        String s = JSON.toJSONString(map);
        PrintWriter writer = response.getWriter();
        writer.write(s);
        writer.close();
    }

    @GetMapping("/logout")
    public String logout(HttpSession session){
        session.removeAttribute("user");
        return "redirect:/toLogin";
    }

}

用户管理控制器

@RequestMapping("/admin/admin")
@Controller
public class AdminController {

	@Autowired 
	private AdminService adminService; 
	
	@Autowired
	private OperaterLogService  operaterLogService; 
	
	
	
	/**
	 * 后台管理员管理
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/my_info",method=RequestMethod.GET)
	public String myInfo(Model model){
		return "admin/admin/my_info";
	}
	
	/**
	 * 后台管理员信息列表
	 * @param request
	 * @param page
	 * @return
	 */
	@RequestMapping(value="/my_info_list",method=RequestMethod.POST)
	@ResponseBody
	public  Map<String, Object>  myInfoList(HttpServletRequest request,Page page){
		Map<String, Object> ret = new HashMap<String, Object>();
		Admin admin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);
		List<Admin> findList = adminService.findAdminList(admin.getId(),page.getOffset(), page.getRows());
		ret.put("rows", findList);
		ret.put("total", 1);
		return ret; 
	}
	
	/**
	 * 管理员信息修改处理
	 * @param admin
	 * @return
	 */
	@RequestMapping(value="/edit",method=RequestMethod.POST)
	@ResponseBody
	public Result<Boolean> edit(Admin admin)
	{
		if(admin == null)
		{
			return Result.error(CodeMsg.DATA_ERROR);
		}
		//用统一验证实体方法验证是否合法
		CodeMsg validate = ValidateEntityUtil.validate(admin);
		if(validate.getCode() != CodeMsg.SUCCESS.getCode()){
			return Result.error(validate);
		}
		//判断有无接收到对应管理员的id
		if(admin.getId() == null || admin.getId().longValue() <= 0)
		{
			return Result.error(CodeMsg.USER_EDIT_ID_EMPTY);
		}
		
		Admin findAdmin = adminService.find(admin.getId());
		//将提交的管理员信息指定字段复制到已存在的admin对象findAdmin中,该方法会覆盖新字段内容
		BeanUtils.copyProperties(admin, findAdmin, "id","createTime","updateTime");
		
		//进行修改操作
		if(adminService.save(findAdmin) == null)
		{
			return Result.error(CodeMsg.USER_EDIT_ERROR);
		}
		//添加操作日志
		OperaterLog operaterLog  = new OperaterLog();
		operaterLog.setOperator("【"+findAdmin.getAdminName()+"】:");
		operaterLog.setContent("修改了管理员信息:【"+findAdmin+"】。");
		operaterLogService.save(operaterLog);
		
		return Result.success(true);
	}
	
}

七、如果也想学习本系统,下面领取。关注并回复:100springboot

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值