From b1520c2d9969ae500690a39075ba23f9dd339995 Mon Sep 17 00:00:00 2001 From: WendyYang Date: Fri, 4 Aug 2023 10:00:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=93=E5=AE=B6=E6=8A=BD?= =?UTF-8?q?=E5=8F=96=E4=B8=93=E5=AE=B6=E5=B1=82=E7=BA=A7=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=A4=9A=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ningdatech/pmapi/common/model/ReqRegionDTO.java | 20 ++++++++++++++++++++ .../meeting/entity/dto/RandomInviteRuleDTO.java | 7 ++----- .../pmapi/meeting/manage/ExpertInviteManage.java | 8 +++++--- .../pmapi/meeting/manage/MeetingManage.java | 7 ++++--- 4 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/common/model/ReqRegionDTO.java diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/model/ReqRegionDTO.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/model/ReqRegionDTO.java new file mode 100644 index 0000000..e0693b0 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/model/ReqRegionDTO.java @@ -0,0 +1,20 @@ +package com.ningdatech.pmapi.common.model; + +import lombok.Data; + +/** + *

+ * ReqRegionDTO + *

+ * + * @author WendyYang + * @since 2023/8/4 + **/ +@Data +public class ReqRegionDTO { + + private String regionCode; + + private Integer regionLevel; + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/dto/RandomInviteRuleDTO.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/dto/RandomInviteRuleDTO.java index a7c1ee5..acf8d3b 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/dto/RandomInviteRuleDTO.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/dto/RandomInviteRuleDTO.java @@ -1,5 +1,6 @@ package com.ningdatech.pmapi.meeting.entity.dto; +import com.ningdatech.pmapi.common.model.ReqRegionDTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -30,11 +31,7 @@ public class RandomInviteRuleDTO extends AbstractInviteRule { @ApiModelProperty("履职意向地层级") private Integer intentionRegionLevel; - @ApiModelProperty("专家层级编码") - private String expertRegionCode; - - @ApiModelProperty("专家层级级别") - private Integer expertRegionLevel; + private List expertRegionList; @ApiModelProperty("专家标签") private List expertTags; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/ExpertInviteManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/ExpertInviteManage.java index 0b575c3..74d5647 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/ExpertInviteManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/ExpertInviteManage.java @@ -123,9 +123,11 @@ public class ExpertInviteManage { * @param rule 随机邀请规则 */ private static void addRegionLimit(LambdaQueryWrapper query, RandomInviteRuleDTO rule) { - if (ObjectUtils.allNotNull(rule.getExpertRegionCode(), rule.getExpertRegionLevel())) { - query.eq(ExpertUserFullInfo::getRegionCode, rule.getExpertRegionCode()); - query.eq(ExpertUserFullInfo::getRegionLevel, rule.getExpertRegionLevel()); + if (CollUtil.isNotEmpty(rule.getExpertRegionList())) { + String inSqlParam = rule.getExpertRegionList().stream() + .map(w -> "('" + w.getRegionCode() + "'," + w.getRegionLevel() + ")") + .collect(Collectors.joining(",", "(", ")")); + query.apply("(region_code, region_level) in " + inSqlParam); } } 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 f55c4e3..0db4f93 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 @@ -586,9 +586,10 @@ public class MeetingManage { List intentionRegions = regionCache.listParents(randomRule.getIntentionRegionCode(), randomRule.getIntentionRegionLevel()); randomRule.setIntentionRegions(intentionRegions); } - if (StrUtil.isNotEmpty(randomRule.getExpertRegionCode())) { - List expertRegions = regionCache.listParents(randomRule.getExpertRegionCode(), randomRule.getExpertRegionLevel()); - randomRule.setExpertRegions(expertRegions); + if (CollUtil.isNotEmpty(randomRule.getExpertRegionList())) { + List regions = CollUtils.convert(randomRule.getExpertRegions(), + w -> regionCache.getByCodeAndLevel(w.getRegionCode(), w.getRegionLevel())); + randomRule.setExpertRegions(regions); } result.getRandomRules().add(randomRule); });