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 | 126 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 121 insertions(+), 5 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 c79192d..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,17 +4,29 @@ 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.system.api.domain.dto.PromotionWishListDTO; +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.util.HuaWeiOBSUtil; -import java.io.IOException; -import java.util.ArrayList; +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; -import org.springframework.web.multipart.MultipartFile; /** * <p> @@ -25,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) { @@ -34,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); } @@ -62,4 +77,105 @@ return this.getOne(wrapper); } + /** + * 获取心愿求购列表的分页数据 + * + * @param query 心愿求购管理查询对象 + * @return PageDTO<MgtPromotionWishListVO> + */ + @Override + public PageDTO<MgtPromotionWishListVO> getPromotionWishListPage( + MgtPromotionWishListQuery query) { + // 封装会员条件查询对象 + 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