diff --git a/client-api/src/main/java/org/jiayunet/controller/JobController.java b/client-api/src/main/java/org/jiayunet/controller/JobController.java index cdd4b9d..46d5efc 100644 --- a/client-api/src/main/java/org/jiayunet/controller/JobController.java +++ b/client-api/src/main/java/org/jiayunet/controller/JobController.java @@ -4,6 +4,7 @@ import lombok.AllArgsConstructor; import org.jiayunet.pojo.PageResult; import org.jiayunet.pojo.dto.job.JobDetailDto; import org.jiayunet.pojo.dto.job.JobDto; +import org.jiayunet.pojo.param.job.JobDislikeParam; import org.jiayunet.pojo.param.job.JobQueryParam; import org.jiayunet.service.JobService; import org.jiayunet.tool.UserSecurityTool; @@ -59,4 +60,13 @@ public class JobController { Long userId = UserSecurityTool.getUserId(); jobService.unfavoriteJob(jobId, userId); } + + /** + * 标记岗位不感兴趣 + */ + @PostMapping("/{jobId}/dislike") + public void dislikeJob(@PathVariable Long jobId, @Validated @RequestBody JobDislikeParam param) { + Long userId = UserSecurityTool.getUserId(); + jobService.dislikeJob(jobId, param.getReason(), userId); + } } diff --git a/client-api/src/main/java/org/jiayunet/pojo/param/job/JobDislikeParam.java b/client-api/src/main/java/org/jiayunet/pojo/param/job/JobDislikeParam.java new file mode 100644 index 0000000..36505f1 --- /dev/null +++ b/client-api/src/main/java/org/jiayunet/pojo/param/job/JobDislikeParam.java @@ -0,0 +1,25 @@ +package org.jiayunet.pojo.param.job; + +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +/** + * 标记岗位不感兴趣参数 + * + * @author zk + */ +@Data +public class JobDislikeParam { + + /** + * 不感兴趣原因 + *
0=对公司不感兴趣 1=对岗位不感兴趣 2=对行业不感兴趣 3=技能不符合 4=地点不合适 5=其他
+ */ + @NotNull(message = "原因不能为空") + @Min(value = 0, message = "原因值范围0-5") + @Max(value = 5, message = "原因值范围0-5") + private Integer reason; +} diff --git a/client-api/src/main/java/org/jiayunet/service/JobService.java b/client-api/src/main/java/org/jiayunet/service/JobService.java index e2d6a9b..b69930f 100644 --- a/client-api/src/main/java/org/jiayunet/service/JobService.java +++ b/client-api/src/main/java/org/jiayunet/service/JobService.java @@ -21,9 +21,9 @@ import java.util.stream.Collectors; /** * 岗位服务 - *主要功能:岗位列表查询、岗位详情查询、岗位收藏管理、匹配度计算
+ *主要功能:岗位列表查询、岗位详情查询、岗位收藏管理、岗位不感兴趣管理、匹配度计算
*依赖服务:JobMatchService(匹配度计算)
- *使用的表:bg_job、bg_company、bg_user_job_dislike、bg_user_job_favorite、bg_china_regions_code、bg_job_category、bg_industry
+ *使用的表:bg_job、bg_company、bg_user_job_dislike、bg_user_job_favorite、bg_job_region、bg_china_regions_code、bg_job_category、bg_industry
* * @author zk */ @@ -52,6 +52,9 @@ public class JobService { @Autowired private CompanyMapper companyMapper; + @Autowired + private JobRegionRelationMapper jobRegionRelationMapper; + @Autowired private JobMatchService jobMatchService; @@ -294,4 +297,57 @@ public class JobService { public void unfavoriteJob(Long jobId, Long userId) { userJobFavoriteMapper.delete(new LambdaQueryWrapper方法逻辑流程:
+ *1. 查询岗位信息(获取 companyId、requiredIndustryId)
+ *2. 查询岗位关联的地区列表
+ *3. 检查是否已标记
+ *4. 根据 reason 构建插入记录列表
+ *5. 批量插入记录
+ */ + public void dislikeJob(Long jobId, Integer reason, Long userId) { + // 1. 查询岗位 + Job job = jobMapper.selectOne(new LambdaQueryWrapper