From d5245c1ce7ebf340fcaff48d0475d3f49ad41394 Mon Sep 17 00:00:00 2001 From: czy <516790759@qq.com> Date: Thu, 23 Oct 2025 10:42:57 +0800 Subject: [PATCH] =?UTF-8?q?#=20=E5=B2=97=E4=BD=8D=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=9A=E6=94=AF=E6=8C=81=E6=96=B0=E5=BB=BA=E4=BA=BA=E6=89=8D?= =?UTF-8?q?=E9=9B=86=E5=9B=A2=E6=9C=BA=E6=9E=84=E6=9F=A5=E7=9C=8B=E5=85=A8?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=B2=97=E4=BD=8D=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PositionServiceImpl.java | 75 ++++++++++++------- 1 file changed, 49 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/newyetai/recruit/position/service/impl/PositionServiceImpl.java b/src/main/java/com/newyetai/recruit/position/service/impl/PositionServiceImpl.java index 2075a5f..ebb238a 100644 --- a/src/main/java/com/newyetai/recruit/position/service/impl/PositionServiceImpl.java +++ b/src/main/java/com/newyetai/recruit/position/service/impl/PositionServiceImpl.java @@ -1,13 +1,9 @@ package com.newyetai.recruit.position.service.impl; -import com.google.common.collect.Lists; - import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; -import com.newyetai.usercenter.user.constant.UserTypeEnum; -import lombok.extern.slf4j.Slf4j; - import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.google.common.collect.Lists; import com.newyetai.common.AlitaResult; import com.newyetai.common.constant.CommonConstants; import com.newyetai.common.dto.ExportHeadDetailInfoDTO; @@ -15,30 +11,22 @@ import com.newyetai.common.dto.ExportHeadInfoDTO; import com.newyetai.common.easyexcel.ExcelUtil; import com.newyetai.common.exception.BusinessException; import com.newyetai.common.exception.util.Assert; -import com.newyetai.common.util.JsonUtils; +import com.newyetai.common.util.UserContextHolder; +import com.newyetai.component.dict.util.DictUtils; +import com.newyetai.config.entity.Config; +import com.newyetai.config.service.ConfigService; import com.newyetai.recruit.company.dto.HrCompanyDTO; import com.newyetai.recruit.company.dto.HrCompanyPageQueryDTO; import com.newyetai.recruit.company.enums.HrCompanyEnum; import com.newyetai.recruit.company.service.IHrCompanyService; -import com.newyetai.component.dict.util.DictUtils; import com.newyetai.recruit.position.convert.PositionConvert; -import com.newyetai.recruit.position.dao.PositionRegistrationMapper; -import com.newyetai.recruit.position.entity.Position; -import com.newyetai.recruit.position.dto.*; import com.newyetai.recruit.position.dao.PositionMapper; +import com.newyetai.recruit.position.dao.PositionRegistrationMapper; +import com.newyetai.recruit.position.dto.*; +import com.newyetai.recruit.position.entity.Position; import com.newyetai.recruit.position.enums.PositionStatusEnum; import com.newyetai.recruit.position.service.PositionFileService; import com.newyetai.recruit.position.service.PositionService; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.aop.framework.AopContext; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.newyetai.common.util.UserContextHolder; import com.newyetai.recruit.user.dao.UserCollectionMapper; import com.newyetai.recruit.user.dto.JobExpectDTO; import com.newyetai.recruit.user.dto.JobExpectQueryDTO; @@ -47,11 +35,10 @@ import com.newyetai.recruit.user.entity.UserCollection; import com.newyetai.recruit.user.service.JobExpectService; import com.newyetai.recruit.user.service.ResumeService; import com.newyetai.sdk.tencent.map.TencentMapContext; -import com.newyetai.sdk.tencent.map.dto.TencentMapBaseResDTO; -import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixElementsResDTO; import com.newyetai.sdk.tencent.map.dto.TencentMapWsDistanceV1MatrixReqDTO; -import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixResDTO; +import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixElementsResDTO; import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixElementsRowResDTO; +import com.newyetai.sdk.tencent.map.dto.TencentWsDistanceV1MatrixResDTO; import com.newyetai.usercenter.org.dao.OrgMapper; import com.newyetai.usercenter.org.entity.Org; import com.newyetai.usercenter.org.enums.RecruitPositionTypeEnum; @@ -60,9 +47,16 @@ import com.newyetai.usercenter.user.service.UserService; import com.spatial4j.core.context.SpatialContext; import com.spatial4j.core.distance.DistanceUtils; import com.spatial4j.core.shape.Rectangle; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.aop.framework.AopContext; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; - import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -109,6 +103,9 @@ public class PositionServiceImpl implements PositionService { @Autowired private TencentMapContext tencentMapContext; + @Autowired + private ConfigService configService; + @Transactional(rollbackFor = Exception.class) @Override public PositionDTO create(PositionOperatorDTO operatorDto) { @@ -263,9 +260,35 @@ public class PositionServiceImpl implements PositionService { @Override public List page(PositionPageQueryDTO queryDTO) { - if (!CommonConstants.PLATFORM_ORG_ID.equals(UserContextHolder.getExistLoginOrgId())) { - queryDTO.setOrgId(UserContextHolder.getExistLoginOrgId()); + // 获取平台机构ID和当前登录机构ID + Long platformOrgId = CommonConstants.PLATFORM_ORG_ID; + Long loginOrgId = UserContextHolder.getExistLoginOrgId(); + // 获取配置的邀请机构ID(可能为null) + Config orgApplyInviterOrgId = configService.getConfig("org_apply_inviter_org_id", platformOrgId, true); + + // 标记是否需要设置orgId(默认不需要) + boolean needSetOrgId = false; + + if (orgApplyInviterOrgId != null) { + // 配置存在:获取配置值,判断是否为有效非空值 + String inviterOrgId = orgApplyInviterOrgId.getConfigValue(); + if (inviterOrgId != null && !inviterOrgId.isEmpty()) { + // 配置存在且有效:既不是平台机构,也不等于配置机构时才需要设置 + needSetOrgId = !platformOrgId.equals(loginOrgId) && !inviterOrgId.equals(loginOrgId); + } else { + // 配置存在但值为空:仅排除平台机构,其余需要设置 + needSetOrgId = !platformOrgId.equals(loginOrgId); + } + } else { + // 配置不存在:仅排除平台机构,其余需要设置 + needSetOrgId = !platformOrgId.equals(loginOrgId); } + + // 根据判断结果设置orgId + if (needSetOrgId) { + queryDTO.setOrgId(loginOrgId); + } + List list = positionMapper.page(queryDTO); for (PositionDTO positionDTO : list) { positionDTO.setRecruitPositionTypeName(DictUtils.getCodeNameMap("recruit_position_type").get(positionDTO.getRecruitPositionType()));