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()));