| | |
| | | return new HashMap<>(); |
| | | } |
| | | |
| | | List<String> ids = new ArrayList<>(); |
| | | benefits.forEach(item -> { |
| | | ids.addAll(item.getDetails().stream().filter(detail -> detail.getLinkType() == 2 || detail.getLinkType() == 3).map(MallVipBenefitsDetails::getContent).collect(Collectors.toList())); |
| | | }); |
| | | |
| | | LambdaQueryWrapper<MallVipBenefitsRecord> recordQuery = new LambdaQueryWrapper<>(); |
| | | recordQuery.eq(MallVipBenefitsRecord::getReceiveId, ids) |
| | | .ge(MallVipBenefitsRecord::getReceiveTime, DateUtil.beginOfDay(new Date())) |
| | | .le(MallVipBenefitsRecord::getReceiveTime, DateUtil.endOfDay(new Date())); |
| | | List<MallVipBenefitsRecord> hasRecieveList = mallVipBenefitsRecordMapper.selectList(recordQuery); |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("benefit", benefits.get(0)); |
| | | if (CollUtil.isEmpty(hasRecieveList)) { |
| | | map.put("benefit", benefits.get(0)); |
| | | return map; |
| | | } |
| | | |
| | | List<Long> hasIds = hasRecieveList.stream().map(MallVipBenefitsRecord::getReceiveId).collect(Collectors.toList()); |
| | | List<MallVipBenefits> collect1 = benefits.stream().peek(item -> { |
| | | List<MallVipBenefitsDetails> collect = item.getDetails().stream().filter(detail -> hasIds.contains(Long.parseLong(detail.getContent()))).collect(Collectors.toList()); |
| | | item.setDetails(collect); |
| | | }).filter(item -> CollUtil.isNotEmpty(item.getDetails())).collect(Collectors.toList()); |
| | | |
| | | if (CollUtil.isEmpty(collect1)) { |
| | | return map; |
| | | } |
| | | |
| | | map.put("benefit", collect1.get(0)); |
| | | return map; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<MallVipBenefitsRecord> findVipBenefitsInPage(MallVipBenefitsRecord record, QueryRequest request) { |
| | | Page<MallVipBenefitsRecord> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | return mallVipBenefitsRecordMapper.selectMemberBenefitsRecordInPage(record, page); |
| | | } |
| | | } |