Browse Source

1、优化招聘会白名单移除逻辑
2、增加人才简历提交
3、优化白名单企业导出职位接口

rayson 7 tháng trước cách đây
mục cha
commit
8fecdb319d
13 tập tin đã thay đổi với 216 bổ sung14 xóa
  1. 16 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/AppPersonResumeController.java
  2. 0 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/resume/AppPersonInfoTagReqVO.java
  3. 44 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/vo/AppResumeSaveReqVO.java
  4. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/info/TalentMapInfoRespVO.java
  5. 11 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseMapper.java
  6. 2 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairDetailMapper.java
  7. 2 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairWhiteMapper.java
  8. 22 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java
  9. 2 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationService.java
  10. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationServiceImpl.java
  11. 16 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/ResumeService.java
  12. 91 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/ResumeServiceImpl.java
  13. 5 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/info/PersonInfoServiceImpl.java

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

@@ -22,6 +22,7 @@ import com.citu.module.menduner.system.controller.app.jobhunt.person.skill.AppPe
 import com.citu.module.menduner.system.controller.app.jobhunt.person.skill.AppPersonSkillSaveReqVO;
 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.vo.AppResumeSaveReqVO;
 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.convert.*;
@@ -35,6 +36,8 @@ import com.citu.module.menduner.system.dal.dataobject.workexp.WorkExpDO;
 import com.citu.module.menduner.system.service.cvattachment.CvAttachmentService;
 import com.citu.module.menduner.system.service.eduexp.EduExpService;
 import com.citu.module.menduner.system.service.job.JobInterestedService;
+import com.citu.module.menduner.system.service.person.PersonIntegrationService;
+import com.citu.module.menduner.system.service.person.ResumeService;
 import com.citu.module.menduner.system.service.person.info.PersonInfoService;
 import com.citu.module.menduner.system.service.person.skill.PersonSkillService;
 import com.citu.module.menduner.system.service.projectexp.ProjectExpService;
@@ -62,6 +65,9 @@ public class AppPersonResumeController {
     @Resource
     private PersonInfoService personInfoService;
 
+    @Resource
+    private ResumeService resumeService;
+
     @Resource
     private JobInterestedService jobInterestedService;
 
@@ -92,6 +98,16 @@ public class AppPersonResumeController {
         return success(personInfoService.saveInfo(reqVO));
     }
 
+    @PreAuthenticated
+    @PostMapping("/save")
+    @Operation(summary = "保存简历信息")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
+    public CommonResult<Boolean> save(@Valid @RequestBody AppResumeSaveReqVO reqVO) {
+        resumeService.save(reqVO);
+        return success(true);
+    }
+
+
     @PreAuthenticated
     @PostMapping("/tag/update")
     @Operation(summary = "修改人才标签")

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

@@ -9,7 +9,6 @@ import java.util.List;
 @Schema(description = "menduner 人才简历-人才标签 Request VO")
 public class AppPersonInfoTagReqVO {
 
-
     @Schema(description = "人才标签")
     private List<String> tagList;
 }

+ 44 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/vo/AppResumeSaveReqVO.java

@@ -0,0 +1,44 @@
+package com.citu.module.menduner.system.controller.app.jobhunt.person.vo;
+
+import com.citu.module.menduner.system.controller.app.jobhunt.person.eduexp.AppEduExpSaveReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.job.AppJobInterestedSaveReqVO;
+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.AppPersonInfoTagReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.trainexp.AppTrainExpSaveReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.workexp.AppWorkExpSaveReqVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "menduner - 简历保存 Request VO")
+@Data
+public class AppResumeSaveReqVO {
+
+    @Schema(description = "头像")
+    private String avatar;
+
+    @Schema(description = "人才信息")
+    private AppPersonInfoSaveReqVO person;
+
+    @Schema(description = "人才优势")
+    private AppPersonAdvantageSaveReqVO advantage;
+
+    @Schema(description = "人才标签")
+    private AppPersonInfoTagReqVO tag;
+
+    @Schema(description = "求职意向")
+    private List<AppJobInterestedSaveReqVO> jobInterested;
+
+    @Schema(description = "教育经历")
+    private List<AppEduExpSaveReqVO> eduExp;
+
+    @Schema(description = "工作经历")
+    private List<AppWorkExpSaveReqVO> workExp;
+
+    @Schema(description = "培训经历")
+    private List<AppTrainExpSaveReqVO> trainExp;
+
+
+}

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/info/TalentMapInfoRespVO.java

@@ -160,7 +160,7 @@ public class TalentMapInfoRespVO {
 
     @Schema(description = "人才标签")
     @ExcelProperty("人才标签")
-    private String tagList;
+    private List<String> tagList;
 
     @Schema(description = "意向职位")
     @ExcelProperty("意向职位")

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

@@ -20,7 +20,6 @@ import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseBusin
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.industry.IndustryDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonEnterpriseSubscribeDO;
-import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.util.RecruitAnalysisUtils;
 import org.apache.ibatis.annotations.Mapper;
@@ -59,7 +58,7 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         MPJLambdaWrapperX<EnterpriseDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(EnterpriseDO.class);
         query.selectAs(IndustryDO::getNameCn, EnterpriseDetailRespVO::getIndustryName);
-        query.selectAssociation(EnterpriseBusinessDO.class,EnterpriseDetailRespVO::getBusinessResp);
+        query.selectAssociation(EnterpriseBusinessDO.class, EnterpriseDetailRespVO::getBusinessResp);
         query.leftJoin(IndustryDO.class, IndustryDO::getId, EnterpriseDO::getIndustryId);
         query.leftJoin(EnterpriseBusinessDO.class, EnterpriseBusinessDO::getEnterpriseId, EnterpriseDO::getId);
         query.eqIfPresent(EnterpriseDO::getParentId, reqVO.getParentId());
@@ -97,6 +96,14 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
         return selectJoinPage(pageParam, EnterpriseBaseSimpleRespVO.class, query);
     }
 
+
+    /**
+     * 根据企业名称查询企业信息
+     **/
+    default List<EnterpriseDO> selectByNameList(String name) {
+        return selectList(EnterpriseDO::getName, name);
+    }
+
     /**
      * 根据用户id查询收藏的企业
      **/
@@ -188,7 +195,7 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
      * 企业的统计
      **/
     default List<CommonRespVO> getEnterpriseCount(TimeRangeBaseReqVO reqVO,
-                                            LocalDateTime startTime, LocalDateTime endTime) {
+                                                  LocalDateTime startTime, LocalDateTime endTime) {
 
         MPJLambdaWrapperX<EnterpriseDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectCount(EnterpriseDO::getId, CommonRespVO::getValue);
@@ -205,7 +212,7 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
     /**
      * 获取不是vip企业的列表
      **/
-    default List<EnterpriseDO> getNoVipEnterpriseList(){
+    default List<EnterpriseDO> getNoVipEnterpriseList() {
         return selectList(new LambdaQueryWrapperX<EnterpriseDO>()
                 .isNull(EnterpriseDO::getVipFlag)
                 .eq(EnterpriseDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())

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

@@ -62,6 +62,8 @@ public interface FairDetailMapper extends BaseMapperX<FairDetailDO> {
         query.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, FairDetailDO::getJobId);
         query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, FairDetailDO::getEnterpriseId);
 
+        query.eq(FairDetailDO::getJobFairId, jobFairId);
+
         query.orderByDesc(FairDetailDO::getCreateTime);
         return selectJoinList(JobFairDetailRespVO.class, query);
     }

+ 2 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairWhiteMapper.java

@@ -26,12 +26,10 @@ public interface FairWhiteMapper extends BaseMapperX<FairWhiteDO> {
         return selectOne(FairWhiteDO::getJobFairId, jobFairId, FairWhiteDO::getName, name);
     }
 
-    default List<FairWhiteDO> selectByJobFairIdAndEnterpriseName(@Param("jobFairId") Long jobFairId,
-                                                           @Param("name") String name,
-                                                           @Param("anotherName") String anotherName) {
+    default List<FairWhiteDO> selectByJobFairIdAndEnterpriseNameList(Long jobFairId, String name) {
         return selectList(new LambdaQueryWrapperX<FairWhiteDO>()
                 .eq(FairWhiteDO::getJobFairId, jobFairId)
-                .eq(FairWhiteDO::getName, name).or().eq(FairWhiteDO::getName, anotherName)
+                .eq(FairWhiteDO::getName, name)
         );
     }
 

+ 22 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java

@@ -1,8 +1,10 @@
 package com.citu.module.menduner.system.service.fair;
 
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
@@ -162,7 +164,7 @@ public class FairServiceImpl implements FairService {
 //        FairWhiteDO fairWhiteDO = fairWhiteMapper
 //                .selectByJobFairIdAndEnterpriseId(jobFairId, LoginUserContext.getEnterpriseId());
         List<FairWhiteDO> list = fairWhiteMapper
-                .selectByJobFairIdAndEnterpriseName(jobFairId, enterpriseDO.getName(), enterpriseDO.getAnotherName());
+                .selectByJobFairIdAndEnterpriseNameList(jobFairId, enterpriseDO.getName());
         if (ObjectUtil.isEmpty(list)) {
             throw exception(JOB_FAIR_NO_PERMISSION);
         }
@@ -348,6 +350,14 @@ public class FairServiceImpl implements FairService {
                 return;
             }
             fairWhiteMapper.deleteById(fairWhiteDO.getId());
+
+            // 删除该企业招聘会发布的职位
+            fairDetailMapper.update(new LambdaUpdateWrapper<FairDetailDO>()
+                    .eq(FairDetailDO::getJobFairId, fairWhiteDO.getJobFairId())
+                    .eq(FairDetailDO::getEnterpriseId, enterpriseId)
+                    .set(FairDetailDO::getStatus, JobFairStatusEnum.REMOVE.getStatus())
+            );
+
         }
     }
 
@@ -376,6 +386,17 @@ public class FairServiceImpl implements FairService {
                 return;
             }
             fairWhiteMapper.deleteById(fairWhiteDO.getId());
+            List<EnterpriseDO> enterpriseList = enterpriseMapper.selectByNameList(fairWhiteDO.getName());
+            if (CollUtil.isNotEmpty(enterpriseList)) {
+                for (EnterpriseDO enterprise : enterpriseList) {
+                    // 循环匹配的企业,删除该企业招聘会发布的职位
+                    fairDetailMapper.update(new LambdaUpdateWrapper<FairDetailDO>()
+                            .eq(FairDetailDO::getJobFairId, fairWhiteDO.getJobFairId())
+                            .eq(FairDetailDO::getEnterpriseId, enterprise.getId())
+                            .set(FairDetailDO::getStatus, JobFairStatusEnum.REMOVE.getStatus())
+                    );
+                }
+            }
         }
     }
 

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

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.service.person;
 
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.vo.AppResumeSaveReqVO;
 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;
@@ -99,4 +100,5 @@ public interface PersonIntegrationService {
      **/
     void removeEnterpriseTalentPool(Long enterpriseId, Long userId);
 
+
 }

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

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.service.person;
 
 import cn.hutool.core.collection.CollUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.dict.core.DictFrameworkUtils;
 import com.citu.module.menduner.common.util.LoginUserContext;
@@ -8,6 +9,7 @@ import com.citu.module.menduner.system.api.python.GraphApi;
 import com.citu.module.menduner.system.api.python.GraphQueryDTO;
 import com.citu.module.menduner.system.api.python.GraphQueryPageDTO;
 import com.citu.module.menduner.system.api.python.GraphSendDTO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.vo.AppResumeSaveReqVO;
 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;
@@ -391,4 +393,6 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
         }
         talentPoolMapper.deleteById(talentPool.getId());
     }
+
+
 }

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

@@ -0,0 +1,16 @@
+package com.citu.module.menduner.system.service.person;
+
+import com.citu.module.menduner.system.controller.app.jobhunt.person.vo.AppResumeSaveReqVO;
+
+/**
+ * 人才简历接口
+ **/
+public interface ResumeService {
+
+    /**
+     * 一次性保存人才简历信息
+     *
+     * @param reqVO 保存数据
+     **/
+    void save(AppResumeSaveReqVO reqVO);
+}

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

@@ -0,0 +1,91 @@
+package com.citu.module.menduner.system.service.person;
+
+import cn.hutool.core.codec.Base64Decoder;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.citu.module.infra.api.file.FileApi;
+import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.eduexp.AppEduExpSaveReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.job.AppJobInterestedSaveReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.trainexp.AppTrainExpSaveReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.vo.AppResumeSaveReqVO;
+import com.citu.module.menduner.system.controller.app.jobhunt.person.workexp.AppWorkExpSaveReqVO;
+import com.citu.module.menduner.system.service.eduexp.EduExpService;
+import com.citu.module.menduner.system.service.job.JobInterestedService;
+import com.citu.module.menduner.system.service.person.info.PersonInfoService;
+import com.citu.module.menduner.system.service.trainexp.TrainExpService;
+import com.citu.module.menduner.system.service.workexp.WorkExpService;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+/**
+ * 人才简历接口实现类
+ **/
+@Service
+@Validated
+public class ResumeServiceImpl implements ResumeService {
+
+    @Resource
+    private PersonInfoService personInfoService;
+
+    @Resource
+    private JobInterestedService jobInterestedService;
+
+    @Resource
+    private EduExpService eduExpService;
+
+    @Resource
+    private WorkExpService workExpService;
+
+    @Resource
+    private TrainExpService trainExpService;
+
+    @Resource
+    private FileApi fileApi;
+
+
+    @Override
+    @DSTransactional
+    public void save(AppResumeSaveReqVO reqVO) {
+        // 基本信息
+        personInfoService.saveInfo(reqVO.getPerson());
+        // 人才优势
+        personInfoService.saveAdvantage(reqVO.getAdvantage());
+        // 人才标签
+        personInfoService.updateTag(reqVO.getTag());
+        if (reqVO.getAvatar().contains("base64")) {
+            // base64编码
+            // 截取, 之后的所有
+            int index = reqVO.getAvatar().indexOf(", ");
+            byte[] data = Base64Decoder.decode(reqVO.getAvatar().substring(index + 1));
+            // 转为图片地址保存
+            Long userId = LoginUserContext.getUserId();
+            String path = "person/" + userId + "/";
+            String name = reqVO.getAvatar()
+                    .substring(reqVO.getAvatar().length() - 10).replaceAll("/", "") + ".jpg";
+            reqVO.setAvatar(fileApi.createFile(reqVO.getPerson().getName(), path + name, data));
+        }
+        // 头像
+        personInfoService.uploadAvatar(reqVO.getAvatar());
+
+        for (AppJobInterestedSaveReqVO interestedSaveReqVO : reqVO.getJobInterested()) {
+            // 求职意向
+            jobInterestedService.saveJobInterested(interestedSaveReqVO);
+        }
+        for (AppEduExpSaveReqVO expSaveReqVO : reqVO.getEduExp()) {
+            // 教育经历
+            eduExpService.saveEduExp(expSaveReqVO);
+        }
+        for (AppWorkExpSaveReqVO expSaveReqVO : reqVO.getWorkExp()) {
+            // 工作经历
+            workExpService.saveWorkExp(expSaveReqVO);
+        }
+        for (AppTrainExpSaveReqVO trainSaveReqVO : reqVO.getTrainExp()) {
+            // 培训经历
+            trainExpService.saveTrainExp(trainSaveReqVO);
+        }
+
+
+    }
+}

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

@@ -16,7 +16,6 @@ import com.citu.module.menduner.system.controller.app.jobhunt.person.vo.AppInvit
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 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.controller.base.userperson.UserPersonRespVO;
 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.system.enums.sync.SyncConstants;
@@ -186,8 +185,11 @@ public class PersonInfoServiceImpl implements PersonInfoService {
             personInfoMapper.insert(PersonInfoDO.builder().userId(userId).avatar(avatar).build());
             return;
         }
-        info.setAvatar(avatar);
-        personInfoMapper.updateById(info);
+        if (!info.getAvatar().equals(avatar)) {
+            // 图片不一样才保存
+            info.setAvatar(avatar);
+            personInfoMapper.updateById(info);
+        }
     }
 
     @Override