From fc8b51f40e71aa09bb49f407c1e9f68ac94ceb58 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 29 七月 2024 18:51:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 109 insertions(+), 1 deletions(-) diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java index 596e0ca..f5afd23 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java @@ -4,13 +4,28 @@ 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.google.common.collect.Lists; +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.enums.ReplyStatusEnum; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO; import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery; import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO; import com.ruoyi.promotion.domain.PromotionWishList; import com.ruoyi.promotion.mapper.PromotionWishListMapper; import com.ruoyi.promotion.service.IPromotionWishListService; +import com.ruoyi.system.api.domain.Member; +import com.ruoyi.system.api.domain.dto.MemberDTO; import com.ruoyi.system.api.domain.dto.PromotionWishListDTO; +import com.ruoyi.system.api.feignClient.MemberClient; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; /** @@ -22,8 +37,10 @@ * @since 2024-05-16 */ @Service +@RequiredArgsConstructor public class PromotionWishListServiceImpl extends ServiceImpl<PromotionWishListMapper, PromotionWishList> implements IPromotionWishListService { + private final MemberClient memberClient; @Override public PageDTO<PromotionWishList> getPromotionWishList(PromotionWishListDTO promotionWishListDTO) { @@ -31,6 +48,7 @@ Page<PromotionWishList> page = new Page<>(promotionWishListDTO.getPageCurr(), promotionWishListDTO.getPageSize()); LambdaQueryWrapper<PromotionWishList> wrapper= Wrappers.lambdaQuery(); wrapper.eq(PromotionWishList::getMemberId,promotionWishListDTO.getMemberId()); + wrapper.orderByDesc(PromotionWishList::getCreateTime); Page<PromotionWishList> page1 = this.page(page, wrapper); return PageDTO.of(page1); } @@ -68,6 +86,96 @@ @Override public PageDTO<MgtPromotionWishListVO> getPromotionWishListPage( MgtPromotionWishListQuery query) { - return null; + // 封装会员条件查询对象 + MemberDTO memberDTO = null; + Set<Long> memberIdSet = null; + Page<PromotionWishList> page = new Page<>(query.getPageCurr(), query + .getPageSize()); + if (StringUtils.isNotBlank(query.getNickname()) || StringUtils.isNotBlank( + query.getPhone())) { + memberDTO = new MemberDTO(); + memberDTO.setNickname(query.getNickname()); + memberDTO.setPhone(query.getPhone()); + } + if (StringUtils.isNotNull(memberDTO)) { + // 远程调用会员服务进行条件查询 + List<Member> memberList = memberClient.getMemberListByCondition(memberDTO, + SecurityConstants.INNER).getData(); + if (StringUtils.isEmpty(memberList)) { + return PageDTO.empty(page); + } + memberIdSet = memberList.stream().map(Member::getId) + .collect(Collectors.toSet()); + } + + // 分页查询心愿求购列表 + page = this.lambdaQuery() + .eq(StringUtils.isNotNull(query.getReplyStatus()), + PromotionWishList::getReplyStatus, query.getReplyStatus()) + .in(StringUtils.isNotEmpty(memberIdSet), PromotionWishList::getMemberId, + memberIdSet).orderByDesc(PromotionWishList::getCreateTime).page(page); + if (StringUtils.isEmpty(page.getRecords())) { + return PageDTO.empty(page); + } + // 封装VO + PageDTO<MgtPromotionWishListVO> pageVO = PageDTO.of(page, + MgtPromotionWishListVO.class); + List<MgtPromotionWishListVO> MgtPromotionWishListVOList = pageVO.getList(); + Set<Long> memberIdSets = MgtPromotionWishListVOList.stream() + .map(MgtPromotionWishListVO::getMemberId) + .collect(Collectors.toSet()); + if (StringUtils.isNotEmpty(memberIdSets)) { + List<Member> data = memberClient.getMemberListByIds(memberIdSets, + SecurityConstants.INNER).getData(); + if (StringUtils.isNotEmpty(data)) { + Map<Long, Member> memberMap = data.stream() + .collect(Collectors.toMap(Member::getId, member -> member)); + for (MgtPromotionWishListVO mgtPromotionWishListVO : MgtPromotionWishListVOList) { + Member member = memberMap.get(mgtPromotionWishListVO.getMemberId()); + if (StringUtils.isNotNull(member)) { + mgtPromotionWishListVO.setNickname(member.getNickname()); + mgtPromotionWishListVO.setPhone(member.getPhone()); + } + } + } + } + return pageVO; + } + + /** + * 查看详情 + * + * @param id 心愿求购id + * @return MgtPromotionWishListVO + */ + @Override + public MgtPromotionWishListVO getPromotionWishDetail(Long id) { + PromotionWishList promotionWishList = this.getById(id); + if (StringUtils.isNull(promotionWishList)) { + throw new ServiceException("该心愿求购不存在"); + } + MgtPromotionWishListVO mgtPromotionWishListVO = BeanUtils.copyBean(promotionWishList, + MgtPromotionWishListVO.class); + List<Member> data = memberClient.getMemberListByIds( + Lists.newArrayList(promotionWishList.getMemberId()), + SecurityConstants.INNER).getData(); + if (StringUtils.isNotEmpty(data)) { + mgtPromotionWishListVO.setPhone(data.get(0).getPhone()); + mgtPromotionWishListVO.setNickname(data.get(0).getNickname()); + } + return mgtPromotionWishListVO; + } + + /** + * 回复 + * + * @param dto 心愿求购数据传输对象 + */ + @Override + public void reply(MgtPromotionWishListDTO dto) { + PromotionWishList promotionWishList = this.getById(dto.getId()); + promotionWishList.setReplies(dto.getReplies()); + promotionWishList.setReplyStatus(ReplyStatusEnum.REPLIED); + this.updateById(promotionWishList); } } -- Gitblit v1.7.1