From 392b42c4891cf2e6beda57ab32c51598f290f4b7 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 14 三月 2025 20:56:27 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/CouponServiceImpl.java | 117 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 79 insertions(+), 38 deletions(-) diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/CouponServiceImpl.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/CouponServiceImpl.java index a7455d7..0cd5900 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/CouponServiceImpl.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/CouponServiceImpl.java @@ -37,6 +37,7 @@ import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * <p> @@ -76,6 +77,7 @@ query.getCouponType()) .eq(StringUtils.isNotNull(query.getDistributionMethod()), Coupon::getDistributionMethod, query.getDistributionMethod()) + .orderByDesc(Coupon::getCreateTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); if (StringUtils.isEmpty(page.getRecords())) { return PageDTO.empty(page); @@ -150,6 +152,7 @@ * @param dto 管理后台-优惠券数据传输对象 */ @Override + @Transactional(rollbackFor = Exception.class) public void updateCoupon(MgtCouponDTO dto) { Coupon coupon = this.getById(dto.getId()); if (StringUtils.isNull(coupon)) { @@ -158,13 +161,20 @@ coupon.setCouponName(dto.getCouponName()); coupon.setDescription(dto.getDescription()); this.updateById(coupon); + couponMemberService.lambdaUpdate().set(CouponMember::getDescription, dto.getDescription()) + .eq(CouponMember::getCouponId, dto.getId()).update(); } + /** + * 上架/下架 + * + * @param dto 管理后台-优惠券上架下架数据传输对象 + */ @Override public void updStatus(MgtCouponUpdDTO dto) { this.lambdaUpdate() .set(Coupon::getCouponStatus, dto.getCouponStatus()) - .eq(Coupon::getId, dto.getId()); + .eq(Coupon::getId, dto.getId()).update(); } /** @@ -175,18 +185,11 @@ */ @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); + if ((StringUtils.isNotBlank(query.getNickname()) || StringUtils.isNotBlank( + query.getPhone())) && CollUtils.isEmpty(memberIdSet)) { + return PageDTO.empty(0L, 0L); } Page<CouponMember> page = couponMemberService.lambdaQuery() .eq(StringUtils.isNotNull(query.getCouponStatus()), @@ -199,25 +202,18 @@ } 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) + Set<Long> couponIdSet = usedCouponList.stream().map(CouponReceiveDetailVO::getId) .collect(Collectors.toSet()); Map<String, Order> orderMap = null; Map<Long, Member> memberMap = null; @@ -229,7 +225,8 @@ Function.identity())); } - Set<Long> memberSet = couponReceiveDetailVOPageDTO.getList().stream() + // 远程调用会员服务,获取会员信息 + Set<Long> memberSet = couponReceiveDetailVOList.stream() .map(CouponReceiveDetailVO::getMemberId).collect( Collectors.toSet()); if (StringUtils.isNotEmpty(memberSet)) { @@ -239,24 +236,68 @@ 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)) { - Order order = orderMap.get(couponReceiveDetailVO.getCouponId() + "-" + } + if (StringUtils.isNotEmpty(orderMap)) { + Order order = orderMap.get(couponReceiveDetailVO.getId() + "-" + couponReceiveDetailVO.getMemberId()); if (StringUtils.isNotNull(order)) { couponReceiveDetailVO.setOrderNo(order.getOrderNo()); - couponReceiveDetailVO.setCreateTime(order.getCreateTime()); + couponReceiveDetailVO.setUseTime(order.getCreateTime()); } - } else { - 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; } } -- Gitblit v1.7.1