|
@@ -2,7 +2,9 @@ package com.citu.module.menduner.system.dal.mysql.job;
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.citu.framework.common.pojo.PageParam;
|
|
|
import com.citu.framework.common.pojo.PageResult;
|
|
|
import com.citu.framework.common.util.collection.CollectionUtils;
|
|
@@ -15,16 +17,12 @@ import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdver
|
|
|
import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobExportRespVO;
|
|
|
import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobPageReqVO;
|
|
|
import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobRespVO;
|
|
|
-import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSimpleRespVO;
|
|
|
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.fair.JobFairDetailPageReqVO;
|
|
|
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedDetailRespVO;
|
|
|
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedPageReqVO;
|
|
|
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedReqVO;
|
|
|
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSimpleRespVO;
|
|
|
+import com.citu.module.menduner.system.controller.base.job.*;
|
|
|
import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelDetailRespVO;
|
|
|
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
|
|
@@ -32,10 +30,12 @@ import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.fair.FairDetailDO;
|
|
|
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.dal.dataobject.person.PersonJobFavoriteDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.position.PositionDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.visits.MdeVisitsDO;
|
|
|
import com.citu.module.menduner.system.enums.MendunerStatusEnum;
|
|
|
+import com.citu.module.menduner.system.enums.job.JobJoinFairStatus;
|
|
|
import com.citu.module.menduner.system.enums.job.JobStatusEnum;
|
|
|
import com.citu.module.menduner.system.enums.visits.MdeVisitsEnum;
|
|
|
import com.citu.module.menduner.system.util.RecruitAnalysisUtils;
|
|
@@ -50,15 +50,24 @@ import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 招聘职位 Mapper
|
|
|
- *
|
|
|
* @author Rayson
|
|
|
*/
|
|
|
@Mapper
|
|
|
public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
|
|
|
|
|
|
- default PageResult<JobAdvertisedDO> selectPage(JobAdvertisedPageReqVO reqVO) {
|
|
|
- return selectPage(reqVO, new LambdaQueryWrapperX<JobAdvertisedDO>()
|
|
|
- .inIfPresent(JobAdvertisedDO::getId, reqVO.getId())
|
|
|
+ default PageResult<JobAdvertisedRespVO> selectPage(JobAdvertisedPageReqVO reqVO) {
|
|
|
+
|
|
|
+ MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
|
|
|
+ query.selectAll(JobAdvertisedDO.class);
|
|
|
+ query.selectAssociation(FairDO.class,JobAdvertisedRespVO::getJobFairRespVO);
|
|
|
+ query.selectAssociation(EnterpriseUserBindDO.class,JobAdvertisedRespVO::getSendUser);
|
|
|
+ query.selectAs(FairDO::getTitle, JobAdvertisedRespVO::getJobFairName);
|
|
|
+ query.leftJoin(FairDO.class,on->on.eq(JobAdvertisedDO::getFairId, FairDO::getId).eq(JobAdvertisedDO::getJoinFairStatus,JobJoinFairStatus.JOIN_FAIR_JOB.getStatus()));
|
|
|
+ query.leftJoin(EnterpriseUserBindDO.class,on ->
|
|
|
+ on.eq(EnterpriseUserBindDO::getEnterpriseId,JobAdvertisedDO::getEnterpriseId)
|
|
|
+ .eq(EnterpriseUserBindDO::getUserId,JobAdvertisedDO::getUserId));
|
|
|
+ query.eq(null!=reqVO.getFairId() && reqVO.getFairId()>0,FairDO::getId,reqVO.getFairId());
|
|
|
+ query.inIfPresent(JobAdvertisedDO::getId, reqVO.getId())
|
|
|
.eqIfPresent(JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId())
|
|
|
.eqIfPresent(JobAdvertisedDO::getUserId, reqVO.getUserId())
|
|
|
.eqIfPresent(JobAdvertisedDO::getAreaId, reqVO.getAreaId())
|
|
@@ -70,7 +79,11 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
|
|
|
.eqIfPresent(JobAdvertisedDO::getHire, reqVO.isHire())
|
|
|
.eqIfPresent(JobAdvertisedDO::getStatus, reqVO.getStatus())
|
|
|
.betweenIfPresent(JobAdvertisedDO::getCreateTime, reqVO.getCreateTime())
|
|
|
- .orderByDesc(JobAdvertisedDO::getUpdateTime));
|
|
|
+ .orderByDesc(JobAdvertisedDO::getUpdateTime);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return selectJoinPage(reqVO,JobAdvertisedRespVO.class ,query);
|
|
|
}
|
|
|
|
|
|
default List<JobAdvertisedDO> selectListByIds(List<Long> ids) {
|
|
@@ -150,6 +163,9 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
|
|
|
return selectList(query);
|
|
|
}
|
|
|
|
|
|
+ default void notFairJob(MPJLambdaWrapperX<JobAdvertisedDO> query){
|
|
|
+ query.eq(JobAdvertisedDO::getJoinFairStatus, JobJoinFairStatus.NORMAL_JOB.getStatus());
|
|
|
+ }
|
|
|
/**
|
|
|
* 求职端 - 根据查询条件分页查询正常状态和没有过期的职位信息
|
|
|
**/
|
|
@@ -170,7 +186,7 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
|
|
|
query.eqIfPresent(JobAdvertisedDO::getHire, reqVO.getHire());
|
|
|
query.eqIfPresent(JobAdvertisedDO::getTop, reqVO.getTop());
|
|
|
notExpireTime(query);
|
|
|
-
|
|
|
+ notFairJob(query);
|
|
|
// 相识参数
|
|
|
if (reqVO.getAcquainted()) {
|
|
|
query.and(wrapper -> wrapper
|
|
@@ -217,7 +233,7 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
|
|
|
query.eq(EnterpriseDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
|
|
|
|
|
|
notExpireTime(query);
|
|
|
-
|
|
|
+ notFairJob(query);
|
|
|
query.inIfPresent(JobAdvertisedDO::getId, CollectionUtils.ofDefaultIfNull(reqVO.getIds()));
|
|
|
query.inIfPresent(JobAdvertisedDO::getPositionId, reqVO.getPositionIds());
|
|
|
query.eqIfPresent(JobAdvertisedDO::getHire, reqVO.getHire());
|
|
@@ -248,6 +264,7 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
|
|
|
query.eq(EnterpriseDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
|
|
|
query.eq(JobAdvertisedDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
|
|
|
notExpireTime(query);
|
|
|
+ notFairJob(query);
|
|
|
// 是vip 并且过期时间没到
|
|
|
query.gt(EnterpriseDO::getVipFlag, 0);
|
|
|
query.gt(EnterpriseDO::getVipExpireDate, LocalDateTime.now());
|
|
@@ -276,29 +293,82 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
|
|
|
/**
|
|
|
* 根据用户id 查询投递的职位信息
|
|
|
**/
|
|
|
- default PageResult<JobCvRelDetailRespVO> selectCvRelJobPage(PageParam pageParam, Long userId) {
|
|
|
+ default PageResult<JobCvRelDetailRespVO> selectCvRelJobPage(JobCvRelPageReqVO reqVO, Long userId) {
|
|
|
MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
|
|
|
query.selectAssociation(JobAdvertisedDO.class, JobCvRelDetailRespVO::getJob);
|
|
|
query.selectAssociation(EnterpriseDO.class, JobCvRelDetailRespVO::getEnterprise);
|
|
|
query.selectAssociation(JobCvRelDO.class, JobCvRelDetailRespVO::getCvRel);
|
|
|
+ query.selectAssociation(FairDO.class, JobCvRelDetailRespVO::getJobFair);
|
|
|
+ query.selectAssociation("person", PersonInfoDO.class, JobCvRelDetailRespVO::getPerson);
|
|
|
|
|
|
query.innerJoin(JobCvRelDO.class, JobCvRelDO::getJobId, JobAdvertisedDO::getId);
|
|
|
query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId);
|
|
|
- query.eq(JobCvRelDO::getUserId, userId);
|
|
|
+ query.leftJoin(FairDO.class, on ->on.eq(JobCvRelDO::getJobFairId, FairDO::getId));
|
|
|
+ query.leftJoin(PersonInfoDO.class, "person", PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
|
+
|
|
|
+ query.eq(!Long.valueOf(-999L).equals(userId),JobCvRelDO::getUserId, userId);
|
|
|
+// query.
|
|
|
+ query.eq(null!=reqVO.getEnterpriseId(), JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId());
|
|
|
+ query.eq(null!=reqVO.getJobId(), JobAdvertisedDO::getId, reqVO.getJobId());
|
|
|
+ query.eq(null!=reqVO.getStatus(), JobCvRelDO::getStatus, reqVO.getStatus());
|
|
|
+ query.eq(null!=reqVO.getType(), JobCvRelDO::getType, reqVO.getType());
|
|
|
+ query.eq(null!=reqVO.getRecommendUserId(), JobCvRelDO::getRecommendUserId, reqVO.getRecommendUserId());
|
|
|
+// query.eq(null!=reqVO.getCreateTime(), JobCvRelDO::getCreateTime, reqVO.getCreateTime());
|
|
|
+ query.eq(null!=reqVO.getPublishUserId(), JobCvRelDO::getPublishUserId, reqVO.getPublishUserId());
|
|
|
+ query.eq(null!=reqVO.getJobFairId(), JobCvRelDO::getJobFairId, reqVO.getJobFairId());
|
|
|
+ query.orderByDesc(JobAdvertisedDO::getUpdateTime);
|
|
|
+ return selectJoinPage(reqVO, JobCvRelDetailRespVO.class, query);
|
|
|
+ }
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据用户id 查询投递的职位信息
|
|
|
+ **/
|
|
|
+ default PageResult<JobCvRelDetailRespVO> selectAdminCvRelJobPage(JobCvRelPageReqVO reqVO, Long userId) {
|
|
|
+ MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
|
|
|
+ query.selectAssociation(JobAdvertisedDO.class, JobCvRelDetailRespVO::getJob);
|
|
|
+// query.selectAssociation(EnterpriseUserBindDO.class, JobCvRelDetailRespVO::getSendUser);
|
|
|
+ query.selectAssociation(EnterpriseDO.class, JobCvRelDetailRespVO::getEnterprise);
|
|
|
+ query.selectAssociation(JobCvRelDO.class, JobCvRelDetailRespVO::getCvRel);
|
|
|
+ query.selectAssociation(FairDO.class, JobCvRelDetailRespVO::getJobFair);
|
|
|
+ query.selectAssociation("person", PersonInfoDO.class, JobCvRelDetailRespVO::getPerson);
|
|
|
+
|
|
|
+ query.innerJoin(JobCvRelDO.class, JobCvRelDO::getJobId, JobAdvertisedDO::getId);
|
|
|
+ query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId);
|
|
|
+ query.leftJoin(FairDO.class, on ->on.eq(JobCvRelDO::getJobFairId, FairDO::getId));
|
|
|
+ query.leftJoin(PersonInfoDO.class, "person", PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
|
+// query.leftJoin(EnterpriseUserBindDO.class, "enterprise_user",
|
|
|
+// on->on
|
|
|
+// .eq(JobAdvertisedDO::getEnterpriseId, EnterpriseUserBindDO::getEnterpriseId)
|
|
|
+// .eq(JobAdvertisedDO::getUserId,EnterpriseUserBindDO::getUserId)
|
|
|
+// );
|
|
|
+
|
|
|
+
|
|
|
+ query.eq(null!=userId,JobAdvertisedDO::getUserId, userId);
|
|
|
+// query.
|
|
|
+ query.eq(null!=reqVO.getEnterpriseId(), JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId());
|
|
|
+ query.eq(null!=reqVO.getJobId(), JobAdvertisedDO::getId, reqVO.getJobId());
|
|
|
+ query.eq(null!=reqVO.getStatus(), JobCvRelDO::getStatus, reqVO.getStatus());
|
|
|
+ query.eq(null!=reqVO.getType(), JobCvRelDO::getType, reqVO.getType());
|
|
|
+ query.eq(null!=reqVO.getRecommendUserId(), JobCvRelDO::getRecommendUserId, reqVO.getRecommendUserId());
|
|
|
+// query.eq(null!=reqVO.getCreateTime(), JobCvRelDO::getCreateTime, reqVO.getCreateTime());
|
|
|
+ query.eq(null!=reqVO.getPublishUserId(), JobCvRelDO::getPublishUserId, reqVO.getPublishUserId());
|
|
|
+ query.eq(null!=reqVO.getJobFairId(), JobCvRelDO::getJobFairId, reqVO.getJobFairId());
|
|
|
query.orderByDesc(JobAdvertisedDO::getUpdateTime);
|
|
|
- return selectJoinPage(pageParam, JobCvRelDetailRespVO.class, query);
|
|
|
+ return selectJoinPage(reqVO, JobCvRelDetailRespVO.class, query);
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 根据企业id集合查询企业数据
|
|
|
**/
|
|
|
default List<JobAdvertisedDO> selectByEnterpriseId(Long id, Integer num) {
|
|
|
- LambdaQueryWrapper<JobAdvertisedDO> query = new LambdaQueryWrapperX<JobAdvertisedDO>();
|
|
|
+ MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<JobAdvertisedDO>();
|
|
|
query.in(JobAdvertisedDO::getEnterpriseId, id);
|
|
|
query.eq(JobAdvertisedDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
|
|
|
notExpireTime(query);
|
|
|
+ notFairJob(query);
|
|
|
query.orderByDesc(JobAdvertisedDO::getUpdateTime);
|
|
|
if (null != num) {
|
|
|
query.last("limit " + num);
|