Преглед на файлове

1、增加人才修改标签接口
2、增加职位搜索的薪酬范围条件

rayson преди 9 месеца
родител
ревизия
e1024313e1

+ 36 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/PayScopeEnum.java

@@ -0,0 +1,36 @@
+package com.citu.module.menduner.system.enums.job;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 薪酬范围(0 3K以下|1 3-5K|2 5-10K|3 10-20K | 4 20-50K | 50K以上)
+ **/
+@Getter
+@AllArgsConstructor
+public enum PayScopeEnum {
+    LESS_THAN_3K("0", null, 3000, "3K以下"),
+    BETWEEN_3K_AND_5K("1", 3000, 5000, "3-5K"),
+    BETWEEN_5K_AND_10K("2", 5000, 10000, "5-10K"),
+    BETWEEN_10K_AND_20K("3", 10000, 20000, "10-20K"),
+    BETWEEN_20K_AND_50K("4", 20000, 50000, "20-50K"),
+    MORE_THAN_50K("5", 50000, null, "50K以上");
+
+    private final String type;
+
+    private final Integer start;
+
+    private final Integer end;
+
+    private final String name;
+
+    public static PayScopeEnum getEnumByType(String type) {
+        for (PayScopeEnum payScopeEnum : PayScopeEnum.values()) {
+            if (payScopeEnum.getType().equals(type)) {
+                return payScopeEnum;
+            }
+        }
+        return LESS_THAN_3K;
+    }
+
+}

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppJobAdvertisedSearchPageReqVO.java

@@ -27,7 +27,7 @@ public class AppJobAdvertisedSearchPageReqVO extends PageParam {
     private List<String> eduType;
 
     @Schema(description = "薪酬待遇范围(menduner_pay_scope)",  example = "[]")
-    private List<String> payType;
+    private String payScope;
 
     @Schema(description = "求职类型(menduner_job_type)", example = "[]")
     private List<String> jobType;

+ 12 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/AppPersonResumeController.java

@@ -13,12 +13,14 @@ import com.citu.module.menduner.system.controller.app.jobhunt.person.projectexp.
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonAdvantageSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoSaveSimpleReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoTagReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.trainexp.AppTrainExpRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.trainexp.AppTrainExpSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.skill.AppPersonSkillRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.skill.AppPersonSkillSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.workexp.AppWorkExpRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.workexp.AppWorkExpSaveReqVO;
+import com.citu.module.menduner.system.controller.app.recruit.enterprise.vo.AppRecruitEnterpriseTagReqVO;
 import com.citu.module.menduner.system.convert.*;
 import com.citu.module.menduner.system.dal.dataobject.cvattachment.CvAttachmentDO;
 import com.citu.module.menduner.system.dal.dataobject.eduexp.EduExpDO;
@@ -85,6 +87,16 @@ public class AppPersonResumeController {
         return success(personInfoService.saveInfo(reqVO));
     }
 
+    @PreAuthenticated
+    @PostMapping("/tag/update")
+    @Operation(summary = "修改人才标签")
+    public CommonResult<Boolean> updateTag(
+            @Valid @RequestBody AppPersonInfoTagReqVO reqVO) {
+        personInfoService.updateTag(reqVO);
+        return success(true);
+    }
+
+
 
     @PreAuthenticated
     @PostMapping("/avatar/update")

+ 0 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/resume/AppPersonInfoSaveReqVO.java

@@ -67,7 +67,4 @@ public class AppPersonInfoSaveReqVO {
     @Schema(description = "学历", example = "2")
     private String eduType;
 
-    @Schema(description = "人才标签")
-    private List<String> tagList;
-
 }

+ 15 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/resume/AppPersonInfoTagReqVO.java

@@ -0,0 +1,15 @@
+package com.citu.module.menduner.system.controller.app.jobhunt.person.resume;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@Schema(description = "menduner 人才简历-人才标签 Request VO")
+public class AppPersonInfoTagReqVO {
+
+
+    @Schema(description = "人才标签")
+    private List<String> tagList;
+}

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/info/PersonInfoService.java

@@ -4,6 +4,8 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonAdvantageSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoSaveSimpleReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoTagReqVO;
+import com.citu.module.menduner.system.controller.app.recruit.enterprise.vo.AppRecruitEnterpriseTagReqVO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoSaveReqVO;
@@ -72,6 +74,12 @@ public interface PersonInfoService {
      */
     boolean saveInfo(@Valid @RequestBody AppPersonInfoSaveReqVO reqVO);
 
+    /**
+     * 修改人才标签
+     * @param reqVO
+     **/
+    void updateTag(AppPersonInfoTagReqVO reqVO);
+
     /**
      * 修改人才头像
      *

+ 18 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/info/PersonInfoServiceImpl.java

@@ -3,17 +3,17 @@ package com.citu.module.menduner.system.service.person.info;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.api.python.GraphApi;
 import com.citu.module.menduner.system.api.python.GraphSendDTO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonAdvantageSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoSaveReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoSaveSimpleReqVO;
-import com.citu.module.menduner.system.controller.base.person.info.PersonDetailRespVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.resume.AppPersonInfoTagReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.dal.mysql.person.PersonInfoMapper;
-import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -122,6 +122,22 @@ public class PersonInfoServiceImpl implements PersonInfoService {
         return true;
     }
 
+    @Override
+    public void updateTag(AppPersonInfoTagReqVO reqVO) {
+        Long userId = LoginUserContext.getUserId();
+        PersonInfoDO info = personInfoMapper.selectOne(PersonInfoDO::getUserId, userId);
+        info.setTagList(reqVO.getTagList());
+        personInfoMapper.updateById(info);
+        graphApi.send(
+                new GraphSendDTO<PersonInfoDO>
+                        (
+                                SyncConstants.UPDATE,
+                                SyncConstants.PERSON,
+                                info
+                        )
+        ).getCheckedData();
+    }
+
     @Override
     @DSTransactional
     public void uploadAvatar(String avatar) {

+ 13 - 9
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/ESQueryBuildUtils.java

@@ -3,16 +3,11 @@ package com.citu.module.menduner.system.util;
 import com.citu.framework.tenant.core.context.TenantContextHolder;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedSearchPageReqVO;
 import com.citu.module.menduner.system.enums.job.JobStatusEnum;
+import com.citu.module.menduner.system.enums.job.PayScopeEnum;
 import org.elasticsearch.index.query.BoolQueryBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.query.RangeQueryBuilder;
 import org.springframework.util.StringUtils;
 
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-
-import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
 /**
  * es 查询条件构造工具
  **/
@@ -82,9 +77,18 @@ public class ESQueryBuildUtils {
             // 工作经验
             boolQuery.filter(QueryBuilders.termsQuery("expType", reqVO.getExpType()));
         }
-        if (null != reqVO.getPayType()) {
-            // 薪酬待遇
-            boolQuery.filter(QueryBuilders.termsQuery("payType", reqVO.getPayType()));
+        if (null != reqVO.getPayScope()) {
+            PayScopeEnum payScope = PayScopeEnum.getEnumByType(reqVO.getPayScope());
+            BoolQueryBuilder payScopeQuery = QueryBuilders.boolQuery();
+            if (null != payScope.getStart()) {
+                // 大于
+                payScopeQuery.should(QueryBuilders.rangeQuery("payFrom").gt(payScope.getStart()));
+            }
+            if (null != payScope.getEnd()) {
+                // 小于等于
+                payScopeQuery.should(QueryBuilders.rangeQuery("payTo").lte(payScope.getEnd()));
+            }
+            boolQuery.filter(payScopeQuery);
         }
         if (null != reqVO.getAreaIds()) {
             // 地区