From 1f3e9dc85399290910cde7149806323305544e0d Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期六, 20 七月 2024 19:17:23 +0800
Subject: [PATCH] 修改bug
---
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/CouponServiceImpl.java | 106 +++++++++++++++++++++++++++++++++++++----------------
1 files changed, 74 insertions(+), 32 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..4e80ed1 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,22 +202,15 @@
}
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)
@@ -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,11 +236,11 @@
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)) {
@@ -257,6 +254,51 @@
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