瀏覽代碼

集团账户-招聘会 数据共享

DESKTOP-VAEGFGM\zqc 3 月之前
父節點
當前提交
9f1127cd87

+ 2 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/fair/AppRecruitFairController.java

@@ -105,7 +105,7 @@ public class AppRecruitFairController {
     @Operation(summary = "根据招聘会id获取加入的职位信息")
     public CommonResult<List<AppRecruitJobRespVO>> getByJobFairId(@RequestParam("id") Long id) {
         List<Long> jobIdList = fairService
-                .getJobIdListByJobFairIdAndEnterpriseId(id, LoginUserContext.getEnterpriseId());
+                .getJobIdListByJobFairIdAndEnterpriseId(id, null);
         if (ObjectUtil.isEmpty(jobIdList)) {
             return success(null);
         }
@@ -120,6 +120,7 @@ public class AppRecruitFairController {
             if (null != item.getExpireTime()) {
                 item.setExpireDay(ChronoUnit.DAYS.between(LocalDateTime.now(), item.getExpireTime()));
             }
+//            item.set
         });
         return success(list);
     }

+ 3 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/AppRecruitJobAdvertisedController.java

@@ -123,8 +123,9 @@ public class AppRecruitJobAdvertisedController {
     @GetMapping("/list")
     @Operation(summary = "获取发布的职位列表")
     public CommonResult<List<AppRecruitJobRespVO>> getList
-            (@RequestParam(value = "status", required = false) String status) {
-        return success(jobAdvertisedService.getList(status));
+            (@RequestParam(value = "status", required = false) String status,
+             @RequestParam(value = "exTime", defaultValue = "0") Short exTime) {
+        return success(jobAdvertisedService.getList(status,exTime));
     }
 
 

+ 18 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobRespVO.java

@@ -24,4 +24,22 @@ public class AppRecruitJobRespVO extends AppRecruitJobSimpleRespVO {
 
     @Schema(description = "目前加入哪些招聘会")
     private List<Long> jobFairIds;
+
+    @Schema(description = "招聘企业名称")
+    private String enterpriseName;
+
+    @Schema(description = "招聘企业Id")
+    private Long enterpriseId;
+    @Schema(description = "招聘企业Logo")
+    private String enterpriseLogo;
+
+    @Schema(description = "招聘者昵称")
+    private String hrName;
+    @Schema(description = "招聘者Id")
+    private Long hrUserId;
+
+
+
+
+
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairDetailMapper.java

@@ -40,7 +40,7 @@ public interface FairDetailMapper extends BaseMapperX<FairDetailDO> {
     default List<FairDetailDO> selectByEnterpriseIdAndJobFairIdList(Long jobFairId, Long enterpriseId) {
         return selectList(new LambdaQueryWrapperX<FairDetailDO>()
                 .eq(FairDetailDO::getJobFairId, jobFairId)
-                .eq(FairDetailDO::getEnterpriseId, enterpriseId)
+                .eqIfPresent(FairDetailDO::getEnterpriseId, enterpriseId)
         );
     }
 

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

@@ -318,11 +318,26 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
      * @param ids          id集合
      **/
     default List<AppRecruitJobRespVO> list(Long enterpriseId, Long userId, List<Long> ids, String status) {
+
+        return list(enterpriseId,userId,ids,status,(short) 0);
+    }
+
+
+    /**
+     * 招聘端 - 根据企业id、用户id查询职位列表,返回简易的职位信息
+     *
+     * @param enterpriseId 企业id
+     * @param userId       用户id
+     * @param ids          id集合
+     **/
+    default List<AppRecruitJobRespVO> list(Long enterpriseId, Long userId, List<Long> ids, String status,short exTime) {
         MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(JobAdvertisedDO.class);
         query.eqIfPresent(JobAdvertisedDO::getEnterpriseId, enterpriseId);
         query.eqIfPresent(JobAdvertisedDO::getUserId, userId);
-        notExpireTime(query);
+        if(exTime==0) {
+            notExpireTime(query);
+        }
         query.eqIfPresent(JobAdvertisedDO::getStatus, status);
         query.inIfPresent(JobAdvertisedDO::getId, ids);
         query.orderByDesc(JobAdvertisedDO::getUpdateTime);

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/framework/datapermission/config/DataPermissionConfiguration.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.framework.datapermission.config;
 
 import com.citu.module.menduner.system.config.permission.CustomDataPermissionRuleCustomizer;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairDetailDO;
 import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
@@ -40,6 +41,10 @@ public class DataPermissionConfiguration {
             // 企业人才库表 where enterprise_id = xx and user_id = xx
             rule.addDataColumn(EnterpriseTalentPoolDO.class);
             rule.addUserColumn(EnterpriseTalentPoolDO.class);
+
+            //招聘会
+            rule.addDataColumn(FairDetailDO.class);
+
         };
     }
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedService.java

@@ -194,7 +194,7 @@ public interface JobAdvertisedService {
      *
      * @return 简易职位信息的集合
      **/
-    List<AppRecruitJobRespVO> getList(String status);
+    List<AppRecruitJobRespVO> getList(String status,short exTime);
 
     /**
      * 获取根据id集合获取对应发布的职位

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

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.http.HtmlUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.citu.framework.common.exception.ServiceException;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
@@ -26,10 +27,14 @@ import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJ
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisPageReqVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalysisRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseDetailRespVO;
 import com.citu.module.menduner.system.controller.base.job.*;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
+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.JobAdvertisedExtendDO;
+import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedExtendMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.enums.job.JobSourceEnum;
@@ -40,19 +45,19 @@ import com.citu.module.menduner.system.mq.producer.ESProducer;
 import com.citu.module.menduner.system.mq.producer.GraphProducer;
 import com.citu.module.menduner.system.service.area.AreaService;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
+import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
 import com.citu.module.menduner.system.service.job.handler.JobOperateHandler;
 import com.citu.module.menduner.system.service.share.ShareService;
+import com.citu.module.menduner.system.service.user.MdeUserService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -100,6 +105,16 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Resource
     private List<JobOperateHandler> jobOperateHandlers;
 
+    @Resource
+    private EnterpriseMapper enterpriseMapper;
+
+    @Resource
+    EnterpriseUserBindService enterpriseUserBindService;
+
+
+    @Resource
+    MdeUserService mdeUserService;
+
     @Override
     public Long createJobAdvertised(JobAdvertisedSaveReqVO createReqVO) {
         // 插入
@@ -479,11 +494,11 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     }
 
     @Override
-    public List<AppRecruitJobRespVO> getList(String status) {
+    public List<AppRecruitJobRespVO> getList(String status,short exTime) {
         List<AppRecruitJobRespVO> list = mapper.list(
                 LoginUserContext.getEnterpriseId(),
                 LoginUserContext.getUserId(),
-                null, status
+                null, status,exTime
         );
         list.forEach(item -> {
             if (null != item.getAreaId()) {
@@ -495,11 +510,43 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
 
     @Override
     public List<AppRecruitJobRespVO> getByIdsList(List<Long> ids) {
-        return mapper.list(
-                LoginUserContext.getEnterpriseId(),
+        List<AppRecruitJobRespVO> list = mapper.list(
+                null,
                 null,
                 ids, null
         );
+
+        Map<Long,EnterpriseDetailRespVO> enterpriseCache =new HashMap<>();
+        Map<Long,String> userNameCache =new HashMap<>();
+        list.forEach(item->{
+
+            EnterpriseDetailRespVO enterpriseDetailRespVO= enterpriseCache.get(item.getEnterpriseId());
+            if(null == enterpriseDetailRespVO) {
+                enterpriseDetailRespVO = enterpriseMapper.get(item.getEnterpriseId());
+                enterpriseCache.put(item.getEnterpriseId(),enterpriseDetailRespVO);
+            }
+            item.setEnterpriseName(enterpriseDetailRespVO.getAnotherName());
+            item.setEnterpriseLogo(enterpriseDetailRespVO.getLogoUrl());
+            String userName = userNameCache.get(item.getUserId());
+            if(null == userName){
+                try {
+                    EnterpriseUserBindDO enterpriseUserBind = enterpriseUserBindService.getEnterpriseUserBind(item.getUserId());
+                    userName=enterpriseUserBind.getName();
+
+                }catch (ServiceException e){
+                    // 没有填写过资料
+                   if(Objects.equals(e.getCode(), MDE_ENTERPRISE_USER_BIND_NOT_EXISTS.getCode())){
+                       // 查询用户信息
+                       userName = mdeUserService.getMdeUser2(item.getUserId()).getPhone();
+                   }
+                }
+                userNameCache.put(item.getUserId(),userName);
+            }
+            item.setHrName(userName);
+        });
+
+
+        return list;
     }
 
     @Override

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

@@ -2,6 +2,7 @@ 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.exception.ServiceException;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.common.util.LoginUserContext;
@@ -20,15 +21,18 @@ import com.citu.module.menduner.system.controller.base.CommonRespVO;
 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.enterprise.vo.EnterpriseDetailRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedDetailRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedImportExcelVO;
 import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelDetailRespVO;
 import com.citu.module.menduner.system.convert.EnterpriseConvert;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
 import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
+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.position.PositionDO;
+import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
 import com.citu.module.menduner.system.dal.mysql.area.AreaMapper;
 import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
@@ -42,9 +46,11 @@ import com.citu.module.menduner.system.enums.job.JobStatusEnum;
 import com.citu.module.menduner.system.service.area.AreaService;
 import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
 import com.citu.module.menduner.system.service.interview.InterviewInviteService;
+import com.citu.module.menduner.system.service.user.MdeUserService;
 import com.citu.module.menduner.system.util.ESQueryBuildUtils;
 import com.citu.module.menduner.system.util.RedisUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.elasticsearch.index.query.BoolQueryBuilder;
 import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
 import org.elasticsearch.search.sort.SortBuilders;
@@ -64,6 +70,8 @@ import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.MDE_ENTERPRISE_USER_BIND_NOT_EXISTS;
+
 @Slf4j
 @Service
 @Validated
@@ -108,6 +116,12 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
     @Resource
     private RedisUtils redisUtils;
 
+    @Resource
+    MdeUserService mdeUserService;
+
+    @Resource
+    EnterpriseUserBindService enterpriseUserBindService;
+
 
     @Override
     public PageResult<JobCvRelDetailRespVO> getJobCvPage(PageParam page, Long userId) {
@@ -322,6 +336,9 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
         // 查询简历
         List<JobCvRelDO> jobCvRelDOList = jobCvRelMapper.selectByJobIdListAndFilterUnfit(jobIdList);
 
+        Map<Long,EnterpriseDetailRespVO> enterpriseCache =new HashMap<>();
+        Map<Long,String> userNameCache =new HashMap<>();
+
         pageResult.getList().forEach(job -> {
             AppRecruitJobRespVO respVO = JobAdvertisedConvert.INSTANCE.convert4(job);
             Long count = jobCvRelDOList.stream()
@@ -348,6 +365,31 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
             // 查询当前职位加入哪些招聘会
             respVO.setJobFairIds(fairDetailMapper.selectJobFairIdsByJobId(job.getId()));
 
+            EnterpriseDetailRespVO enterpriseDetailRespVO= enterpriseCache.get(job.getEnterpriseId());
+            if(null == enterpriseDetailRespVO) {
+                 enterpriseDetailRespVO = enterpriseMapper.get(job.getEnterpriseId());
+                enterpriseCache.put(job.getEnterpriseId(),enterpriseDetailRespVO);
+            }
+            respVO.setEnterpriseName(enterpriseDetailRespVO.getAnotherName());
+            respVO.setEnterpriseLogo(enterpriseDetailRespVO.getLogoUrl());
+            String userName = userNameCache.get(job.getUserId());
+            if(null == userName) {
+                try {
+                    EnterpriseUserBindDO enterpriseUserBind = enterpriseUserBindService.getEnterpriseUserBind(job.getUserId());
+                    userName = enterpriseUserBind.getName();
+
+                } catch (ServiceException e) {
+                    // 没有填写过资料
+                    if (Objects.equals(e.getCode(), MDE_ENTERPRISE_USER_BIND_NOT_EXISTS.getCode())) {
+                        // 查询用户信息
+                        userName = mdeUserService.getMdeUser2(job.getUserId()).getPhone();
+                    }
+                }
+            }
+                userNameCache.put(job.getUserId(),userName);
+            respVO.setEnterpriseId(job.getEnterpriseId());
+            respVO.setHrUserId(job.getUserId());
+            respVO.setHrName(userName);
             list.add(respVO);
 
         });