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