package com.web.recruit.controller.user;
import com.web.recruit.controller.BaseController;
import com.web.recruit.entity.*;
import com.web.recruit.service.impl.*;
import com.web.recruit.util.MailUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.thymeleaf.util.StringUtils;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @author Tracy
* @date 2020/6/5 22:16
*/
@Controller
@RequestMapping("/user")
public class UserController extends BaseController {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private UserServiceImpl userService;
@Autowired
private ResumeServiceImpl resumeService;
@Autowired
private FavorServiceImpl favorService;
@Autowired
private PositionServiceImpl positionService;
@Autowired
private CompanyServiceImpl companyService;
/**
* 用户注册
* @param user
* @param map
* @return
*/
@PostMapping("/register")
public String userRegister(User user, Map<String, Object> map) {
if (StringUtils.isEmpty(user.getUserAccount())|| StringUtils.isEmpty(user.getUserName())
|| StringUtils.isEmpty(user.getUserPassword())
|| user.getUserBirth().toString().equals("1900/00/00")
|| (user.getUserGender().toString()).equals("-1")
|| StringUtils.isEmpty(user.getUserEduDegree())
|| StringUtils.isEmpty(user.getUserGraduation())) {
logger.info("error...");
map.put("err", "请完整输入!");
return "/user/register";
}
logger.info(user.toString());
int result = userService.saveUser(user);
if (result == 0) {
map.put("err", "用户已存在!");
return "/user/register";
}
return "redirect:/login.html";
}
/**
* 用户登录
* @param account
* @param password
* @param session
* @param map
* @return
*/
@RequestMapping("/login")
public String userLogin(@RequestParam("userAccount") String account,
@RequestParam("userPassword") String password,
HttpSession session,
Map<String, Object> map) {
//登录
int result = userService.loginUser(account, password);
if (result == 1) {
session.setAttribute("user", userService.getUserByAccount(account));
return "redirect:/index.html";
}
if (result == 0)
map.put("errMsg", "密码错误");
if (result == -1)
map.put("errMsg", "用户不存在");
return "/user/user_login";
}
/**
* 修改用户的基本信息
* @param user
* @param request
* @return
*/
@RequestMapping("/updateInfo")
public String update(User user, HttpServletRequest request) {
User thisUser = this.getUser(request);
thisUser.setUserName(user.getUserName());
thisUser.setUserPassword(user.getUserPassword());
thisUser.setUserGender(user.getUserGender());
thisUser.setUserGraduation(user.getUserGraduation());
thisUser.setUserEduDegree(user.getUserEduDegree());
thisUser.setUserBirth(user.getUserBirth());
userService.updateUser(thisUser);
return "redirect:/user/toEditResume";
}
/**
* 用户请求编辑简历界面
* @param request
* @param map
* @return
*/
@RequestMapping("/toEditResume")
public String toResume(HttpServletRequest request, Map<String, Object> map) {
User user = this.getUser(request);
map.put("user", user);
Resume resume;
//如果不存在简历则先创建
if (!resumeService.containResume(user.getUserId())) {
resume = new Resume();
resume.setResumeUserId(user.getUserId());
resumeService.saveResume(resume);
} else {
resume = resumeService.getResumeByUserId(user.getUserId());
}
map.put("resume", resume);
//判断用户是否入职
if (user.getUserPositionId() != 0) {
Position position = positionService.getPositionById(user.getUserPositionId());
map.put("entry", position);
}
//获取用户发出的所有申请
List<Favor> favors = favorService.getFavorsByResumeId(resume.getResumeId());
map.put("favors", favors);
logger.info(favors.toString());
//获取用户所有已发出申请的职位
List<Position> positions = new ArrayList<>();
Position position;
for (Favor favor : favors) {
position = positionService.getPositionById(favor.getFavorPositionId());
positions.add(position);
}
map.put("positions", positions);
logger.info(positions.toString());
List<Company> companies = companyService.getAllCompanies();
map.put("companies", companies);
logger.info(companies.toString());
return "forward:/info.html";
}
/**
* 编辑简历
* @param resume
* @return
*/
@RequestMapping("/editResume")
public String userEditResume(Resume resume) {
resumeService.updateResume(resume);
return "redirect:/user/toEditResume";
}
/**
* 用户登出
* @param session
* @return
*/
@RequestMapping("/logout")
public String userLogout(HttpSession session) {
session.removeAttribute("user");
session.invalidate();
return "redirect:/login.html";
}
/**
* 用户入职
* @param positionId
* @param request
* @return
*/
@GetMapping("/entry")
public String entryPosition(@RequestParam("positionId") Integer positionId,
HttpServletRequest request) {
User user = this.getUser(request);
user.setUserPositionId(positionId);
userService.updateUser(user);
request.getSession().setAttribute("user", user);
return "redirect:/user/toEditResume";
}
@Autowired //注入邮件工具类
private MailUtil mailUtil;
@Autowired //java邮件工具类
private JavaMailSenderImpl mailSender;
/**
* 用户提交反馈
* @param title
* @param content
* @param file
* @return
*/
@CrossOrigin
@ResponseBody
@RequestMapping("/sendMsg")
public String sendMsg(String title, String content,
MultipartFile file) {
String res = null;
boolean hasFile = false;
String target = null; //上传文件的路径
//判断邮件及邮件内容是否为空
if (StringUtils.isEmpty(title) || StringUtils.isEmpty(content)) {
if (StringUtils.isEmpty(title)) {
res = "请输入邮件主题!";
}
if (StringUtils.isEmpty(content)) {
res = "请输入邮件内容!";
}
return res;
}
//判断是否上传文件
if (file != null && file.getSize() > 0) {
hasFile = true;
String path = mailUtil.getUploadPath() + mailUtil.getDate() + "/";
File dir = new File(path);
if (!dir.exists(
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
关于项目 该网站是基于SpringBoot实现的企业招聘系统,应用于求职者投递简历,公司HR进行审核。 主要涉及技术包含Maven、Spring、SpringBoot、MyBatis、Redis等。 项目前端模板引擎使用Thymeleaf,数据源使用Druid。 使用注意 1、开发工具的选择 本项目使用 Intellij IDEA 2019.3.5 版本开发,若使用 Eclipse/MyEclipse导入项目,请注意文件编码为UTF-8,以避免乱码。 2、确保拥有Maven环境 项目使用 Maven 3.6.3 版本开发,请使用 3.3.9及以上环境进行导入。 3、MySQL版本注意事项 项目基于 MySQL 8.0.20 版本进行开发,若为MySQL 8.0 以前版本,请注意 Pom.xml 文件中数据库驱动版本,并修改 application.yml 文件中的 spring.datasource.url 属性,并注意时区的设定。 4、Tomcat配置 由于项目已部署至服务器,则 Tomcat 未使用 SpringBoot 自带版本。若使用本地 Tomcat 进行测试,请
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot+Thymeleaf的招聘系统,数据库为MySQL+Druid+MyBatis,搭配Redis内存数据库 (1116个子文件)
$CACHE_FILE$ 973B
UserController.class 11KB
UserController.class 11KB
HRController.class 9KB
HRController.class 9KB
PositionController.class 8KB
PositionController.class 8KB
RedisConfiguration.class 4KB
RedisConfiguration.class 4KB
Position.class 3KB
Position.class 3KB
GlobalMvcConfiguration$1.class 3KB
GlobalMvcConfiguration$1.class 3KB
User.class 3KB
User.class 3KB
DruidConfiguration.class 3KB
DruidConfiguration.class 3KB
HR.class 3KB
HR.class 3KB
PositionServiceImpl.class 2KB
PositionServiceImpl.class 2KB
FavorServiceImpl.class 2KB
FavorServiceImpl.class 2KB
RecruitApplicationTests.class 2KB
PageController.class 2KB
PageController.class 2KB
Resume.class 2KB
Resume.class 2KB
UserServiceImpl.class 2KB
UserServiceImpl.class 2KB
TestController.class 2KB
TestController.class 2KB
Company.class 2KB
Company.class 2KB
LoginInterceptor.class 2KB
LoginInterceptor.class 2KB
KeyGeneratorConfiguration.class 2KB
KeyGeneratorConfiguration.class 2KB
Favor.class 2KB
Favor.class 2KB
MailUtil.class 2KB
MailUtil.class 2KB
Category.class 2KB
Category.class 2KB
CompanyServiceImpl.class 2KB
CompanyServiceImpl.class 2KB
ResumeServiceImpl.class 1KB
ResumeServiceImpl.class 1KB
HRServiceImpl.class 1KB
HRServiceImpl.class 1KB
CategoryServiceImpl.class 1KB
CategoryServiceImpl.class 1KB
RecruitApplication.class 1KB
RecruitApplication.class 1KB
KeyGeneratorConfiguration$3.class 1KB
KeyGeneratorConfiguration$3.class 1KB
KeyGeneratorConfiguration$4.class 1KB
KeyGeneratorConfiguration$4.class 1KB
KeyGeneratorConfiguration$5.class 1KB
KeyGeneratorConfiguration$5.class 1KB
FavorMapper.class 1KB
FavorMapper.class 1KB
BaseController.class 1KB
BaseController.class 1KB
InfoUtil.class 1KB
InfoUtil.class 1KB
KeyGeneratorConfiguration$6.class 1KB
KeyGeneratorConfiguration$2.class 1KB
KeyGeneratorConfiguration$6.class 1KB
KeyGeneratorConfiguration$2.class 1KB
KeyGeneratorConfiguration$1.class 1KB
KeyGeneratorConfiguration$1.class 1KB
PositionMapper.class 1KB
PositionMapper.class 1KB
GlobalMvcConfiguration.class 872B
GlobalMvcConfiguration.class 872B
FavorService.class 852B
FavorService.class 852B
PositionService.class 848B
PositionService.class 848B
CompanyMapper.class 749B
CompanyMapper.class 749B
UserService.class 701B
UserService.class 701B
CategoryMapper.class 651B
CategoryMapper.class 651B
UserMapper.class 640B
UserMapper.class 640B
HRMapper.class 566B
HRMapper.class 566B
ResumeMapper.class 516B
ResumeMapper.class 516B
CompanyService.class 478B
CompanyService.class 478B
ResumeService.class 425B
ResumeService.class 425B
HRService.class 392B
HRService.class 392B
CategoryService.class 374B
CategoryService.class 374B
共 1116 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
白话机器学习
- 粉丝: 8182
- 资源: 7687
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功