| | |
| | | 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.system.api.domain.MemberPoints; |
| | | import com.ruoyi.system.api.domain.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 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.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; |
| | | |
| | | /** |
| | |
| | | * @since 2024-05-23 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, MemberPoints> implements IMemberPointsService { |
| | | |
| | | private final MemberClient memberClient; |
| | | |
| | | @Override |
| | | public PageDTO<MemberPoints> getMemberPoints(MemberDTO memberDTO) { |
| | |
| | | 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; |
| | | MemberDTO memberDTO = getMemberQueryParam(query); |
| | | if (StringUtils.isNotNull(memberDTO)) { |
| | | memberIdSet = getMemberIdSet(memberDTO); |
| | | } |
| | | // 分页查询积分 |
| | | Page<MemberPoints> page = this.lambdaQuery() |
| | | .eq(StringUtils.isNotNull(query.getPointsStatus()), MemberPoints::getPointsStatus, |
| | | query.getPointsStatus()) |
| | | .in(StringUtils.isNotEmpty(memberIdSet), MemberPoints::getMemberId, memberIdSet) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | 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; |
| | | } |
| | | } |