基于springboot求职招聘网站
开发工具:IDEA,jdk1.8
服务器:tomcat9.0
数据库:mysql5.7
技术: springboot+jpa+EasyUI
系统主要分前台和后台,求职者、企业招聘者、管理员三个角色
系统功能介绍说明:
1.求职者:首页、公司、关于我们、搜索职位、搜索公司、我的简历、我投递的简历、修改密码、退出系统
2.企业招聘者:首页、公司、关于我们、搜索职位、搜索公司、我发布的职位、我收到的简历、我要招人、我公司的主页、修改密码、退出系统
3.管理员:
(1)用户管理:我的信息,用户信息
(2)职位管理:职位类别(增加、修改、删除),职位列表(查询、修改职位状态)
(3)公司管理:查询、修改公司状态、删除
(4)日志管理
求职者截图:
企业招聘者截图:
后台截图:
package com.yjq.lagou.controller.admin;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.yjq.lagou.bean.CodeMsg;
import com.yjq.lagou.bean.Page;
import com.yjq.lagou.bean.Result;
import com.yjq.lagou.entity.common.Company;
import com.yjq.lagou.entity.common.Position;
import com.yjq.lagou.entity.home.Resume;
import com.yjq.lagou.service.common.CompanyService;
import com.yjq.lagou.service.common.PositionService;
import com.yjq.lagou.service.home.ResumeService;
import com.yjq.lagou.util.StringUtil;
/**
*后端公司管理控制器
* @author 82320
*
*/
@RequestMapping("/admin/company")
@Controller
public class CompanyController {
@Autowired
private CompanyService companyService;
@Autowired
private ResumeService resumeService;
@Autowired
private PositionService positionService;
/**
* 后台公司管理信息页面
* @param model
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.GET)
public String list(Model model){
return "admin/company/list";
}
/**
* 获取后台公司信息列表
* @param request
* @param page
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> list(@RequestParam(name="state",required=false,defaultValue="") String state,Page page){
Map<String, Object> ret = new HashMap<String, Object>();
if(!StringUtil.isEmpty(state)) {
//如果state不为空
List<Company> findCompanyList = companyService.findCompanyList(state, page.getOffset(), page.getRows());
ret.put("rows", findCompanyList);
ret.put("total", companyService.getCompanyTotal(state));
}else {
//如果state为空
List<Company> findAllCompanyList = companyService.findAllCompanyList(page.getOffset(), page.getRows());
ret.put("rows", findAllCompanyList);
ret.put("total", companyService.total());
}
return ret;
}
/**
* 改变公司状态
* @param request
* @param page
* @return
*/
@RequestMapping(value="/change_state",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> changeState(Company company){
if(company == null) {
return Result.error(CodeMsg.DATA_ERROR);
}
Company findCompany = companyService.find(company.getId());
findCompany.setState(company.getState());
if(companyService.save(findCompany) == null) {
return Result.error(CodeMsg.COMPANY_CHANGE_STATE_ERROR);
}
return Result.success(true);
}
/**
*删除公司
* @param request
* @param page
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> delete(@RequestParam(name="id",required=true)Long id){
try {
List<Resume> findResumeList = resumeService.findByCompanyId(id);
//先删除该公司所有的简历
for(Resume resume : findResumeList) {
resumeService.delete(resume.getId());
}
//再删除该公司所有职位
List<Position> findPositionList = positionService.findPositionByCompanyId(id);
for(Position position : findPositionList) {
positionService.delete(position.getId());
}
//最后删除公司
companyService.delete(id);
}catch(Exception e) {
e.printStackTrace();
return Result.error(CodeMsg.FOREIGN_KEY_RESTRAIN);
}
return Result.success(true);
}
}
package com.yjq.lagou.controller.admin;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.yjq.lagou.bean.CodeMsg;
import com.yjq.lagou.bean.Page;
import com.yjq.lagou.bean.Result;
import com.yjq.lagou.service.admin.OperaterLogService;
/**
- 日志管理控制类
- @author 82320
*/
@RequestMapping(“/admin/operater_log”)
@Controller
public class OperaterLogController {
@Autowired
private OperaterLogService operaterLogService;
/**
* 日志管理页面
* @param model
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.GET)
public String operaterLog(Model model){
return "admin/operater_log/list";
}
/**
* 获取日志管理列表
* @param model
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> operaterLogList(Page page){
Map<String, Object> ret = new HashMap<String, Object>();
ret.put("rows", operaterLogService.findOperaterLogList(page.getOffset(), page.getRows()));
ret.put("total", operaterLogService.total());
return ret;
}
/**
* 删除日志管理列表数据
* @param model
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> deleteOperaterLogs(String ids){
if(ids == null || "".equals(ids))
{
return Result.error(CodeMsg.OPERATERLOG_DELETE_ID_EMPTY);
}
String[] split = ids.split(",");
for(int i=0;i<split.length;i++)
{
try {
operaterLogService.delete(Long.valueOf(split[i]));
}catch(Exception e)
{
return Result.error(CodeMsg.OPERATERLOG_DELETE_ERROR);
}
}
return Result.success(true);
}
}