| | |
| | | */ |
| | | @Override |
| | | public PageDTO<CouponReceiveDetailVO> getReceiveDetail(MgtCouponReceiveQuery query) { |
| | | MemberDTO memberDTO = null; |
| | | Set<Long> memberIdSet = null; |
| | | if (StringUtils.isNotBlank(query.getRealName()) || StringUtils.isNotBlank( |
| | | query.getPhone())) { |
| | | memberDTO = new MemberDTO(); |
| | | memberDTO.setRealName(query.getRealName()); |
| | | memberDTO.setPhone(query.getPhone()); |
| | | } |
| | | if (StringUtils.isNotNull(memberDTO)) { |
| | | List<Member> data = memberClient.getMemberListByCondition(memberDTO, |
| | | SecurityConstants.INNER).getData(); |
| | | memberIdSet = data.stream().map(Member::getId).collect(Collectors.toSet()); |
| | | } |
| | | MemberDTO memberDTO = getMemberQueryParam(query); |
| | | Set<Long> memberIdSet = getMemberIdSet(memberDTO); |
| | | Page<CouponMember> page = couponMemberService.lambdaQuery() |
| | | .eq(StringUtils.isNotNull(query.getCouponStatus()), |
| | | CouponMember::getCouponStatus, query.getCouponStatus()) |
| | |
| | | } |
| | | PageDTO<CouponReceiveDetailVO> couponReceiveDetailVOPageDTO = PageDTO.of(page, |
| | | CouponReceiveDetailVO.class); |
| | | // 远程调用会员服务,获取会员信息 |
| | | List<Long> memberIdList = page.getRecords().stream().map(CouponMember::getMemberId) |
| | | .collect(Collectors.toList()); |
| | | if (StringUtils.isNotEmpty(memberIdList)) { |
| | | List<Member> memberList = memberClient.getMemberListByIds(memberIdList, |
| | | SecurityConstants.INNER).getData(); |
| | | Map<Long, Member> memberMap = memberList.stream() |
| | | .collect(Collectors.toMap(Member::getId, Function.identity())); |
| | | couponReceiveDetailVOPageDTO.getList().forEach(item -> { |
| | | Member member = memberMap.get(item.getMemberId()); |
| | | item.setRealName(member.getRealName()); |
| | | item.setPhone(member.getPhone()); |
| | | }); |
| | | } |
| | | List<CouponReceiveDetailVO> couponReceiveDetailVOList = couponReceiveDetailVOPageDTO.getList(); |
| | | handleCouponReceiveDetailVO(couponReceiveDetailVOList); |
| | | return couponReceiveDetailVOPageDTO; |
| | | } |
| | | |
| | | private void handleCouponReceiveDetailVO( |
| | | List<CouponReceiveDetailVO> couponReceiveDetailVOList) { |
| | | // 远程调用订单服务,获取订单信息 |
| | | List<CouponReceiveDetailVO> usedCouponList = couponReceiveDetailVOPageDTO.getList().stream() |
| | | List<CouponReceiveDetailVO> usedCouponList = couponReceiveDetailVOList.stream() |
| | | .filter(item -> item.getCouponStatus().equals( |
| | | CouponUseEnum.USED)).collect(Collectors.toList()); |
| | | Set<Long> couponIdSet = usedCouponList.stream().map(CouponReceiveDetailVO::getCouponId) |
| | |
| | | Function.identity())); |
| | | |
| | | } |
| | | Set<Long> memberSet = couponReceiveDetailVOPageDTO.getList().stream() |
| | | // 远程调用会员服务,获取会员信息 |
| | | Set<Long> memberSet = couponReceiveDetailVOList.stream() |
| | | .map(CouponReceiveDetailVO::getMemberId).collect( |
| | | Collectors.toSet()); |
| | | if (StringUtils.isNotEmpty(memberSet)) { |
| | |
| | | Collectors.toMap(Member::getId, Function.identity())); |
| | | } |
| | | // 封装VO |
| | | for (CouponReceiveDetailVO couponReceiveDetailVO : couponReceiveDetailVOPageDTO.getList()) { |
| | | for (CouponReceiveDetailVO couponReceiveDetailVO : couponReceiveDetailVOList) { |
| | | if (StringUtils.isNotEmpty(memberMap)) { |
| | | Member member = memberMap.get(couponReceiveDetailVO.getMemberId()); |
| | | if (StringUtils.isNotNull(member)) { |
| | | couponReceiveDetailVO.setRealName(member.getRealName()); |
| | | couponReceiveDetailVO.setNickname(member.getNickname()); |
| | | couponReceiveDetailVO.setPhone(member.getPhone()); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(orderMap)) { |
| | |
| | | break; |
| | | } |
| | | } |
| | | return couponReceiveDetailVOPageDTO; |
| | | } |
| | | |
| | | private Set<Long> getMemberIdSet(MemberDTO memberDTO) { |
| | | Set<Long> memberIdSet = null; |
| | | if (StringUtils.isNotNull(memberDTO)) { |
| | | List<Member> data = memberClient.getMemberListByCondition(memberDTO, |
| | | SecurityConstants.INNER).getData(); |
| | | memberIdSet = data.stream().map(Member::getId).collect(Collectors.toSet()); |
| | | } |
| | | return memberIdSet; |
| | | } |
| | | |
| | | private static MemberDTO getMemberQueryParam(MgtCouponReceiveQuery query) { |
| | | MemberDTO memberDTO = null; |
| | | if (StringUtils.isNotBlank(query.getNickname()) || StringUtils.isNotBlank( |
| | | query.getPhone())) { |
| | | memberDTO = new MemberDTO(); |
| | | memberDTO.setNickname(query.getNickname()); |
| | | memberDTO.setPhone(query.getPhone()); |
| | | } |
| | | return memberDTO; |
| | | } |
| | | |
| | | /** |
| | | * 查询领取详情列表 |
| | | * |
| | | * @param query 管理后台-优惠券领取详情查询对象 |
| | | * @return List<CouponReceiveDetailVO> |
| | | */ |
| | | @Override |
| | | public List<CouponReceiveDetailVO> getCouponReceiveDetailList(MgtCouponReceiveQuery query) { |
| | | MemberDTO memberDTO = getMemberQueryParam(query); |
| | | Set<Long> memberIdSet = getMemberIdSet(memberDTO); |
| | | List<CouponMember> couponMemberList = couponMemberService.lambdaQuery() |
| | | .eq(StringUtils.isNotNull(query.getCouponStatus()), |
| | | CouponMember::getCouponStatus, query.getCouponStatus()) |
| | | .in(StringUtils.isNotEmpty(memberIdSet), CouponMember::getMemberId, memberIdSet) |
| | | .eq(CouponMember::getCouponId, query.getId()) |
| | | .list(); |
| | | if (StringUtils.isEmpty(couponMemberList)) { |
| | | throw new ServiceException("没有符合条件的数据导出"); |
| | | } |
| | | List<CouponReceiveDetailVO> couponReceiveDetailVOList = BeanUtils.copyList(couponMemberList, |
| | | CouponReceiveDetailVO.class); |
| | | handleCouponReceiveDetailVO(couponReceiveDetailVOList); |
| | | return couponReceiveDetailVOList; |
| | | } |
| | | } |