diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml
index 23b2e6daa..3e2073c8b 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml
@@ -451,7 +451,21 @@
- and si.operations_consultant = #{operationsConsultant}
+ and (
+ si.operations_consultant = #{operationsConsultant}
+
+ or (
+ si.region_id in
+
+ #{regionId}
+
+ or si.invest_region_id in
+
+ #{regionId}
+
+ )
+
+ )
and (si.shop_name like concat('%',#{request.shopKeyword},'%') or si.shop_code like concat('%',#{request.shopKeyword},'%'))
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/DeskRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/DeskRequest.java
index ee4618735..48016760b 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/DeskRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/DeskRequest.java
@@ -32,6 +32,9 @@ public class DeskRequest {
@ApiModelProperty(value = "签约类型")
private List signTypes;
+ @ApiModelProperty(value = "管辖区域IDs")
+ private List authRegionIds;
+
@ApiModelProperty(value = "阶段状态")
private List stageStatus;
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java
index bfc884da7..ce3d9af89 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java
@@ -608,26 +608,35 @@ public class DeskServiceImpl implements DeskService {
@Override
public PageInfo openingAcceptance(DeskRequest deskRequest, LoginUserInfo user) {
List userRoleIds = enterpriseUserRoleMapper.getUserRoleIds(user.getUserId());
- //如果运营顾问 查询直接返回
- List stageList = new ArrayList<>();
- Boolean flag = Boolean.FALSE;
- if (userRoleIds.contains(UserRoleEnum.QW_SUPERVISION.getCode()) || userRoleIds.contains(UserRoleEnum.SUPERVISION.getCode())) {
- stageList.addAll(Arrays.asList(SHOP_SUB_STAGE_STATUS_270.getShopSubStageStatus(),SHOP_SUB_STAGE_STATUS_274.getShopSubStageStatus()));
- return operationCustomQueryList(deskRequest, user, ShopSubStageEnum.SHOP_STAGE_27, stageList);
+
+ boolean isSupervision = userRoleIds.contains(UserRoleEnum.QW_SUPERVISION.getCode()) || userRoleIds.contains(UserRoleEnum.SUPERVISION.getCode());
+ boolean isOperationGeneralConsultant = userRoleIds.contains(UserRoleEnum.OPERATION_GENERAL_CONSULTANT.getCode());
+
+ // 两个角色同时存在:使用OR条件一次查询
+ if (isSupervision && isOperationGeneralConsultant) {
+ List stageList = Arrays.asList(SHOP_SUB_STAGE_STATUS_270.getShopSubStageStatus(), SHOP_SUB_STAGE_STATUS_274.getShopSubStageStatus(), SHOP_SUB_STAGE_STATUS_272.getShopSubStageStatus());
+ List authRegionIds = userAuthMappingService.getAuthRegionIdByUserId(user.getUserId(), null);
+ return operationCustomQueryList(deskRequest, user, ShopSubStageEnum.SHOP_STAGE_27, stageList, authRegionIds);
}
- if (userRoleIds.contains(UserRoleEnum.OPERATION_GENERAL_CONSULTANT.getCode()) ) {
- stageList.add(SHOP_SUB_STAGE_STATUS_272.getShopSubStageStatus());
- flag = Boolean.TRUE;
+
+ // 仅运营顾问:按运营顾问ID精确查询
+ if (isSupervision) {
+ List stageList = Arrays.asList(SHOP_SUB_STAGE_STATUS_270.getShopSubStageStatus(), SHOP_SUB_STAGE_STATUS_274.getShopSubStageStatus());
+ return operationCustomQueryList(deskRequest, user, ShopSubStageEnum.SHOP_STAGE_27, stageList, null);
}
- if (CollectionUtils.isEmpty(stageList)){
- return new PageInfo<>();
+
+ // 仅运营总顾问:按管辖范围过滤查询
+ if (isOperationGeneralConsultant) {
+ List stageList = Collections.singletonList(SHOP_SUB_STAGE_STATUS_272.getShopSubStageStatus());
+ return commonPendingVOPageInfo(deskRequest, user, ShopSubStageEnum.SHOP_STAGE_27, stageList, Boolean.TRUE);
}
- return commonPendingVOPageInfo(deskRequest, user, ShopSubStageEnum.SHOP_STAGE_27, stageList, flag);
+
+ return new PageInfo<>();
}
@Override
public PageInfo openingConfirmPendingList(DeskRequest deskRequest, LoginUserInfo user) {
- return operationCustomQueryList(deskRequest, user, ShopSubStageEnum.SHOP_STAGE_30, Arrays.asList(SHOP_SUB_STAGE_STATUS_310.getShopSubStageStatus()));
+ return operationCustomQueryList(deskRequest, user, ShopSubStageEnum.SHOP_STAGE_30, Arrays.asList(SHOP_SUB_STAGE_STATUS_310.getShopSubStageStatus()), null);
}
@Override
@@ -940,9 +949,13 @@ public class DeskServiceImpl implements DeskService {
* @param user
* @param shopSubStageEnum
* @param subStageStatusList
+ * @param authRegionIds 管辖区域IDs(可选,用于两角色同时存在时的OR条件)
* @return
*/
- private PageInfo operationCustomQueryList(DeskRequest deskRequest, LoginUserInfo user, ShopSubStageEnum shopSubStageEnum, List subStageStatusList) {
+ private PageInfo operationCustomQueryList(DeskRequest deskRequest, LoginUserInfo user, ShopSubStageEnum shopSubStageEnum, List subStageStatusList, List authRegionIds) {
+ if (CollectionUtils.isNotEmpty(authRegionIds)) {
+ deskRequest.setAuthRegionIds(authRegionIds);
+ }
PageHelper.startPage(deskRequest.getPageNum(), deskRequest.getPageSize());
List specialShopStageInfo = shopStageInfoDAO.getOperationsConsultantStageInfo(null, shopSubStageEnum.getShopSubStage(),
subStageStatusList, user.getUserId(), deskRequest);