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; + } }