diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/domain/Meeting.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/domain/Meeting.java index 548964d..ea3202a 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/domain/Meeting.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/domain/Meeting.java @@ -48,6 +48,9 @@ public class Meeting implements Serializable { @ApiModelProperty("地区编码") private String regionCode; + @ApiModelProperty("地区层级") + private Integer regionLevel; + @ApiModelProperty("联系人") private String connecter; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/req/MeetingListReq.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/req/MeetingListReq.java index 2488ff5..4ef7111 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/req/MeetingListReq.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/req/MeetingListReq.java @@ -45,4 +45,10 @@ public class MeetingListReq extends PagePo { @ApiModelProperty("项目名称") private String projectName; + @ApiModelProperty("区域编码") + private String regionCode; + + @ApiModelProperty("区域层级") + private Integer regionLevel; + } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/helper/MeetingManageHelper.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/helper/MeetingManageHelper.java index fb4b5a1..a612e1d 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/helper/MeetingManageHelper.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/helper/MeetingManageHelper.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ningdatech.basic.exception.BizException; import com.ningdatech.basic.util.CollUtils; +import com.ningdatech.pmapi.common.helper.RegionCacheHelper; import com.ningdatech.pmapi.common.util.BizUtils; import com.ningdatech.pmapi.common.util.StrUtils; import com.ningdatech.pmapi.expert.constant.ExpertAccountStatusEnum; @@ -33,6 +34,7 @@ import com.ningdatech.pmapi.meeting.service.IMeetingExpertService; import com.ningdatech.pmapi.meta.constant.DictExpertInfoTypeEnum; import com.ningdatech.pmapi.meta.helper.DictionaryCache; import com.ningdatech.pmapi.meta.model.dto.DictionaryDTO; +import com.ningdatech.pmapi.sys.model.dto.RegionDTO; import lombok.AllArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Component; @@ -57,6 +59,7 @@ public class MeetingManageHelper { private final IMeetingExpertService meetingExpertService; private final IExpertInviteRuleService inviteRuleService; private final IExpertInviteAvoidRuleService inviteAvoidRuleService; + private final RegionCacheHelper regionCacheHelper; public void checkReviewProject(MeetingBasicDTO meetingBasic) { if (meetingBasic.getIsInnerProject()) { @@ -125,6 +128,11 @@ public class MeetingManageHelper { } public void buildMeetingQuery(LambdaQueryWrapper query, MeetingListReq req) { + if (StrUtils.isNotBlank(req.getRegionCode())) { + List regions = regionCacheHelper.listChildren(req.getRegionCode(), req.getRegionLevel()); + List regionCodes = CollUtils.fieldList(regions, RegionDTO::getRegionCode); + query.in(Meeting::getRegionCode, regionCodes).ge(Meeting::getRegionLevel, req.getRegionLevel()); + } if (StrUtil.isNotBlank(req.getName())) { query.like(Meeting::getName, req.getName()); } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java index 02c29f6..75c08d2 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java @@ -126,6 +126,7 @@ public class MeetingManage { meeting.setHoldOrg(userDetail.getOrganizationName()); meeting.setHoldOrgCode(userDetail.getOrganizationCode()); meeting.setRegionCode(userDetail.getRegionCode()); + meeting.setRegionLevel(userDetail.getRegionLevel()); meeting.setCreator(userDetail.getUsername()); meeting.setInviteStatus(Boolean.FALSE); meeting.setConfirmedRoster(Boolean.FALSE); diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/agent/AgentLoginUserDetailService.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/agent/AgentLoginUserDetailService.java index ca6f16a..3121098 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/agent/AgentLoginUserDetailService.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/agent/AgentLoginUserDetailService.java @@ -38,6 +38,7 @@ public class AgentLoginUserDetailService implements UserDetailsService { userInfoDetails.setRealName(userFullInfoDTO.getRealName()); userInfoDetails.setUserRoleList(userFullInfoDTO.getUserRoleList()); userInfoDetails.setRegionCode(userFullInfoDTO.getRegionCode()); + userInfoDetails.setRegionLevel(userFullInfoDTO.getRegionLevel()); userInfoDetails.setIdentifier(userFullInfoDTO.getIdentifier()); userInfoDetails.setPassword(userFullInfoDTO.getCredential()); userInfoDetails.setEmployeeCode(userFullInfoDTO.getEmployeeCode()); diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialLoginUserDetailService.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialLoginUserDetailService.java index 08f1c1d..6cbfdfd 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialLoginUserDetailService.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/credential/CredentialLoginUserDetailService.java @@ -59,6 +59,7 @@ public class CredentialLoginUserDetailService implements UserDetailsService { userInfoDetails.setRealName(userFullInfoDTO.getRealName()); userInfoDetails.setUserRoleList(userFullInfoDTO.getUserRoleList()); userInfoDetails.setRegionCode(userFullInfoDTO.getRegionCode()); + userInfoDetails.setRegionLevel(userFullInfoDTO.getRegionLevel()); userInfoDetails.setIdentifier(userFullInfoDTO.getIdentifier()); userInfoDetails.setPassword(userFullInfoDTO.getCredential()); userInfoDetails.setEmployeeCode(userFullInfoDTO.getEmployeeCode()); diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserFullInfoDTO.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserFullInfoDTO.java index d16dbba..19d9e05 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserFullInfoDTO.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserFullInfoDTO.java @@ -27,6 +27,10 @@ public class UserFullInfoDTO { * 所属区域编码 */ private String regionCode; + /** + * 所属区域编码 + */ + private Integer regionLevel; /** * 浙政钉扫码 员工code diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserInfoDetails.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserInfoDetails.java index 67416d5..c95e2e3 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserInfoDetails.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserInfoDetails.java @@ -37,6 +37,11 @@ public class UserInfoDetails extends AbstractLoginUser implements UserDetails { private String regionCode; /** + * 所属区域层级 + */ + private Integer regionLevel; + + /** * 浙政钉扫码 员工code */ private String employeeCode;