Quellcode durchsuchen

1、增加企业找人接口

rayson vor 9 Monaten
Ursprung
Commit
ae034856ec

+ 9 - 14
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/AppRecruitPersonMapController.java

@@ -1,10 +1,9 @@
 package com.citu.module.menduner.system.controller.app.recruit.person;
 
-import com.citu.framework.baiduaip.core.AipOcrClient;
-import com.citu.framework.baiduaip.core.ocr.BusinessLicenseOcr;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
+import com.citu.module.menduner.system.controller.base.person.PersonQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
 import com.citu.module.menduner.system.service.person.PersonIntegrationService;
@@ -20,32 +19,28 @@ import javax.validation.Valid;
 
 import static com.citu.framework.common.pojo.CommonResult.success;
 
-@Tag(name = "招聘端 - 人才地图")
+@Tag(name = "招聘端 - 人才")
 @RestController
-@RequestMapping("/menduner/system/recruit/person-map")
+@RequestMapping("/menduner/system/recruit")
 @Validated
 public class AppRecruitPersonMapController {
 
     @Resource
     private PersonIntegrationService personIntegrationService;
 
-    @Resource
-    private AipOcrClient aipOcrClient;
 
     @PreAuthenticated
-    @GetMapping("/page")
+    @GetMapping("/person-map/page")
     @Operation(summary = "分页查询人才地图")
     public CommonResult<PageResult<PersonInfoRespVO>> query(@Valid PersonMapQueryReqVO reqVO) {
         return success(personIntegrationService.queryPage(reqVO));
     }
 
-    @GetMapping("/test")
-    @Operation(summary = "测试")
-    public CommonResult<Object> query() {
-        BusinessLicenseOcr businessLicenseOcr =
-                aipOcrClient.businessLicense("http://menduner.citupro.com:6868/admin-api/infra/file/24/get/4b36bf978ec5c8802b973fbadb41ae376c837f28700827f7ea04187bf93db2f9.jpg");
-
-        return success(businessLicenseOcr);
+    @PreAuthenticated
+    @GetMapping("/person-search/page")
+    @Operation(summary = "分页检索人才信息")
+    public CommonResult<PageResult<PersonInfoRespVO>> query(@Valid PersonQueryReqVO reqVO) {
+        return success(personIntegrationService.queryPage(reqVO));
     }
 
 }

+ 27 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/PersonQueryReqVO.java

@@ -0,0 +1,27 @@
+package com.citu.module.menduner.system.controller.base.person;
+
+import com.citu.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "menduner - 人才信息查询 Response VO")
+@Data
+public class PersonQueryReqVO extends PageParam {
+
+    @Schema(description = "内容关键字")
+    private String content;
+
+    @Schema(description = "职位类型id")
+    private List<Long> positionIds;
+
+    @Schema(description = "地区id")
+    private List<Long> areaIds;
+
+    @Schema(description = "工作经验", example = "1")
+    private String expType;
+
+    @Schema(description = "学历", example = "2")
+    private String eduType;
+}

+ 82 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonInfoMapper.java

@@ -1,15 +1,21 @@
 package com.citu.module.menduner.system.dal.mysql.person;
 
+import cn.hutool.core.collection.CollUtil;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.citu.framework.mybatis.core.query.MPJLambdaWrapperX;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
+import com.citu.module.menduner.system.controller.base.person.PersonQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
+import com.citu.module.menduner.system.dal.dataobject.eduexp.EduExpDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
+import com.citu.module.menduner.system.dal.dataobject.projectexp.ProjectExpDO;
+import com.citu.module.menduner.system.dal.dataobject.trainexp.TrainExpDO;
+import com.citu.module.menduner.system.dal.dataobject.workexp.WorkExpDO;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.time.LocalDate;
@@ -128,4 +134,80 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
         return selectJoinPage(reqVO, PersonInfoRespVO.class, query);
     }
 
+
+    /**
+     * 根据查询条件查询人才信息
+     **/
+    default PageResult<PersonInfoRespVO> queryPage(PersonQueryReqVO reqVO) {
+        MPJLambdaWrapperX<PersonInfoDO> query = new MPJLambdaWrapperX<>();
+        query.distinct();
+        query.selectAsClass(PersonInfoDO.class, PersonInfoRespVO.class);
+
+        // 并且条件
+        query.inIfPresent(PersonInfoDO::getAreaId, reqVO.getAreaIds());
+        query.eqIfPresent(PersonInfoDO::getEduType, reqVO.getEduType());
+        query.eqIfPresent(PersonInfoDO::getExpType, reqVO.getExpType());
+
+        // 或者条件
+        query.likeIfPresent(PersonInfoDO::getName, reqVO.getContent())
+                .or()
+                .likeIfExists(PersonInfoDO::getTagList, reqVO.getContent())
+                .or()
+                .likeIfExists(PersonInfoDO::getAdvantage, reqVO.getContent())
+                .or();
+
+        // 求职意向
+        query.leftJoin(JobInterestedDO.class, JobInterestedDO::getUserId, PersonInfoDO::getUserId);
+
+        query.in(CollUtil.isNotEmpty(reqVO.getPositionIds()), JobInterestedDO::getPositionId, reqVO.getPositionIds())
+                .or()
+                .likeIfExists(JobInterestedDO::getWorkAreaId, reqVO.getAreaIds())
+                .or()
+                .likeIfExists(JobInterestedDO::getInterestedAreaIdList, reqVO.getAreaIds())
+                .or();
+
+
+        // 教育经历
+        query.leftJoin(EduExpDO.class, EduExpDO::getUserId, PersonInfoDO::getUserId);
+        query.likeIfExists(EduExpDO::getSchoolName, reqVO.getContent())
+                .or()
+                .likeIfExists(EduExpDO::getMajor, reqVO.getContent())
+                .or()
+                .eqIfExists(EduExpDO::getEducationType, reqVO.getEduType())
+                .or();
+
+        // 工作经验
+        query.leftJoin(WorkExpDO.class, WorkExpDO::getUserId, PersonInfoDO::getUserId);
+        query.likeIfExists(WorkExpDO::getEnterpriseName, reqVO.getContent())
+                .or()
+                .likeIfExists(WorkExpDO::getPositionName, reqVO.getContent())
+                .or()
+                .likeIfExists(WorkExpDO::getDeptName, reqVO.getContent())
+                .or()
+                .likeIfExists(WorkExpDO::getContent, reqVO.getContent())
+                .or()
+                .likeIfExists(WorkExpDO::getAchievement, reqVO.getContent())
+                .or();
+
+//        // 项目经验
+//        query.leftJoin(ProjectExpDO.class, ProjectExpDO::getUserId, PersonInfoDO::getUserId);
+//        query.likeIfExists(ProjectExpDO::getName, reqVO.getContent())
+//                .or()
+//                .likeIfExists(ProjectExpDO::getContent, reqVO.getContent())
+//                .or();
+//
+//        // 培训经历
+//        query.leftJoin(TrainExpDO.class, TrainExpDO::getUserId, PersonInfoDO::getUserId);
+//        query.likeIfExists(TrainExpDO::getOrgName, reqVO.getContent())
+//                .or()
+//                .likeIfExists(TrainExpDO::getCourse, reqVO.getContent())
+//                .or()
+//                .likeIfExists(TrainExpDO::getContent, reqVO.getContent())
+//                .or();
+
+        query.orderByDesc(PersonInfoDO::getUpdateTime);
+
+        return selectJoinPage(reqVO, PersonInfoRespVO.class, query);
+    }
+
 }

+ 33 - 25
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java

@@ -195,20 +195,24 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
 //        );
 //        pageReqVO.setAcquainted(true);
 //        pageReqVO.setTop(false);
-        if (null != LoginUserContext.getUserId2()) {
-            Long[] ids = graphApi.queryRecommendJob(GraphQueryPageDTO
-                    .builder()
-                    .id(pageReqVO.getId())
-                    .type(GraphQueryPageDTO.JOB)
-                    .current(pageReqVO.getPageNo())
-                    .size(pageReqVO.getPageSize())
-                    .userId(LoginUserContext.getUserId2())
-                    .build()
-            ).getCheckedData();
-            pageReqVO.setIds(ids);
-        }else {
-            // 取最多发布职位的职位类型id
-            pageReqVO.setPositionIds(mapper.selectTopPositionIdsByFrequency(pageParam.getPageSize()));
+        try {
+            if (null != LoginUserContext.getUserId2()) {
+                Long[] ids = graphApi.queryRecommendJob(GraphQueryPageDTO
+                        .builder()
+                        .id(pageReqVO.getId())
+                        .type(GraphQueryPageDTO.JOB)
+                        .current(pageReqVO.getPageNo())
+                        .size(pageReqVO.getPageSize())
+                        .userId(LoginUserContext.getUserId2())
+                        .build()
+                ).getCheckedData();
+                pageReqVO.setIds(ids);
+            } else {
+                // 取最多发布职位的职位类型id
+                pageReqVO.setPositionIds(mapper.selectTopPositionIdsByFrequency(pageParam.getPageSize()));
+            }
+        } catch (Exception ex) {
+           ex.printStackTrace();
         }
         return mapper.selectPage2(pageReqVO);
 
@@ -226,17 +230,21 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
 
     @Override
     public PageResult<AppJobAdvertisedHomeRespVO> getAcquaintedPage(AppJobAdvertisedPageReqVO pageReqVO) {
-        if (null != pageReqVO.getId()) {
-            // 相识职位
-            Long[] ids = graphApi.queryMatchJob(GraphQueryPageDTO
-                    .builder()
-                    .id(pageReqVO.getId())
-                    .type(GraphQueryPageDTO.JOB)
-                    .current(pageReqVO.getPageNo())
-                    .size(pageReqVO.getPageSize())
-                    .build()
-            ).getCheckedData();
-            pageReqVO.setIds(ids);
+        try {
+            if (null != pageReqVO.getId()) {
+                // 相识职位
+                Long[] ids = graphApi.queryMatchJob(GraphQueryPageDTO
+                        .builder()
+                        .id(pageReqVO.getId())
+                        .type(GraphQueryPageDTO.JOB)
+                        .current(pageReqVO.getPageNo())
+                        .size(pageReqVO.getPageSize())
+                        .build()
+                ).getCheckedData();
+                pageReqVO.setIds(ids);
+            }
+        } catch (Exception ex) {
+            ex.printStackTrace();
         }
         return mapper.selectPage2(pageReqVO);
     }

+ 9 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationService.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.service.person;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
+import com.citu.module.menduner.system.controller.base.person.PersonQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
 
@@ -35,6 +36,14 @@ public interface PersonIntegrationService {
      **/
     PageResult<PersonInfoRespVO> queryPage(PersonMapQueryReqVO reqVO);
 
+    /**
+     * 人才信息-根据条件查询人才
+     *
+     * @param reqVO 查询条件
+     * @return PageResult<PersonInfoRespVO>
+     **/
+    PageResult<PersonInfoRespVO> queryPage(PersonQueryReqVO reqVO);
+
 
     /**
      * 企业人才库-根据条件查询人才

+ 22 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationServiceImpl.java

@@ -8,6 +8,7 @@ import com.citu.module.menduner.system.api.python.GraphQueryDTO;
 import com.citu.module.menduner.system.api.python.GraphSendDTO;
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
+import com.citu.module.menduner.system.controller.base.person.PersonQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonDetailRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
@@ -30,6 +31,7 @@ import com.citu.module.menduner.system.dal.mysql.trainexp.TrainExpMapper;
 import com.citu.module.menduner.system.dal.mysql.workexp.WorkExpMapper;
 import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import com.citu.module.menduner.system.mq.producer.GraphProducer;
+import com.citu.module.menduner.system.service.area.AreaService;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
@@ -37,6 +39,7 @@ import org.springframework.validation.annotation.Validated;
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
 
@@ -74,6 +77,9 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
     @Resource
     private EnterpriseTalentPoolMapper talentPoolMapper;
 
+    @Resource
+    private AreaService areaService;
+
 
     @Override
     public AppRecruitPersonDetailRespVO detail(Long userId) {
@@ -226,6 +232,22 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
         return personInfoMapper.queryPage(reqVO, ids);
     }
 
+    @Override
+    public PageResult<PersonInfoRespVO> queryPage(PersonQueryReqVO reqVO) {
+        if (null != reqVO.getAreaIds()) {
+            // 取最后一个元素
+            Set<Long> areaIds = areaService.
+                    getChildrenIds(reqVO.getAreaIds().get(reqVO.getAreaIds().size() - 1));
+            if (!areaIds.isEmpty()) {
+                List<Long> areaIdList = new ArrayList<>(areaIds);
+                // 包括自己
+                areaIds.add(reqVO.getAreaIds().get(0));
+                reqVO.setAreaIds(areaIdList);
+            }
+        }
+        return personInfoMapper.queryPage(reqVO);
+    }
+
     @Override
     public PageResult<PersonInfoRespVO> selectEnterpriseTalentPoolPage(PersonInfoPageReqVO reqVO) {
         return personInfoMapper.selectEnterpriseTalentPoolPage(LoginUserContext.getEnterpriseId(), reqVO);