Explorar el Código

1、优化推荐职位算法
2、增加求职端-谁看过我的简历接口

rayson hace 1 año
padre
commit
33e4d2b086
Se han modificado 26 ficheros con 324 adiciones y 91 borrados
  1. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/AppEnterpriseController.java
  2. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/AppJobCvRelController.java
  3. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppEnterpriseJobHomeRespVO.java
  4. 4 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppJobAdvertisedDetailRespVO.java
  5. 18 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppJobAdvertisedPageReqVO.java
  6. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppJobAdvertisedRespVO.java
  7. 15 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppJobCvLookRespVO.java
  8. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/person/AppPersonController.java
  9. 2 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/AppAdminEnterpriseInviteController.java
  10. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/contact/EnterpriseUserContactRespVO.java
  11. 21 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/contact/EnterpriseUserSummaryRespVO.java
  12. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseBaseSimpleRespVO.java
  13. 5 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseConvert.java
  14. 0 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseAccountMapper.java
  15. 7 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseMapper.java
  16. 34 9
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java
  17. 14 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java
  18. 23 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobCvRelMapper.java
  19. 4 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java
  20. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java
  21. 11 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindService.java
  22. 16 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java
  23. 68 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java
  24. 10 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationService.java
  25. 45 13
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java
  26. 1 1
      menduner/menduner-system-biz/src/main/resources/application.yaml

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/AppEnterpriseController.java

@@ -6,7 +6,7 @@ import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseClickReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseDetailRespVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSearchPageReqVO;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -46,7 +46,7 @@ public class AppEnterpriseController {
 
     @GetMapping("/search")
     @Operation(summary = "搜索企业")
-    public CommonResult<PageResult<AppEnterpriseSimpleRespVO>> search(@Valid AppEnterpriseSearchPageReqVO reqVO) {
+    public CommonResult<PageResult<EnterpriseBaseSimpleRespVO>> search(@Valid AppEnterpriseSearchPageReqVO reqVO) {
         return success(enterpriseService.search(reqVO));
     }
 

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/AppJobCvRelController.java

@@ -8,6 +8,7 @@ import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelQu
 import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelReqVO;
 import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedRespVO;
+import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvLookRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvRelReqVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.service.job.JobCvRelService;
@@ -79,5 +80,12 @@ public class AppJobCvRelController {
         return success(jobIntegrationService.getJobCvPage(page));
     }
 
+    @GetMapping("/get/job/cv/look/page")
+    @PreAuthenticated
+    @Operation(summary = "看过我的企业用户")
+    public CommonResult<PageResult<AppJobCvLookRespVO>> getJobCvLook(@Valid PageParam page) {
+        return success(jobIntegrationService.getJobCvLook(page));
+    }
+
 
 }

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppEnterpriseJobHomeRespVO.java

@@ -1,6 +1,6 @@
 package com.citu.module.menduner.system.controller.app.job.vo;
 
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -17,7 +17,7 @@ import java.util.List;
 public class AppEnterpriseJobHomeRespVO  {
 
     @Schema(description = "企业信息", example = "{}")
-    AppEnterpriseSimpleRespVO enterprise;
+    EnterpriseBaseSimpleRespVO enterprise;
 
     @Schema(description = "企业发布职位", example = "{}")
     private List<AppJobAdvertisedSimpleRespVO> jobList;

+ 4 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppJobAdvertisedDetailRespVO.java

@@ -1,15 +1,13 @@
 package com.citu.module.menduner.system.controller.app.job.vo;
 
 
-import com.citu.module.menduner.system.controller.base.contact.AppEnterpriseUserContactRespVO;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
-import java.math.BigDecimal;
 import java.time.LocalDateTime;
-import java.util.List;
 
 @Schema(description = "menduner - 招聘职位-详情 Response VO")
 @Data
@@ -19,13 +17,13 @@ public class AppJobAdvertisedDetailRespVO extends JobAdvertisedRespVO {
     private LocalDateTime updateTime;
 
     @Schema(description = "企业信息")
-    private AppEnterpriseSimpleRespVO enterprise;
+    private EnterpriseBaseSimpleRespVO enterprise;
 
     @Schema(description = "企业在招职位数量")
     private Long jobAdvertisedNum;
 
     @Schema(description = "招聘联系人信息")
-    private AppEnterpriseUserContactRespVO contact;
+    private EnterpriseUserContactRespVO contact;
 
 
 }

+ 18 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppJobAdvertisedPageReqVO.java

@@ -51,16 +51,32 @@ public class AppJobAdvertisedPageReqVO extends PageParam {
     private Boolean hire;
 
     @Schema(description = "是否置顶")
-    private Boolean top;
+    private Boolean top ;
 
     @Schema(description = "标记,详情看该类下常量")
     private Integer mark;
 
+    // ========== 相识参数 ==========
+    @Schema(description = "开启推荐相识职位")
+    private Boolean acquainted = false;
+
+    @Schema(description = "工作地区")
+    private List<Long> areaIds;
+
+    @Schema(description = "职位类型id")
+    private List<Long> positionIds;
+
+    @Schema(description = "期望行业id")
+    private List<Long> industryIds;
+
+    @Schema(description = "求职类型")
+    private List<String> jobTypes;
+
     public AppJobAdvertisedPageReqVO() {
 
     }
 
-    public AppJobAdvertisedPageReqVO(PageParam page,Integer mark) {
+    public AppJobAdvertisedPageReqVO(PageParam page, Integer mark) {
         this.setPageNo(page.getPageNo());
         this.setPageSize(page.getPageSize());
         this.mark = mark;

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppJobAdvertisedRespVO.java

@@ -1,7 +1,7 @@
 package com.citu.module.menduner.system.controller.app.job.vo;
 
-import com.citu.module.menduner.system.controller.base.contact.AppEnterpriseUserContactRespVO;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -13,8 +13,8 @@ public class AppJobAdvertisedRespVO {
     private AppJobAdvertisedSimpleRespVO job;
 
     @Schema(description = "招聘企业信息")
-    private AppEnterpriseSimpleRespVO enterprise;
+    private EnterpriseBaseSimpleRespVO enterprise;
 
     @Schema(description = "招聘联系人信息")
-    private AppEnterpriseUserContactRespVO contact;
+    private EnterpriseUserContactRespVO contact;
 }

+ 15 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/job/vo/AppJobCvLookRespVO.java

@@ -0,0 +1,15 @@
+package com.citu.module.menduner.system.controller.app.job.vo;
+
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserSummaryRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "menduner - 看过我的企业用户 Response VO")
+@Data
+public class AppJobCvLookRespVO extends EnterpriseUserSummaryRespVO {
+
+
+
+}

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/person/AppPersonController.java

@@ -4,7 +4,7 @@ import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedRespVO;
 import com.citu.module.menduner.system.controller.app.person.enterprise.PersonEnterpriseSubscribeReqVO;
 import com.citu.module.menduner.system.controller.app.person.job.AppPersonJobFavoriteReqVO;
@@ -83,7 +83,7 @@ public class AppPersonController {
     @PreAuthenticated
     @PostMapping("/get/enterprise/subscribe/page")
     @Operation(summary = "获取关注的企业分页")
-    public CommonResult<PageResult<AppEnterpriseSimpleRespVO>> getEnterpriseSubscribePage
+    public CommonResult<PageResult<EnterpriseBaseSimpleRespVO>> getEnterpriseSubscribePage
             (@Valid @RequestBody PageParam reqVO) {
         return success(jobIntegrationService.getEnterpriseSubscribePage(reqVO));
     }

+ 2 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/AppAdminEnterpriseInviteController.java

@@ -13,6 +13,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.annotation.security.PermitAll;
 import javax.validation.Valid;
 
 import static com.citu.framework.common.pojo.CommonResult.success;
@@ -51,7 +52,7 @@ public class AppAdminEnterpriseInviteController {
         return success(service.generateCode(reqVO));
     }
 
-
+    @PermitAll
     @GetMapping("/get/info/by/code")
     @Operation(summary = "根据邀请码获取邀请用户信息")
     public CommonResult<AppAdminEnterpriseUserRespVO> getInviteEnterpriseUser(@RequestParam("code") String code) {

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/contact/AppEnterpriseUserContactRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/contact/EnterpriseUserContactRespVO.java

@@ -5,7 +5,7 @@ import lombok.Data;
 
 @Data
 @Schema(description = "menduner - 首页-企业用户联系人 Response VO")
-public class AppEnterpriseUserContactRespVO {
+public class EnterpriseUserContactRespVO {
 
     @Schema(description = "所属企业id", example = "9907")
     private Long enterpriseId;

+ 21 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/contact/EnterpriseUserSummaryRespVO.java

@@ -0,0 +1,21 @@
+package com.citu.module.menduner.system.controller.base.contact;
+
+import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@Schema(description = "menduner - 企业用户联系人概要信息 Response VO")
+public class EnterpriseUserSummaryRespVO {
+
+
+    @Schema(description = "招聘企业信息")
+    private EnterpriseBaseSimpleRespVO enterprise;
+
+    @Schema(description = "招聘联系人岗位")
+    private EnterprisePostSimpleRespVO post;
+
+    @Schema(description = "招聘联系人信息")
+    private EnterpriseUserContactRespVO contact;
+}

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterpriseSimpleRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseBaseSimpleRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.app.enterprise.vo;
+package com.citu.module.menduner.system.controller.base.enterprise.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -7,8 +7,8 @@ import java.time.LocalDateTime;
 import java.util.List;
 
 @Data
-@Schema(description = "menduner - 首页-企业简易 Response VO")
-public class AppEnterpriseSimpleRespVO {
+@Schema(description = "企业基本信息简易 Response VO")
+public class EnterpriseBaseSimpleRespVO {
 
     @Schema(description = "企业id", example = "123")
     private Long id;

+ 5 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseConvert.java

@@ -8,7 +8,8 @@ import com.citu.module.menduner.system.controller.app.enterprise.vo.register.App
 import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.*;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseAccountRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
-import com.citu.module.menduner.system.controller.base.contact.AppEnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.*;
 import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
 import org.mapstruct.Mapper;
@@ -21,9 +22,9 @@ public interface EnterpriseConvert {
 
     EnterpriseConvert INSTANCE = Mappers.getMapper(EnterpriseConvert.class);
 
-    AppEnterpriseSimpleRespVO convert(EnterpriseDO bean);
+    EnterpriseBaseSimpleRespVO convert(EnterpriseDO bean);
 
-    AppEnterpriseUserContactRespVO convert2(EnterpriseUserBindDO bean);
+    EnterpriseUserContactRespVO convert2(EnterpriseUserBindDO bean);
 
     AppEnterpriseRespVO convert3(EnterpriseDO bean);
 
@@ -31,7 +32,7 @@ public interface EnterpriseConvert {
 
     List<AppEnterpriseAddressRespVO> convertList(List<EnterpriseAddressDO> list);
 
-    AppEnterpriseSimpleRespVO convert5(ESJobAdvertisedMergeDO bean);
+    EnterpriseBaseSimpleRespVO convert5(ESJobAdvertisedMergeDO bean);
 
     EnterpriseRegisterDO convert6(AppEnterpriseRegisterReqVO bean);
 

+ 0 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseAccountMapper.java

@@ -45,8 +45,6 @@ public interface EnterpriseAccountMapper extends BaseMapperX<EnterpriseAccountDO
         query.selectAs(EnterpriseUserBindDO::getName, EnterpriseAccountPageRespVO::getUserName);
         query.selectAs(EnterpriseUserBindDO::getSex, EnterpriseAccountPageRespVO::getSex);
         query.selectAs(EnterpriseUserBindDO::getAvatar, EnterpriseAccountPageRespVO::getAvatar);
-        query.selectAs(EnterpriseUserBindDO::getPhone, UserAccountPageRespVO::getPhone);
-        query.selectAs(EnterpriseUserBindDO::getEmail, UserAccountPageRespVO::getEmail);
 
         query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseAccountDO::getEnterpriseId);
         query.innerJoin(EnterpriseUserBindDO.class, on ->

+ 7 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseMapper.java

@@ -6,7 +6,7 @@ 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.app.enterprise.vo.AppEnterpriseSearchPageReqVO;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseListReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterprisePageReqVO;
@@ -40,20 +40,20 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
                 .orderByDesc(EnterpriseDO::getId));
     }
 
-    default PageResult<AppEnterpriseSimpleRespVO> selectPage(PageParam pageParam) {
+    default PageResult<EnterpriseBaseSimpleRespVO> selectPage(PageParam pageParam) {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(EnterpriseDO.class);
-        return selectJoinPage(pageParam, AppEnterpriseSimpleRespVO.class, query);
+        return selectJoinPage(pageParam, EnterpriseBaseSimpleRespVO.class, query);
     }
 
-    default PageResult<AppEnterpriseSimpleRespVO> selectByIdListPage(PageParam pageParam, List<Long> ids) {
+    default PageResult<EnterpriseBaseSimpleRespVO> selectByIdListPage(PageParam pageParam, List<Long> ids) {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(EnterpriseDO.class);
         query.in(EnterpriseDO::getId, ids);
-        return selectJoinPage(pageParam, AppEnterpriseSimpleRespVO.class, query);
+        return selectJoinPage(pageParam, EnterpriseBaseSimpleRespVO.class, query);
     }
 
-    default PageResult<AppEnterpriseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
+    default PageResult<EnterpriseBaseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(EnterpriseDO.class);
         query.selectAll(EnterpriseBusinessDO.class);
@@ -68,7 +68,7 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         query.inIfPresent(EnterpriseDO::getIndustryId, reqVO.getIndustryIds());
         query.eqIfPresent(EnterpriseDO::getScale, reqVO.getScale());
         query.eqIfPresent(EnterpriseDO::getFinancingStatus, reqVO.getFinancingStatus());
-        return selectJoinPage(reqVO, AppEnterpriseSimpleRespVO.class, query);
+        return selectJoinPage(reqVO, EnterpriseBaseSimpleRespVO.class, query);
     }
 
     default List<EnterpriseDO> selectList(EnterpriseListReqVO reqVO) {

+ 34 - 9
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java

@@ -5,15 +5,20 @@ 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.appadmin.user.vo.AppAdminEnterprisePostSimpleRespVO;
+import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvLookRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
-import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserSummaryRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostSimpleRespVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
+import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
+import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -71,11 +76,10 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
     }
 
 
-
     default PageResult<AppAdminUserRespVO> selectPage(AppAdminUserPageReqVO reqVO, Long enterpriseId) {
         MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectAll(EnterpriseUserBindDO.class);
-        wrapper.selectAssociation(EnterprisePostDO.class,AppAdminUserRespVO::getPost);
+        wrapper.selectAssociation(EnterprisePostDO.class, AppAdminUserRespVO::getPost);
 
         wrapper.selectAs(EnterpriseDO::getId, AppAdminUserRespVO::getEnterpriseId);
         wrapper.selectAs(EnterpriseDO::getName, AppAdminUserRespVO::getEnterpriseName);
@@ -102,12 +106,12 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
     default AppAdminEnterpriseUserRespVO selectEnterpriseUser(Long enterpriseId, Long userId) {
         MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectAll(EnterpriseUserBindDO.class);
-        wrapper.selectAsClass(EnterprisePostDO.class,AppAdminEnterpriseUserRespVO.class);
-        wrapper.selectAs(EnterpriseDO::getName, AppAdminUserRespVO::getEnterpriseName);
-        wrapper.selectAs(EnterpriseDO::getAnotherName, AppAdminUserRespVO::getEnterpriseAnotherName);
-        wrapper.selectAs(EnterpriseDO::getLogoUrl, AppAdminUserRespVO::getLogoUrl);
+        wrapper.selectAsClass(EnterprisePostDO.class, AppAdminEnterpriseUserRespVO.class);
+        wrapper.selectAs(EnterpriseDO::getName, AppAdminEnterpriseUserRespVO::getEnterpriseName);
+        wrapper.selectAs(EnterpriseDO::getAnotherName, AppAdminEnterpriseUserRespVO::getEnterpriseAnotherName);
+        wrapper.selectAs(EnterpriseDO::getLogoUrl, AppAdminEnterpriseUserRespVO::getLogoUrl);
 
-        wrapper.innerJoin(EnterpriseDO.class, on->
+        wrapper.innerJoin(EnterpriseDO.class, on ->
                 on.eq(EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId));
 
         wrapper.eq(EnterpriseUserBindDO::getEnterpriseId, enterpriseId);
@@ -116,4 +120,25 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
         return selectJoinOne(AppAdminEnterpriseUserRespVO.class, wrapper);
     }
 
+
+    default EnterpriseUserSummaryRespVO selectUserSummary(Long enterpriseId, Long userId) {
+        MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
+        wrapper.selectAssociation(EnterpriseUserBindDO.class, EnterpriseUserSummaryRespVO::getContact);
+        wrapper.selectAssociation(EnterpriseDO.class, EnterpriseUserSummaryRespVO::getEnterprise);
+        wrapper.selectAssociation(EnterprisePostDO.class, EnterpriseUserSummaryRespVO::getPost);
+
+
+        // 企业用户 inner 企业岗位
+        wrapper.leftJoin(EnterprisePostDO.class, EnterprisePostDO::getId, EnterpriseUserBindDO::getPostId);
+
+        // 企业用户 inner 企业信息
+        wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId);
+
+        wrapper.eq(EnterpriseUserBindDO::getEnterpriseId, enterpriseId);
+        wrapper.eq(EnterpriseUserBindDO::getUserId, userId);
+
+        return selectJoinOne(AppJobCvLookRespVO.class, wrapper);
+    }
+
+
 }

+ 14 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.dal.mysql.job;
 
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
@@ -78,9 +79,21 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
         query.eqIfPresent(JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId());
         query.eqIfPresent(JobAdvertisedDO::getHire, reqVO.getHire());
         query.eqIfPresent(JobAdvertisedDO::getTop, reqVO.getTop());
+        notExpireTime(query);
 
+        // 相识参数
+        if (reqVO.getAcquainted()) {
+            query.and(wrapper -> wrapper
+                    .in(CollUtil.isNotEmpty(reqVO.getAreaIds()), JobAdvertisedDO::getAreaId, reqVO.getAreaIds())
+                    .or()
+                    .in(CollUtil.isNotEmpty(reqVO.getPositionIds()), JobAdvertisedDO::getPositionId, reqVO.getPositionIds())
+                    .or()
+                    .in(CollUtil.isNotEmpty(reqVO.getJobTypes()), JobAdvertisedDO::getType, reqVO.getJobTypes())
+                    .or()
+                    .in(CollUtil.isNotEmpty(reqVO.getIndustryIds()), EnterpriseDO::getIndustryId, reqVO.getIndustryIds())
+            );
+        }
 
-        notExpireTime(query);
 
         if (AppJobAdvertisedPageReqVO.RECOMMEND.equals(reqVO.getMark())) {
             // 推荐

+ 23 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobCvRelMapper.java

@@ -1,22 +1,28 @@
 package com.citu.module.menduner.system.dal.mysql.job;
 
+import com.citu.framework.common.pojo.PageParam;
 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.app.job.hire.AppHireJobCvRelQueryReqVO;
 import com.citu.module.menduner.system.controller.app.job.hire.AppHireJobCvRelRespVO;
-import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvLookRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
+import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.time.LocalDateTime;
@@ -143,9 +149,23 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
      * 获取投递简历中的推荐人列表
      **/
     default List<AppAdminPersonSimpleRespVO> getRecommendUser() {
-
         return null;
     }
 
+    /**
+     * 查询用户被看过的简历
+     **/
+    default PageResult<JobCvRelDO> getJobCvLook(Long userId, PageParam pageParam) {
+        MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
+        wrapper.selectAll(JobCvRelDO.class);
+        wrapper
+                .eq(JobCvRelDO::getUserId, userId)
+                //大于0
+                .gt(JobCvRelDO::getStatus, JobCvRelStatusEnum.NEW.getStatus())
+                .orderByDesc(JobCvRelDO::getCreateTime)
+                .groupBy(JobCvRelDO::getEnterpriseId, JobCvRelDO::getPublishUserId);
+
+        return selectJoinPage(pageParam, JobCvRelDO.class, wrapper);
+    }
 
 }

+ 4 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java

@@ -10,10 +10,8 @@ import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseClickReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseDetailRespVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSearchPageReqVO;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -124,7 +122,7 @@ public interface EnterpriseService {
      * @param reqVO 查询条件
      * @return 分页简易企业对象
      **/
-    PageResult<AppEnterpriseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO);
+    PageResult<EnterpriseBaseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO);
 
     /**
      * 根据企业id获取简易的企业信息
@@ -132,7 +130,7 @@ public interface EnterpriseService {
      * @param id
      * @return 企业信息
      **/
-    AppEnterpriseSimpleRespVO getEnterpriseSimple(Long id);
+    EnterpriseBaseSimpleRespVO getEnterpriseSimple(Long id);
 
     /**
      * 分页获取简易的企业信息
@@ -140,7 +138,7 @@ public interface EnterpriseService {
      * @param pageReqVO 分页查询
      * @return 企业信息
      */
-    PageResult<AppEnterpriseSimpleRespVO> getEnterpriseSimplePage(PageParam pageReqVO);
+    PageResult<EnterpriseBaseSimpleRespVO> getEnterpriseSimplePage(PageParam pageReqVO);
 
     /**
      * 模糊搜索企业

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java

@@ -10,7 +10,7 @@ import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseClickReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseDetailRespVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSearchPageReqVO;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.*;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseListReqVO;
@@ -205,12 +205,12 @@ public class EnterpriseServiceImpl implements EnterpriseService {
     }
 
     @Override
-    public PageResult<AppEnterpriseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
+    public PageResult<EnterpriseBaseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
         return enterpriseMapper.search(reqVO);
     }
 
     @Override
-    public AppEnterpriseSimpleRespVO getEnterpriseSimple(Long id) {
+    public EnterpriseBaseSimpleRespVO getEnterpriseSimple(Long id) {
         EnterpriseDO enterprise = enterpriseMapper.selectById(id);
         if (null == enterprise) {
             throw exception(MDE_ENTERPRISE_NOT_EXISTS);
@@ -219,7 +219,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
     }
 
     @Override
-    public PageResult<AppEnterpriseSimpleRespVO> getEnterpriseSimplePage(PageParam pageReqVO) {
+    public PageResult<EnterpriseBaseSimpleRespVO> getEnterpriseSimplePage(PageParam pageReqVO) {
         return enterpriseMapper.selectPage(pageReqVO);
     }
 

+ 11 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindService.java

@@ -6,7 +6,8 @@ import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnter
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserSaveReqVO;
-import com.citu.module.menduner.system.controller.base.contact.AppEnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserSummaryRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindPageReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
@@ -105,7 +106,15 @@ public interface EnterpriseUserBindService {
      * @param userId       用户id
      * @param enterpriseId 企业id
      **/
-    AppEnterpriseUserContactRespVO getContact(Long enterpriseId, Long userId);
+    EnterpriseUserContactRespVO getContact(Long enterpriseId, Long userId);
+
+    /**
+     * 获取企业联系人信息概述
+     *
+     * @param userId       用户id
+     * @param enterpriseId 企业id
+     **/
+    EnterpriseUserSummaryRespVO getContactSummary(Long enterpriseId, Long userId);
 
     /**
      * 获取当前用户绑定的企业列表

+ 16 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java

@@ -2,7 +2,6 @@ package com.citu.module.menduner.system.service.enterprise.bind;
 
 
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
-import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.security.core.LoginUser;
@@ -12,7 +11,8 @@ import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnter
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserSaveReqVO;
-import com.citu.module.menduner.system.controller.base.contact.AppEnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserSummaryRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindPageReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindSaveReqVO;
 import com.citu.module.menduner.system.convert.EnterpriseConvert;
@@ -126,7 +126,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
 
     @Override
     public boolean checkIsAdmin(EnterpriseUserBindDO userBindDO) {
-        if(null == userBindDO) {
+        if (null == userBindDO) {
             throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
         }
         return EnterpriseUserTypeEnum.ADMIN.getType().toString()
@@ -142,12 +142,12 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     }
 
     @Override
-    public AppEnterpriseUserContactRespVO getContact(Long enterpriseId, Long userId) {
+    public EnterpriseUserContactRespVO getContact(Long enterpriseId, Long userId) {
         EnterpriseUserBindDO userBindDO = enterpriseUserBindMapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
         if (null == userBindDO) {
             throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
         }
-        AppEnterpriseUserContactRespVO resp = EnterpriseConvert.INSTANCE.convert2(userBindDO);
+        EnterpriseUserContactRespVO resp = EnterpriseConvert.INSTANCE.convert2(userBindDO);
 
         // 获取企业岗位信息
         if (null != userBindDO.getPostId()) {
@@ -164,6 +164,16 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         return resp;
     }
 
+    @Override
+    public EnterpriseUserSummaryRespVO getContactSummary(Long enterpriseId, Long userId) {
+        EnterpriseUserSummaryRespVO resp = enterpriseUserBindMapper.selectUserSummary(enterpriseId, userId);
+        if (null != resp) {
+            //TODO 缓存获取在线状态
+            resp.getContact().setStatus("0");
+        }
+        return resp;
+    }
+
     @Override
     public List<AppEnterpriseUserBindRespVO> getBindList() {
         List<EnterpriseUserBindDO> list = enterpriseUserBindMapper.selectListByUserId(LoginUserContext.getUserId());
@@ -296,7 +306,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     public PageResult<AppAdminUserRespVO> selectPage(AppAdminUserPageReqVO reqVO) {
         LoginUser loginUser = checkUserTypeIsAdmin();
         Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
-        if(null != reqVO.getEnterpriseId()) {
+        if (null != reqVO.getEnterpriseId()) {
             enterpriseId = reqVO.getEnterpriseId();
         }
         return enterpriseUserBindMapper.selectPage(reqVO, enterpriseId);

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

@@ -1,13 +1,13 @@
 package com.citu.module.menduner.system.service.job;
 
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.security.core.LoginUser;
 import com.citu.module.menduner.common.util.LoginUserContext;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppEnterpriseJobHomeRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedDetailRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedHomeRespVO;
@@ -15,12 +15,15 @@ import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedPag
 import com.citu.module.menduner.system.controller.appadmin.job.vo.AppAdminJobSaveReqVO;
 import com.citu.module.menduner.system.controller.appadmin.job.vo.AppAdminJobSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
-import com.citu.module.menduner.system.controller.base.contact.AppEnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedPageReqVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSaveReqVO;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
+import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
+import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
 import com.citu.module.menduner.system.enums.MathOperationEnum;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
@@ -37,10 +40,7 @@ import org.springframework.validation.annotation.Validated;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -60,6 +60,9 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Resource
     private JobAdvertisedMapper jobAdvertisedMapper;
 
+    @Resource
+    private JobInterestedMapper jobInterestedMapper;
+
     @Resource
     private EnterpriseService enterpriseService;
 
@@ -117,11 +120,68 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
 
     @Override
     public PageResult<AppJobAdvertisedHomeRespVO> getRecommendedPage(PageParam pageParam) {
+
+
         AppJobAdvertisedPageReqVO pageReqVO =
                 new AppJobAdvertisedPageReqVO(pageParam, AppJobAdvertisedPageReqVO.RECOMMEND);
         pageReqVO.setTop(true);
         pageReqVO.setHire(false);
+        Long userId = LoginUserContext.getUserId2();
+        if (null == userId) {
+            // 未登录
+            PageResult<AppJobAdvertisedHomeRespVO> result = jobAdvertisedMapper.selectPage(pageReqVO);
+            if(CollUtil.isEmpty(result.getList())) {
+                // 没有数据, 再算一遍
+                pageReqVO.setTop(null);
+                return jobAdvertisedMapper.selectPage(pageReqVO);
+            }
+        }
+
+        // 基于求职意向计算
+        List<JobInterestedDO> interestList = jobInterestedMapper.selectByUserIdList(userId);
+        if(CollUtil.isEmpty(interestList)) {
+            return jobAdvertisedMapper.selectPage(pageReqVO);
+        }
+        // 感兴趣的职位
+        List<Long> positionIds = interestList.stream()
+                .map(JobInterestedDO::getPositionId).collect(Collectors.toList());
+        // 希望工作的城市
+        List<Long> workAreaIds = interestList.stream()
+                .map(JobInterestedDO::getWorkAreaId).collect(Collectors.toList());
+        // 感兴趣的城市
+        List<Long> interestedAreaIds = interestList.stream()
+                .map(JobInterestedDO::getInterestedAreaIdList)
+                .filter(interestedAreaIdList ->CollUtil.isNotEmpty(interestedAreaIdList))
+                .flatMap(Collection::stream) // 将嵌套列表展平为一个流
+                .map(Long::valueOf)
+                .distinct()
+                .collect(Collectors.toList());
+        // 感兴趣的行业
+        List<Long> inductionIds = interestList.stream()
+                .map(JobInterestedDO::getIndustryIdList)
+                .filter(industryIdList ->CollUtil.isNotEmpty(industryIdList))
+                .flatMap(Collection::stream) // 将嵌套列表展平为一个流
+                .map(Long::valueOf)
+                .distinct()
+                .collect(Collectors.toList());
+
+        pageReqVO.setJobTypes(interestList
+                .stream()
+                .map(JobInterestedDO::getJobType)
+                .collect(Collectors.toList())
+        );
+        pageReqVO.setPositionIds(positionIds);
+        pageReqVO.setIndustryIds(inductionIds);
+        pageReqVO.setAreaIds(
+                CollUtil.union(workAreaIds, interestedAreaIds)
+                        .stream().distinct()
+                        .collect(Collectors.toList())
+        );
+        pageReqVO.setAcquainted(true);
+        pageReqVO.setTop(false);
         return jobAdvertisedMapper.selectPage(pageReqVO);
+
+
     }
 
     @Override
@@ -200,12 +260,12 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         respVO.setJobAdvertisedNum(jobAdvertisedMapper.countByEnterpriseId(job.getEnterpriseId()));
 
         // 查询企业信息
-        AppEnterpriseSimpleRespVO enterprise = enterpriseService.
+        EnterpriseBaseSimpleRespVO enterprise = enterpriseService.
                 getEnterpriseSimple(job.getEnterpriseId());
         respVO.setEnterprise(enterprise);
 
         // 查询联系人信息
-        AppEnterpriseUserContactRespVO contactRespVO = userBindService.
+        EnterpriseUserContactRespVO contactRespVO = userBindService.
                 getContact(enterprise.getId(), respVO.getUserId());
         respVO.setContact(contactRespVO);
         return respVO;

+ 10 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationService.java

@@ -2,9 +2,10 @@ package com.citu.module.menduner.system.service.job;
 
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedSearchPageReqVO;
+import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvLookRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.appadmin.job.vo.AppAdminJobPageReqVO;
@@ -40,7 +41,7 @@ public interface JobIntegrationService {
      *
      * @param page 分页
      */
-    PageResult<AppEnterpriseSimpleRespVO> getEnterpriseSubscribePage(PageParam page);
+    PageResult<EnterpriseBaseSimpleRespVO> getEnterpriseSubscribePage(PageParam page);
 
     /**
      * 根据条件搜索职位
@@ -50,6 +51,13 @@ public interface JobIntegrationService {
     PageResult<AppJobAdvertisedRespVO> search(AppJobAdvertisedSearchPageReqVO reqVO);
 
 
+    /**
+     * 获取看过我简历
+     *
+     * @param page 分页
+     */
+    PageResult<AppJobCvLookRespVO> getJobCvLook(PageParam page);
+
     // ========== 招聘者 ==========
 
     /**

+ 45 - 13
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java

@@ -3,14 +3,17 @@ package com.citu.module.menduner.system.service.job;
 import cn.hutool.core.collection.CollUtil;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
+import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedRespVO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobAdvertisedSearchPageReqVO;
-import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvLookRespVO;
 import com.citu.module.menduner.system.controller.appadmin.job.vo.AppAdminJobPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.job.vo.AppAdminJobRespVO;
-import com.citu.module.menduner.system.controller.base.contact.AppEnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserSummaryRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.favorite.PersonJobFavoritePageReqVO;
 import com.citu.module.menduner.system.controller.base.person.subscribe.PersonEnterpriseSubscribePageReqVO;
@@ -29,7 +32,6 @@ import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBin
 import com.citu.module.menduner.system.service.person.favorite.PersonJobFavoriteService;
 import com.citu.module.menduner.system.service.person.subscribe.PersonEnterpriseSubscribeService;
 import com.citu.module.menduner.system.util.ESQueryBuildUtils;
-import com.citu.module.menduner.common.util.LoginUserContext;
 import lombok.extern.slf4j.Slf4j;
 import org.elasticsearch.index.query.BoolQueryBuilder;
 import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
@@ -48,10 +50,7 @@ import org.springframework.validation.annotation.Validated;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -88,7 +87,7 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
         PageResult<AppJobAdvertisedRespVO> result = jobAdvertisedMapper.selectByIdListPage(page, ids);
         for (AppJobAdvertisedRespVO respVO : result.getList()) {
             // 获取职位发布人
-            AppEnterpriseUserContactRespVO contactRespVO = userBindService
+            EnterpriseUserContactRespVO contactRespVO = userBindService
                     .getContact(respVO.getEnterprise().getId(), respVO.getJob().getUserId());
             // 设置联系人
             respVO.setContact(contactRespVO);
@@ -135,7 +134,7 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
     }
 
     @Override
-    public PageResult<AppEnterpriseSimpleRespVO> getEnterpriseSubscribePage(PageParam page) {
+    public PageResult<EnterpriseBaseSimpleRespVO> getEnterpriseSubscribePage(PageParam page) {
         Long userId = LoginUserContext.getUserId();
         PersonEnterpriseSubscribePageReqVO pageReqVO = new PersonEnterpriseSubscribePageReqVO();
         pageReqVO.setPageNo(page.getPageNo());
@@ -152,6 +151,39 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
         return enterpriseMapper.selectByIdListPage(page, ids);
     }
 
+    @Override
+    public PageResult<AppJobCvLookRespVO> getJobCvLook(PageParam page) {
+        Long userId = LoginUserContext.getUserId();
+
+        PageResult<JobCvRelDO> result = jobCvRelMapper.getJobCvLook(userId, page);
+
+        PageResult<AppJobCvLookRespVO> pageResult = new PageResult<>();
+        pageResult.setTotal(result.getTotal());
+
+        List<AppJobCvLookRespVO> list = new ArrayList<>();
+        Map<String, EnterpriseUserSummaryRespVO> map = new HashMap<>();
+        for (JobCvRelDO cv : result.getList()) {
+            String key = cv.getEnterpriseId() + "_" + cv.getPublishUserId();
+
+            EnterpriseUserSummaryRespVO contactRespVO = null;
+            if (!map.containsKey(key)) {
+                // 获取职位发布人
+                contactRespVO = userBindService
+                        .getContactSummary(cv.getEnterpriseId(), cv.getPublishUserId());
+
+            } else {
+                contactRespVO = map.get(key);
+            }
+
+            AppJobCvLookRespVO respVO = (AppJobCvLookRespVO) contactRespVO;
+            list.add(respVO);
+            map.put(key, contactRespVO);
+
+        }
+        pageResult.setList(list);
+        return pageResult;
+    }
+
     @Override
     public PageResult<AppJobAdvertisedRespVO> search(AppJobAdvertisedSearchPageReqVO reqVO) {
 
@@ -223,14 +255,14 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
                                 .setName(highlightFields.get("name").get(0));
                     }
 
-                    AppEnterpriseSimpleRespVO enterprise = EnterpriseConvert.INSTANCE.convert5(searchHit.getContent());
+                    EnterpriseBaseSimpleRespVO enterprise = EnterpriseConvert.INSTANCE.convert5(searchHit.getContent());
                     enterprise.setId(searchHit.getContent().getEnterpriseId());
                     enterprise.setName(searchHit.getContent().getEnterpriseName());
                     enterprise.setAnotherName(searchHit.getContent().getEnterpriseAnotherName());
                     respVO.setEnterprise(enterprise);
 
                     // 获取职位发布人
-                    AppEnterpriseUserContactRespVO contactRespVO = userBindService
+                    EnterpriseUserContactRespVO contactRespVO = userBindService
                             .getContact(searchHit.getContent().getEnterpriseId(), searchHit.getContent().getUserId());
                     // 设置联系人
                     respVO.setContact(contactRespVO);

+ 1 - 1
menduner/menduner-system-biz/src/main/resources/application.yaml

@@ -120,7 +120,7 @@ citu:
       url: http://192.168.3.80 # Admin 管理后台 UI 的地址
   # 是否开启访问日志
   access-log:
-    enable: true
+    enable: false
   swagger:
     title: 管理后台
     description: 提供管理员管理的所有功能