From 8656146a7e783c73660a13d868880250110a54aa Mon Sep 17 00:00:00 2001
From: Unique-Jerry <10902054+unique-jerry@user.noreply.gitee.com>
Date: Mon, 4 Dec 2023 19:38:53 +0800
Subject: [PATCH] vx
---
pom.xml | 7 +-
.../VxController/VxJobController.java | 9 +-
.../AiInterviewer/service/JobListService.java | 10 ++
.../service/impl/JobListServiceImpl.java | 99 +++++++++++++++++++
4 files changed, 122 insertions(+), 3 deletions(-)
diff --git a/pom.xml b/pom.xml
index dd4fa9d..298ab6f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,7 +157,12 @@
2.1.0
-
+
+
+ org.apache.commons
+ commons-collections4
+ 4.1
+
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 bbe1e4d..bbe9319 100644
--- a/src/main/java/com/yzdx/AiInterviewer/controller/VxController/VxJobController.java
+++ b/src/main/java/com/yzdx/AiInterviewer/controller/VxController/VxJobController.java
@@ -1,10 +1,8 @@
package com.yzdx.AiInterviewer.controller.VxController;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.vxEntity.VxCompanyLike;
import com.yzdx.AiInterviewer.service.CompanyService;
import com.yzdx.AiInterviewer.service.JobListService;
import com.yzdx.AiInterviewer.service.VxService.VxCompanyLikeService;
@@ -115,5 +113,12 @@ public class VxJobController {
return R.success(result);
}
+ @GetMapping("/getSuggestList")
+ public R getSuggestList(Integer userId){
+
+ Map result= jobListService.getSuggestJob(userId);
+
+ return R.success(result);
+ }
}
diff --git a/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java b/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java
index 391ba24..9950d23 100644
--- a/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java
+++ b/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java
@@ -6,6 +6,7 @@ import com.yzdx.AiInterviewer.entity.dto.JobDto;
import com.yzdx.AiInterviewer.entity.VxEntityDto.VxJobLikeDto;
import java.util.List;
+import java.util.Map;
public interface JobListService extends IService {
/**
@@ -131,4 +132,13 @@ public interface JobListService extends IService {
* */
List searchJobList(String searchName, String address);
+
+
+ /**
+ * 根据ID进行岗位推荐
+ * @param userId 用户ID
+ * @return jobList
+ *
+ * */
+ Map getSuggestJob(Integer userId);
}
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 44c8638..aa31c31 100644
--- a/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java
+++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java
@@ -1,21 +1,31 @@
package com.yzdx.AiInterviewer.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
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.Resume;
import com.yzdx.AiInterviewer.entity.dto.JobDto;
import com.yzdx.AiInterviewer.entity.VxEntityDto.VxJobLikeDto;
import com.yzdx.AiInterviewer.mapper.JobMapper;
import com.yzdx.AiInterviewer.service.CompanyService;
import com.yzdx.AiInterviewer.service.JobListService;
+import com.yzdx.AiInterviewer.service.ResumeService;
import com.yzdx.AiInterviewer.utiles.MyStringUtils;
import com.yzdx.AiInterviewer.utiles.TimeUtil;
+import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
@Service
@@ -25,6 +35,8 @@ public class JobListServiceImpl extends ServiceImpl implem
private JobMapper jobMapper;
@Autowired
private CompanyService companyService;
+ @Autowired
+ private ResumeService resumeService;
@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) {
@@ -318,5 +330,92 @@ public class JobListServiceImpl extends ServiceImpl implem
}
+ ///需要改----------------------------------------------------------------
+ @Override
+ public Map getSuggestJob(Integer userId) {
+ Map result=new HashMap<>();
+ //先获取用户的岗位期望
+ Resume resume = resumeService.getResume(userId);
+
+ String jobExpectation = resume.getJobExpectation();
+
+ JSONArray jobExpectationJSONs = (JSONArray) JSON.parse(jobExpectation);
+
+ List suggestJobs=new ArrayList<>();
+
+ if(jobExpectationJSONs.size()<=5){
+ LambdaQueryWrapper addQueryWrapper =new LambdaQueryWrapper<>();
+
+ addQueryWrapper.last("limit 5");
+
+ List suggestJobEntities = jobMapper.selectList(addQueryWrapper);
+
+ suggestJobs=suggestJobEntities.stream().map(item->{
+
+ String jobName=item.getJobName();
+
+ return jobName ;
+
+ }).collect(Collectors.toList());
+ }
+
+
+
+ for (int i = 0; i < jobExpectationJSONs.size(); i++) {
+
+ String jobExpectationJSON = jobExpectationJSONs.getString(i);
+
+ JSONObject jsonObject=(JSONObject)JSON.parse(jobExpectationJSON);
+
+ suggestJobs.add(jsonObject.getString("jobName"));
+ }
+
+
+ for (int i = 0; i < suggestJobs.size(); i++) {
+
+ String jobName = suggestJobs.get(i);
+
+ LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
+
+ queryWrapper.like(JobEntity::getJobName,jobName).or().like(JobEntity::getJobName,jobName.toString().substring(0,2));
+
+ List jobEntities1 = jobMapper.selectList(queryWrapper);
+
+ if(jobEntities1==null){
+
+ continue;
+ }
+
+ List vxJobLikeDtoList=jobEntities1.stream().map(item->{
+
+ VxJobLikeDto vxJobLikeDto=new VxJobLikeDto();
+
+ BeanUtils.copyProperties(item,vxJobLikeDto);
+
+ vxJobLikeDto.setJobName(item.getJobName());
+
+ vxJobLikeDto.setSalary(item.getMinSalary()+"-"+item.getMaxSalary());
+
+ Company companyDetail = companyService.getCompanyDetail(item.getCompanyEncoding());
+
+ vxJobLikeDto.setCompany(companyDetail.getCompanyName());
+
+ vxJobLikeDto.setStaffNumber(companyDetail.getStaffNumber());
+
+ vxJobLikeDto.setLabel(item.getJobTips());
+
+ vxJobLikeDto.setPosition(item.getAddressDetail());
+
+ return vxJobLikeDto;
+
+ }).collect(Collectors.toList());
+
+ result.put(jobName,vxJobLikeDtoList);
+
+ }
+
+
+ return result;
+ }
}