|
@@ -19,6 +19,7 @@ import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalen
|
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.workexp.WorkExpDO;
|
|
|
import com.citu.module.menduner.system.util.JoinHelper;
|
|
|
import com.citu.module.menduner.system.util.RecruitAnalysisUtils;
|
|
|
import org.apache.ibatis.annotations.Mapper;
|
|
@@ -140,7 +141,7 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
|
|
|
// 连接用户表设置vip条件
|
|
|
JoinHelper.joinAndFilterVipUser(query, PersonInfoDO::getUserId);
|
|
|
// 过滤屏蔽用户
|
|
|
- if(null != enterpriseId) {
|
|
|
+ if (null != enterpriseId) {
|
|
|
JoinHelper.filterBlockedUsersForEnterprise(query, PersonInfoDO::getUserId, enterpriseId);
|
|
|
}
|
|
|
if (null != reqVO.getAge()) {
|
|
@@ -233,28 +234,55 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
|
|
|
/**
|
|
|
* 查询推荐人
|
|
|
*
|
|
|
- * @param reqVO 检索条件
|
|
|
+ * @param reqVO 检索条件
|
|
|
* @param enterpriseId 操作的企业
|
|
|
**/
|
|
|
default PageResult<PersonInfoRespVO> queryRecommendPerson(PersonRecommendQueryReqVO reqVO,
|
|
|
Long enterpriseId) {
|
|
|
+// MPJLambdaWrapperX<PersonInfoDO> query = new MPJLambdaWrapperX<>();
|
|
|
+// query.selectAsClass(PersonInfoDO.class, PersonInfoRespVO.class);
|
|
|
+//
|
|
|
+// query.leftJoin(JobInterestedDO.class, JobInterestedDO::getUserId, PersonInfoDO::getUserId);
|
|
|
+// query.inIfPresent(PersonInfoDO::getUserId, reqVO.getIds());
|
|
|
+//
|
|
|
+// query.eqIfPresent(PersonInfoDO::getExpType, reqVO.getExpType());
|
|
|
+// query.eqIfPresent(PersonInfoDO::getEduType, reqVO.getEduType());
|
|
|
+//
|
|
|
+// query.eqIfPresent(PersonInfoDO::getJobType, reqVO.getType());
|
|
|
+// query.in(CollUtil.isNotEmpty(reqVO.getPositionIds()),JobInterestedDO::getPositionId, reqVO.getPositionIds());
|
|
|
+//
|
|
|
+// // 连接用户表设置vip条件
|
|
|
+// JoinHelper.joinAndFilterVipUser(query, PersonInfoDO::getUserId);
|
|
|
+// // 过滤屏蔽用户
|
|
|
+// JoinHelper.filterBlockedUsersForEnterprise(query, PersonInfoDO::getUserId, enterpriseId);
|
|
|
+// query.orderByDesc(PersonInfoDO::getUpdateTime);
|
|
|
+// return selectJoinPage(reqVO, PersonInfoRespVO.class, query);
|
|
|
MPJLambdaWrapperX<PersonInfoDO> query = new MPJLambdaWrapperX<>();
|
|
|
query.selectAsClass(PersonInfoDO.class, PersonInfoRespVO.class);
|
|
|
|
|
|
- query.leftJoin(JobInterestedDO.class, JobInterestedDO::getUserId, PersonInfoDO::getUserId);
|
|
|
- query.inIfPresent(PersonInfoDO::getUserId, reqVO.getIds());
|
|
|
+ // 连接 WorkExpDO 表,并关联子查询
|
|
|
+ query.leftJoin(WorkExpDO.class, "w",w->w
|
|
|
+ .eq(WorkExpDO::getUserId, PersonInfoDO::getUserId)
|
|
|
+ .apply(
|
|
|
+ "w.id = (SELECT we.id FROM mde_work_exp we WHERE we.deleted = 0 and we.user_id = "+query.getAlias()+".user_id order by we.start_time desc limit 1)"));
|
|
|
+
|
|
|
+ // 查询条件:WorkExpDO 的 positionId 在 reqVO.getPositionIds() 中
|
|
|
+ query.in(CollUtil.isNotEmpty(reqVO.getPositionIds()), WorkExpDO::getPositionId, reqVO.getPositionIds());
|
|
|
|
|
|
+ // 其他查询条件
|
|
|
query.eqIfPresent(PersonInfoDO::getExpType, reqVO.getExpType());
|
|
|
query.eqIfPresent(PersonInfoDO::getEduType, reqVO.getEduType());
|
|
|
-
|
|
|
query.eqIfPresent(PersonInfoDO::getJobType, reqVO.getType());
|
|
|
- query.in(CollUtil.isNotEmpty(reqVO.getPositionIds()),JobInterestedDO::getPositionId, reqVO.getPositionIds());
|
|
|
|
|
|
- // 连接用户表设置vip条件
|
|
|
+ // 连接用户表设置 VIP 条件
|
|
|
JoinHelper.joinAndFilterVipUser(query, PersonInfoDO::getUserId);
|
|
|
// 过滤屏蔽用户
|
|
|
JoinHelper.filterBlockedUsersForEnterprise(query, PersonInfoDO::getUserId, enterpriseId);
|
|
|
+
|
|
|
+ // 按更新时间降序排序
|
|
|
query.orderByDesc(PersonInfoDO::getUpdateTime);
|
|
|
+
|
|
|
+ // 执行查询并返回分页结果
|
|
|
return selectJoinPage(reqVO, PersonInfoRespVO.class, query);
|
|
|
}
|
|
|
|