| | |
| | | //如果要筛选标签。用标签获取useids |
| | | if (userListQueryDto.getUserTagId() != null){ |
| | | userIds = appUserTagService.lambdaQuery().eq(TAppUserTag::getUserTagId, userListQueryDto.getUserTagId()).list().stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList()); |
| | | if (userIds.isEmpty()) { |
| | | userIds.add(-1L); |
| | | } |
| | | } |
| | | List<TAppUserWhitelist> whitelistList = new ArrayList<>(); |
| | | List<Long> whitelistUserIds = new ArrayList<>(); |
| | | List<String> whitelistPhones = new ArrayList<>(); |
| | | if (userListQueryDto.getWhitelistFlag() != null) { |
| | | whitelistList = appUserWhitelistService.lambdaQuery() |
| | | .eq(TAppUserWhitelist::getStatus, 1) |
| | | .eq(TAppUserWhitelist::getDelFlag, false) |
| | | .list(); |
| | | whitelistUserIds = whitelistList.stream() |
| | | .map(TAppUserWhitelist::getAppUserId) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.toList()); |
| | | whitelistPhones = whitelistList.stream() |
| | | .map(TAppUserWhitelist::getPhone) |
| | | .filter(StringUtils::isNotBlank) |
| | | .collect(Collectors.toList()); |
| | | } |
| | | //列表查询 |
| | | Page<TAppUser> page = appUserService.lambdaQuery() |
| | | LambdaQueryChainWrapper<TAppUser> query = appUserService.lambdaQuery() |
| | | .like(userListQueryDto.getUserPhone() != null && !"".equals(userListQueryDto.getUserPhone()), TAppUser::getPhone, userListQueryDto.getUserPhone()) |
| | | .eq(userListQueryDto.getCompanyId() != null, TAppUser::getCompanyId, userListQueryDto.getCompanyId()) |
| | | .eq(userListQueryDto.getProvinceCode() != null && !"".equals(userListQueryDto.getProvinceCode()), TAppUser::getProvinceCode, userListQueryDto.getProvinceCode()) |
| | |
| | | .eq(userListQueryDto.getStatus() != null, TAppUser::getStatus, userListQueryDto.getStatus()) |
| | | .eq(userListQueryDto.getVipTypeId() != null, TAppUser::getVipId, userListQueryDto.getVipTypeId()) |
| | | .in(!userIds.isEmpty(),TAppUser::getId,userIds) |
| | | .orderByDesc(BasePojo::getCreateTime) |
| | | .page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize())); |
| | | .orderByDesc(BasePojo::getCreateTime); |
| | | if (Integer.valueOf(1).equals(userListQueryDto.getWhitelistFlag())) { |
| | | if (whitelistUserIds.isEmpty() && whitelistPhones.isEmpty()) { |
| | | query.eq(TAppUser::getId, -1L); |
| | | } else { |
| | | List<Long> finalWhitelistUserIds = whitelistUserIds; |
| | | List<String> finalWhitelistPhones = whitelistPhones; |
| | | query.and(wrapper -> { |
| | | if (!finalWhitelistUserIds.isEmpty()) { |
| | | wrapper.in(TAppUser::getId, finalWhitelistUserIds); |
| | | } |
| | | if (!finalWhitelistPhones.isEmpty()) { |
| | | if (!finalWhitelistUserIds.isEmpty()) { |
| | | wrapper.or(); |
| | | } |
| | | wrapper.in(TAppUser::getPhone, finalWhitelistPhones); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | if (Integer.valueOf(2).equals(userListQueryDto.getWhitelistFlag())) { |
| | | query.notIn(!whitelistUserIds.isEmpty(), TAppUser::getId, whitelistUserIds) |
| | | .notIn(!whitelistPhones.isEmpty(), TAppUser::getPhone, whitelistPhones); |
| | | } |
| | | Page<TAppUser> page = query.page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize())); |
| | | if (page.getRecords().isEmpty()){ |
| | | return R.ok(page); |
| | | } |
| | | List<Long> pageUserIds = page.getRecords().stream().map(TAppUser::getId).collect(Collectors.toList()); |
| | | Map<Long, String> userTagNameMap = getUserTagNameMap(pageUserIds); |
| | | Map<Long, BigDecimal> exchangeCodeBalanceMap = otherClient.getExchangeCodeBalanceMap(pageUserIds).getData(); |
| | | if (exchangeCodeBalanceMap == null) { |
| | | exchangeCodeBalanceMap = new HashMap<>(); |
| | |
| | | //循环处理 |
| | | for (TAppUser appUser : page.getRecords()) { |
| | | appUser.setExchangeCodeBalance(exchangeCodeBalanceMap.getOrDefault(appUser.getId(), BigDecimal.ZERO)); |
| | | //拿到最新的tagId |
| | | TAppUserTag one = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, appUser.getId()).orderByDesc(TAppUserTag::getCreateTime).last("limit 1").one(); |
| | | if (one!=null) { |
| | | //设置最新的tagName |
| | | R<TUserTag> byIdTag = otherClient.getByIdTag(one.getUserTagId()); |
| | | if (byIdTag.getData() != null) { |
| | | appUser.setTagName(byIdTag.getData().getName()); |
| | | } |
| | | } |
| | | appUser.setTagName(userTagNameMap.get(appUser.getId())); |
| | | if (appUser.getVipEndTime()!=null&&appUser.getVipEndTime().isAfter(LocalDateTime.now())) { |
| | | //匹配vipMap的值 |
| | | appUser.setVipName(vipMap.getData().get(appUser.getVipId())); |
| | |
| | | } |
| | | return R.ok(page); |
| | | } |
| | | |
| | | private Map<Long, String> getUserTagNameMap(List<Long> userIds) { |
| | | if (userIds == null || userIds.isEmpty()) { |
| | | return new HashMap<>(); |
| | | } |
| | | List<TAppUserTag> userTags = appUserTagService.lambdaQuery() |
| | | .in(TAppUserTag::getAppUserId, userIds) |
| | | .orderByDesc(TAppUserTag::getCreateTime) |
| | | .list(); |
| | | if (userTags.isEmpty()) { |
| | | return new HashMap<>(); |
| | | } |
| | | List<Integer> tagIds = userTags.stream() |
| | | .map(TAppUserTag::getUserTagId) |
| | | .filter(Objects::nonNull) |
| | | .distinct() |
| | | .collect(Collectors.toList()); |
| | | R<Map<Integer, String>> tagMapResult = otherClient.getTagMap(tagIds); |
| | | Map<Integer, String> tagMap = tagMapResult == null || tagMapResult.getData() == null ? new HashMap<>() : tagMapResult.getData(); |
| | | Map<Long, LinkedHashSet<String>> userTagNames = new HashMap<>(); |
| | | for (TAppUserTag userTag : userTags) { |
| | | String tagName = tagMap.get(userTag.getUserTagId()); |
| | | if (StringUtils.isBlank(tagName)) { |
| | | continue; |
| | | } |
| | | userTagNames.computeIfAbsent(userTag.getAppUserId(), key -> new LinkedHashSet<>()).add(tagName); |
| | | } |
| | | Map<Long, String> result = new HashMap<>(); |
| | | userTagNames.forEach((userId, names) -> result.put(userId, String.join(",", names))); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | @RequiresPermissions(value = {"/vipList"}, logical = Logical.OR) |