From e8f3eb0972e2425e0b1d52f9883264312cb368f5 Mon Sep 17 00:00:00 2001 From: zk Date: Thu, 30 Apr 2026 15:33:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=9D=A5=E6=BA=90=E5=9C=B0=E5=9D=80=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=B2=97=E4=BD=8D=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jiayunet/controller/JobController.java | 15 ++++++++++++ .../java/org/jiayunet/service/JobService.java | 23 +++++++++++++++++++ 2 files changed, 38 insertions(+) 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 093f1f8..5d188cf 100644 --- a/client-api/src/main/java/org/jiayunet/controller/JobController.java +++ b/client-api/src/main/java/org/jiayunet/controller/JobController.java @@ -169,4 +169,19 @@ public class JobController { Long userId = UserSecurityTool.getUserId(); return jobService.recommendJobs(param, userId); } + + /** + * 根据岗位来源地址查询岗位信息 + *

通过岗位的原始链接(如招聘网站URL)查询对应的岗位信息

+ */ + @GetMapping("/findByUrl") + public JobDto findJobBySourceUrl(@RequestParam String sourceUrl) { + Long userId = 0L; + try { + userId = UserSecurityTool.getUserId(); + } catch (Exception e) { + // 接口允许不登录,不处理 + } + return jobService.findJobBySourceUrl(sourceUrl, userId); + } } 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 4457a5f..236c1c5 100644 --- a/client-api/src/main/java/org/jiayunet/service/JobService.java +++ b/client-api/src/main/java/org/jiayunet/service/JobService.java @@ -719,4 +719,27 @@ public class JobService { } } + /** + * 根据岗位来源地址查询岗位信息 + *

1. 通过 sourceUrl 查询岗位ID

+ *

2. 复用 listJobs 查询岗位详情

+ */ + public JobDto findJobBySourceUrl(String sourceUrl, Long userId) { + // 1. 通过 sourceUrl 查询岗位 + Job job = jobMapper.selectOne(new LambdaQueryWrapper().eq(Job::getSourceUrl, sourceUrl).select(Job::getId).last("LIMIT 1")); + if (job == null) { + return null; + } + + // 2. 复用 listJobs 查询 + JobQueryParam queryParam = new JobQueryParam(); + queryParam.setPageNum(1); + queryParam.setPageSize(1); + queryParam.setJobIds(Collections.singletonList(job.getId())); + queryParam.setStatusFilter(Arrays.asList(0, 1, 2)); + + PageResult result = listJobs(queryParam, userId); + return result.getList().isEmpty() ? null : result.getList().get(0); + } + }