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-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 104 insertions(+), 6 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java index 8eea295..bc99801 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java @@ -4,13 +4,27 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.member.domain.MemberPoints; -import com.ruoyi.member.dto.MemberDTO; +import com.ruoyi.member.controller.management.dto.MgtMemberPointsQuery; +import com.ruoyi.member.controller.management.vo.MgtMemberPointsVO; import com.ruoyi.member.mapper.MemberPointsMapper; import com.ruoyi.member.service.IMemberPointsService; -import javax.annotation.Resource; +import com.ruoyi.system.api.domain.Member; +import com.ruoyi.system.api.domain.MemberPoints; +import com.ruoyi.system.api.domain.dto.MemberDTO; +import com.ruoyi.system.api.domain.dto.MemberPointsDTO; +import com.ruoyi.system.api.feignClient.MemberClient; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; /** * <p> @@ -21,16 +35,100 @@ * @since 2024-05-23 */ @Service +@RequiredArgsConstructor public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, MemberPoints> implements IMemberPointsService { - @Resource - private IMemberPointsService iMemberPointsService; + private final MemberClient memberClient; + @Override public PageDTO<MemberPoints> getMemberPoints(MemberDTO memberDTO) { Page<MemberPoints> page = new Page<>(memberDTO.getPageCurr(), memberDTO.getPageSize()); LambdaQueryWrapper<MemberPoints> wrapper= Wrappers.lambdaQuery(); wrapper.eq(MemberPoints::getMemberId,memberDTO.getMemberid()); - Page<MemberPoints> page1 = iMemberPointsService.page(page, wrapper); + wrapper.orderByDesc(MemberPoints::getCreateTime); + Page<MemberPoints> page1 = this.page(page, wrapper); return PageDTO.of(page1); } + + /** + * 获取会员积分列表的分页数据 + * + * @param query 会员积分明细查询对象 + * @return PageDTO<MgtMemberPointsVO> + */ + @Override + public PageDTO<MgtMemberPointsVO> getMemberPointsPage(MgtMemberPointsQuery query) { + Set<Long> memberIdSet = null; + Page<MemberPoints> page = new Page<>(query.getPageCurr(), query.getPageSize()); + MemberDTO memberDTO = getMemberQueryParam(query); + if (StringUtils.isNotNull(memberDTO)) { + memberIdSet = getMemberIdSet(memberDTO); + if (StringUtils.isEmpty(memberIdSet)) { + return PageDTO.empty(page); + } + } + // 分页查询积分 + page = this.lambdaQuery() + .eq(StringUtils.isNotNull(query.getPointsStatus()), MemberPoints::getPointsStatus, + query.getPointsStatus()) + .in(StringUtils.isNotEmpty(memberIdSet), MemberPoints::getMemberId, memberIdSet) + .eq(StringUtils.isNotNull(query.getId()), MemberPoints::getMemberId, query.getId()) + .orderByDesc(MemberPoints::getCreateTime) + .page(page); + if (StringUtils.isEmpty(page.getRecords())) { + return PageDTO.empty(page); + } + // 封装VO + PageDTO<MgtMemberPointsVO> pageVO = PageDTO.of(page, + MgtMemberPointsVO.class); + List<MgtMemberPointsVO> list = pageVO.getList(); + Set<Long> memIdSet = list.stream().map(MgtMemberPointsVO::getMemberId) + .collect(Collectors.toSet()); + List<Member> memberList = memberClient.getMemberListByIds(memIdSet, SecurityConstants.INNER) + .getData(); + Map<Long, Member> memberMap = memberList.stream() + .collect(Collectors.toMap(Member::getId, Function.identity())); + if (StringUtils.isNotEmpty(memberList)) { + for (MgtMemberPointsVO mgtMemberPointsVO : list) { + Member member = memberMap.get(mgtMemberPointsVO.getMemberId()); + if (StringUtils.isNotNull(member)) { + mgtMemberPointsVO.setNickname(member.getNickname()); + mgtMemberPointsVO.setPhone(member.getPhone()); + } + } + } + return pageVO; + } + + 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(MgtMemberPointsQuery 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; + } + + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public void addMemberPoints(MemberPointsDTO memberPointsDTO) { + MemberPoints points = new MemberPoints(); + points.setMemberId(memberPointsDTO.getMemberId()); + points.setPointsType(memberPointsDTO.getPointsType()); + points.setPoints(memberPointsDTO.getPoints()); + points.setPointsStatus(memberPointsDTO.getPointsStatus()); + this.save(points); + } } -- Gitblit v1.7.1