diff --git a/src/main/java/com/yzdx/AiInterviewer/controller/RecruitmentController.java b/src/main/java/com/yzdx/AiInterviewer/controller/RecruitmentController.java index 4c24b9c..2f924fa 100644 --- a/src/main/java/com/yzdx/AiInterviewer/controller/RecruitmentController.java +++ b/src/main/java/com/yzdx/AiInterviewer/controller/RecruitmentController.java @@ -3,6 +3,8 @@ package com.yzdx.AiInterviewer.controller; import com.yzdx.AiInterviewer.comment.R; import com.yzdx.AiInterviewer.entity.Company; import com.yzdx.AiInterviewer.entity.JobEntity; +import com.yzdx.AiInterviewer.entity.VxEntityDto.VxCompanyDetailDto; +import com.yzdx.AiInterviewer.entity.VxEntityDto.VxJobDetailDto; import com.yzdx.AiInterviewer.entity.dto.JobDto; import com.yzdx.AiInterviewer.entity.dto.JobPostingDto; import com.yzdx.AiInterviewer.entity.dto.JobSettingDto; @@ -110,7 +112,7 @@ public class RecruitmentController { if(id==null){ return R.error("获取失败"); } - JobEntity jobById = jobListService.getJobById(id); + VxJobDetailDto jobById = jobListService.getJobById(id); if(jobById==null){ return R.error("出错了,请联系管理员!"); } @@ -314,7 +316,7 @@ public class RecruitmentController { return R.error("获取失败"); } - Company companyDetail = companyService.getCompanyDetail(encoding); + VxCompanyDetailDto companyDetail = companyService.getCompanyDetail(encoding); if(companyDetail==null){ return R.error("获取失败"); } @@ -430,10 +432,16 @@ public class RecruitmentController { return R.success(jobPostingDtos); } + + /** + * 获取简历申请列表 + * @param companyEncoding + * @param jobId + * @return + */ @GetMapping("/getApplicationList") public R getApplicationList(String companyEncoding,Integer jobId){ List list=vxInterviewApplicationService.getApplicationList(companyEncoding,jobId); return R.success(list); } - } diff --git a/src/main/java/com/yzdx/AiInterviewer/controller/VxController/VxJobController.java b/src/main/java/com/yzdx/AiInterviewer/controller/VxController/VxJobController.java index 6a662d6..bf5dfd2 100644 --- a/src/main/java/com/yzdx/AiInterviewer/controller/VxController/VxJobController.java +++ b/src/main/java/com/yzdx/AiInterviewer/controller/VxController/VxJobController.java @@ -3,6 +3,7 @@ package com.yzdx.AiInterviewer.controller.VxController; import com.yzdx.AiInterviewer.comment.R; import com.yzdx.AiInterviewer.entity.VxEntityDto.VxCompanyLikeDto; import com.yzdx.AiInterviewer.entity.VxEntityDto.VxJobLikeDto; +import com.yzdx.AiInterviewer.entity.dto.JobDto; import com.yzdx.AiInterviewer.service.CompanyService; import com.yzdx.AiInterviewer.service.JobListService; import com.yzdx.AiInterviewer.service.VxService.VxCompanyLikeService; @@ -74,24 +75,52 @@ public class VxJobController { } + /** + * 取消岗位关注 + * @return + */ + @DeleteMapping("/cancelJobLike") + public R cancelJobLike(Integer jobId,Integer userId){ + Integer rows=vxJobLikeService.cancelJobLike(jobId,userId); + if(rows==-1){ + return R.error("取消收藏失败"); + } + return R.success("取消收藏成功"); + } + /** * 收藏企业关注 */ @ApiImplicitParams({ - @ApiImplicitParam(name = "companyId",required = true), + @ApiImplicitParam(name = "companyEncoding",required = true), @ApiImplicitParam(name = "userId",required = true), }) @PostMapping("/addCompanyLike") - public R addCompanyLike(@RequestParam(value = "companyId")Integer companyId, + public R addCompanyLike(@RequestParam(value = "companyEncoding")String companyEncoding, @RequestParam(value = "userId")Integer userId){ - Integer rows=vxCompanyLikeService.addCompanyLike(companyId,userId); + Integer rows=vxCompanyLikeService.addCompanyLike(companyEncoding,userId); - if(rows!=-1){ + if(rows!=1){ return R.error("收藏失败"); } return R.success("收藏成功"); } + /** + * 取消企业关注 + * @param + * @return + */ + @DeleteMapping("/cancelCompanyLike") + public R cancelCompanyLike(String companyEncoding,Integer userId){ + Integer rows=vxCompanyLikeService.cancelCompanyLike(companyEncoding,userId); + if(rows==-1){ + return R.error("取消关注失败"); + } + return R.success("取消关注成功"); + } + + /** * vx搜索岗位和企业 * @param searchName @@ -120,5 +149,12 @@ public class VxJobController { return R.success(result); } - + /** + * 获取猜你喜欢 + */ + @GetMapping("/getYourLikeJob") + public R getYourLikeJob(Integer jobId){ + List list=jobListService.getYourLikeJob(jobId); + return R.success(list); + } } diff --git a/src/main/java/com/yzdx/AiInterviewer/entity/JobEntity.java b/src/main/java/com/yzdx/AiInterviewer/entity/JobEntity.java index 297e8a8..bd2e72a 100644 --- a/src/main/java/com/yzdx/AiInterviewer/entity/JobEntity.java +++ b/src/main/java/com/yzdx/AiInterviewer/entity/JobEntity.java @@ -47,5 +47,4 @@ public class JobEntity extends BaseEntity { private Integer status; @ApiModelProperty("岗位福利") private String jobWelfale; - } diff --git a/src/main/java/com/yzdx/AiInterviewer/entity/VxEntityDto/VxCompanyDetailDto.java b/src/main/java/com/yzdx/AiInterviewer/entity/VxEntityDto/VxCompanyDetailDto.java new file mode 100644 index 0000000..899d87a --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/entity/VxEntityDto/VxCompanyDetailDto.java @@ -0,0 +1,10 @@ +package com.yzdx.AiInterviewer.entity.VxEntityDto; + +import com.yzdx.AiInterviewer.entity.Company; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class VxCompanyDetailDto extends Company { + private Integer isLike; +} diff --git a/src/main/java/com/yzdx/AiInterviewer/entity/VxEntityDto/VxJobDetailDto.java b/src/main/java/com/yzdx/AiInterviewer/entity/VxEntityDto/VxJobDetailDto.java new file mode 100644 index 0000000..6175e68 --- /dev/null +++ b/src/main/java/com/yzdx/AiInterviewer/entity/VxEntityDto/VxJobDetailDto.java @@ -0,0 +1,9 @@ +package com.yzdx.AiInterviewer.entity.VxEntityDto; + +import com.yzdx.AiInterviewer.entity.JobEntity; +import lombok.Data; + +@Data +public class VxJobDetailDto extends JobEntity { + private Integer isLike; +} diff --git a/src/main/java/com/yzdx/AiInterviewer/entity/dto/JobDto.java b/src/main/java/com/yzdx/AiInterviewer/entity/dto/JobDto.java index 877a7e7..dd4268a 100644 --- a/src/main/java/com/yzdx/AiInterviewer/entity/dto/JobDto.java +++ b/src/main/java/com/yzdx/AiInterviewer/entity/dto/JobDto.java @@ -1,6 +1,7 @@ package com.yzdx.AiInterviewer.entity.dto; import com.yzdx.AiInterviewer.entity.BaseEntity; +import com.yzdx.AiInterviewer.entity.Company; import lombok.Data; @Data @@ -24,4 +25,6 @@ public class JobDto extends BaseEntity { private Integer status; + private Company company; + } diff --git a/src/main/java/com/yzdx/AiInterviewer/entity/vxEntity/VxCompanyLike.java b/src/main/java/com/yzdx/AiInterviewer/entity/vxEntity/VxCompanyLike.java index 30dd3b9..0a73a18 100644 --- a/src/main/java/com/yzdx/AiInterviewer/entity/vxEntity/VxCompanyLike.java +++ b/src/main/java/com/yzdx/AiInterviewer/entity/vxEntity/VxCompanyLike.java @@ -13,9 +13,8 @@ public class VxCompanyLike extends BaseEntity { @ApiModelProperty("关注公司id") @TableId(type = IdType.AUTO) private Integer id; - @ApiModelProperty("公司id") - private Integer companyId; + @ApiModelProperty("公司编码") + private String companyEncoding; @ApiModelProperty("用户id") private Integer userId; - } diff --git a/src/main/java/com/yzdx/AiInterviewer/service/CompanyService.java b/src/main/java/com/yzdx/AiInterviewer/service/CompanyService.java index f1cf4a4..9b36cdb 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/CompanyService.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/CompanyService.java @@ -2,6 +2,7 @@ package com.yzdx.AiInterviewer.service; import com.baomidou.mybatisplus.extension.service.IService; import com.yzdx.AiInterviewer.entity.Company; +import com.yzdx.AiInterviewer.entity.VxEntityDto.VxCompanyDetailDto; import com.yzdx.AiInterviewer.entity.VxEntityDto.VxCompanyLikeDto; import java.util.List; @@ -14,7 +15,7 @@ public interface CompanyService extends IService { * @return 公司详情对象 * * */ - Company getCompanyDetail(String encoding); + VxCompanyDetailDto getCompanyDetail(String encoding); /** * 更新公司详情 * @param userId 人的id diff --git a/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java b/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java index 5f25598..02b7379 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java @@ -2,6 +2,7 @@ package com.yzdx.AiInterviewer.service; import com.baomidou.mybatisplus.extension.service.IService; import com.yzdx.AiInterviewer.entity.JobEntity; +import com.yzdx.AiInterviewer.entity.VxEntityDto.VxJobDetailDto; import com.yzdx.AiInterviewer.entity.dto.JobDto; import com.yzdx.AiInterviewer.entity.VxEntityDto.VxJobLikeDto; @@ -67,7 +68,7 @@ public interface JobListService extends IService { * @param id 岗位id * @return 岗位对象 * */ - JobEntity getJobById(Integer id); + VxJobDetailDto getJobById(Integer id); /** * 修改岗位 * @param userId 添加人的id @@ -141,4 +142,11 @@ public interface JobListService extends IService { * * */ List> getSuggestJob(Integer userId); + + /** + * 根据岗位id查猜你喜欢 + * @param jobId + * @return + */ + List getYourLikeJob(Integer jobId); } diff --git a/src/main/java/com/yzdx/AiInterviewer/service/VxService/VxCompanyLikeService.java b/src/main/java/com/yzdx/AiInterviewer/service/VxService/VxCompanyLikeService.java index bc51404..f7f6754 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/VxService/VxCompanyLikeService.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/VxService/VxCompanyLikeService.java @@ -10,5 +10,7 @@ public interface VxCompanyLikeService extends IService { List getCompanyLikeListById(Integer userId); - Integer addCompanyLike(Integer companyId, Integer userId); + Integer addCompanyLike(String companyEncoding, Integer userId); + + Integer cancelCompanyLike(String companyEncoding,Integer userId); } diff --git a/src/main/java/com/yzdx/AiInterviewer/service/VxService/VxJobLikeService.java b/src/main/java/com/yzdx/AiInterviewer/service/VxService/VxJobLikeService.java index a01c361..b8675ef 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/VxService/VxJobLikeService.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/VxService/VxJobLikeService.java @@ -20,4 +20,5 @@ public interface VxJobLikeService extends IService { Integer addJobLike(Integer jobId, Integer userId); + Integer cancelJobLike(Integer jobId,Integer userId); } diff --git a/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxCompanyLikeServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxCompanyLikeServiceImpl.java index 4041b0c..b704403 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxCompanyLikeServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxCompanyLikeServiceImpl.java @@ -6,6 +6,7 @@ import com.yzdx.AiInterviewer.entity.Company; import com.yzdx.AiInterviewer.entity.VxEntityDto.VxCompanyLikeDto; import com.yzdx.AiInterviewer.entity.dto.JobDto; import com.yzdx.AiInterviewer.entity.vxEntity.VxCompanyLike; +import com.yzdx.AiInterviewer.entity.vxEntity.VxJobLike; import com.yzdx.AiInterviewer.mapper.CompanyMapper; import com.yzdx.AiInterviewer.mapper.VxMapper.VxCompanyLikeMapper; import com.yzdx.AiInterviewer.service.JobListService; @@ -42,14 +43,14 @@ public class VxCompanyLikeServiceImpl extends ServiceImpl queryWrapper1=new LambdaQueryWrapper<>(); - queryWrapper1.eq(Company::getId,vxCompanyLikeDto.getCompanyId()); + queryWrapper1.eq(Company::getEncoding,vxCompanyLikeDto.getCompanyEncoding()); Company company = companyMapper.selectOne(queryWrapper1); - vxCompanyLikeDto.setCompanyId(company.getId()); + vxCompanyLikeDto.setCompanyEncoding(company.getEncoding()); vxCompanyLikeDto.setCompanyName(company.getCompanyName()); //得到公司类型 @@ -79,19 +80,31 @@ public class VxCompanyLikeServiceImpl extends ServiceImpl queryWrapper=new LambdaQueryWrapper<>(); - queryWrapper.eq(VxCompanyLike::getCompanyId,companyId); + queryWrapper.eq(VxCompanyLike::getCompanyEncoding,companyEncoding); VxCompanyLike vxCompanyLike = vxCompanyLikeMapper.selectOne(queryWrapper); if(vxCompanyLike!=null){ return -1; } VxCompanyLike vxCompanyLike1=new VxCompanyLike(); - vxCompanyLike1.setCompanyId(companyId); + vxCompanyLike1.setCompanyEncoding(companyEncoding); vxCompanyLike1.setUserId(userId); vxCompanyLike1.setCreateTime(TimeUtil.getTime()); vxCompanyLike1.setCreateUser(userId); Integer row = vxCompanyLikeMapper.insert(vxCompanyLike1); return row; } + + @Override + public Integer cancelCompanyLike(String companyEncoding,Integer userId) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(VxCompanyLike::getCompanyEncoding,companyEncoding).eq(VxCompanyLike::getUserId,userId); + VxCompanyLike vxJobLike = vxCompanyLikeMapper.selectOne(queryWrapper); + if(vxJobLike==null){ + return -1; + } + Integer row = vxCompanyLikeMapper.delete(queryWrapper); + return row; + } } \ No newline at end of file diff --git a/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxInterviewApplicationServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxInterviewApplicationServiceImpl.java index 5014b7f..dd19229 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxInterviewApplicationServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxInterviewApplicationServiceImpl.java @@ -47,7 +47,6 @@ public class VxInterviewApplicationServiceImpl extends ServiceImpl getApplicationList(String companyEncoding, Integer jobId) { LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxJobLikeServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxJobLikeServiceImpl.java index 27587ca..69a10ce 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxJobLikeServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/VxService/impl/VxJobLikeServiceImpl.java @@ -96,4 +96,16 @@ public class VxJobLikeServiceImpl extends ServiceImpl queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(VxJobLike::getJobId,jobId).eq(VxJobLike::getUserId,userId); + VxJobLike vxJobLike = vxJobLikeMapper.selectOne(queryWrapper); + if(vxJobLike==null){ + return -1; + } + Integer row = vxJobLikeMapper.delete(queryWrapper); + return row; + } } diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/CompanyServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/CompanyServiceImpl.java index 903f0a5..e00edc1 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/impl/CompanyServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/CompanyServiceImpl.java @@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yzdx.AiInterviewer.entity.Company; import com.yzdx.AiInterviewer.entity.JobEntity; +import com.yzdx.AiInterviewer.entity.VxEntityDto.VxCompanyDetailDto; import com.yzdx.AiInterviewer.entity.VxEntityDto.VxCompanyLikeDto; import com.yzdx.AiInterviewer.entity.dto.JobDto; +import com.yzdx.AiInterviewer.entity.vxEntity.VxCompanyLike; import com.yzdx.AiInterviewer.mapper.CompanyMapper; import com.yzdx.AiInterviewer.mapper.JobMapper; +import com.yzdx.AiInterviewer.mapper.VxMapper.VxCompanyLikeMapper; +import com.yzdx.AiInterviewer.mapper.VxMapper.VxJobLikeMapper; import com.yzdx.AiInterviewer.service.CompanyService; import com.yzdx.AiInterviewer.service.JobListService; import com.yzdx.AiInterviewer.utiles.TimeUtil; @@ -28,16 +32,34 @@ public class CompanyServiceImpl extends ServiceImpl impl @Autowired private JobMapper jobMapper; + @Autowired + private VxCompanyLikeMapper vxCompanyLikeMapper; @Override - public Company getCompanyDetail(String encoding) { + public VxCompanyDetailDto getCompanyDetail(String encoding) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); queryWrapper.eq(Company::getEncoding,encoding); Company company = companyMapper.selectOne(queryWrapper); - return company; + VxCompanyDetailDto vxCompanyDetailDto=new VxCompanyDetailDto(); + + BeanUtils.copyProperties(company,vxCompanyDetailDto); + + LambdaQueryWrapper queryWrapper1=new LambdaQueryWrapper<>(); + + queryWrapper1.eq(VxCompanyLike::getCompanyEncoding,company.getEncoding()); + + VxCompanyLike vxCompanyLike = vxCompanyLikeMapper.selectOne(queryWrapper1); + + if(vxCompanyLike!=null){ + vxCompanyDetailDto.setIsLike(1); + return vxCompanyDetailDto; + } + vxCompanyDetailDto.setIsLike(0); + return vxCompanyDetailDto; } @Override diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java index 6cf2b37..f0d9c57 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java @@ -9,9 +9,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yzdx.AiInterviewer.entity.Company; import com.yzdx.AiInterviewer.entity.JobEntity; import com.yzdx.AiInterviewer.entity.Resume; +import com.yzdx.AiInterviewer.entity.VxEntityDto.VxJobDetailDto; import com.yzdx.AiInterviewer.entity.dto.JobDto; import com.yzdx.AiInterviewer.entity.VxEntityDto.VxJobLikeDto; +import com.yzdx.AiInterviewer.entity.vxEntity.VxJobLike; import com.yzdx.AiInterviewer.mapper.JobMapper; +import com.yzdx.AiInterviewer.mapper.VxMapper.VxJobLikeMapper; import com.yzdx.AiInterviewer.service.CompanyService; import com.yzdx.AiInterviewer.service.JobListService; import com.yzdx.AiInterviewer.service.ResumeService; @@ -37,7 +40,8 @@ public class JobListServiceImpl extends ServiceImpl implem private CompanyService companyService; @Autowired private ResumeService resumeService; - + @Autowired + private VxJobLikeMapper vxJobLikeMapper; @Override public Integer addJob(List address, String address_detail, String details, String jobName, String startTime, String endTime, List jobTips, Integer jobType, String min_salary, String max_salary, String min_number, String max_number, Integer requirement, Integer userId, String encoding) { //查看岗位名称是否存在 @@ -204,12 +208,30 @@ public class JobListServiceImpl extends ServiceImpl implem } @Override - public JobEntity getJobById(Integer id) { + public VxJobDetailDto getJobById(Integer id) { LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); queryWrapper.eq(JobEntity::getId,id); - return jobMapper.selectOne(queryWrapper); + JobEntity jobEntity = jobMapper.selectOne(queryWrapper); + + VxJobDetailDto vxJobDetailDto=new VxJobDetailDto(); + + BeanUtils.copyProperties(jobEntity,vxJobDetailDto); + + LambdaQueryWrapper queryWrapper1=new LambdaQueryWrapper<>(); + + queryWrapper1.eq(VxJobLike::getJobId,jobEntity.getId()); + + VxJobLike vxJobLike = vxJobLikeMapper.selectOne(queryWrapper1); + + if(vxJobLike!=null){ + vxJobDetailDto.setIsLike(1); + return vxJobDetailDto; + } + vxJobDetailDto.setIsLike(0); + return vxJobDetailDto; + } @Override @@ -422,8 +444,30 @@ public class JobListServiceImpl extends ServiceImpl implem result.add(jobEntitys); } - - return result; } + @Override + public List getYourLikeJob(Integer jobId) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.like(JobEntity::getId,jobId); + List vxJobLikes = jobMapper.selectList(queryWrapper); + List jobDtos=vxJobLikes.stream().map(item->{ + JobDto vxJobLikeDto=new JobDto(); + BeanUtils.copyProperties(item,vxJobLikeDto); + //获取岗位名称 + LambdaQueryWrapper queryWrapper1=new LambdaQueryWrapper<>(); + queryWrapper1.eq(JobEntity::getId,item.getId()); + JobEntity jobById = jobMapper.selectOne(queryWrapper1); + vxJobLikeDto.setJobName(jobById.getJobName()); + //获取薪水 + vxJobLikeDto.setSalary(jobById.getMinSalary()+"-"+jobById.getMaxSalary()); + //获取公司名称 + Company company=companyService.getCompanyDetail(item.getCompanyEncoding()); + vxJobLikeDto.setCompany(company); + //获取员工人数 + //获取公司位置 + return vxJobLikeDto; + }).collect(Collectors.toList()); + return jobDtos; + } }