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 | 161 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 131 insertions(+), 30 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 005b2d3..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 @@ -3,22 +3,30 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.dto.PromotionWishListDTO; -import com.ruoyi.promotion.domain.pojo.CouponMember; -import com.ruoyi.promotion.domain.pojo.PromotionBanner; -import com.ruoyi.promotion.domain.pojo.PromotionWishList; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; -import util.HuaWeiOBSUtil; - -import javax.annotation.Resource; -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; /** * <p> @@ -29,17 +37,19 @@ * @since 2024-05-16 */ @Service +@RequiredArgsConstructor public class PromotionWishListServiceImpl extends ServiceImpl<PromotionWishListMapper, PromotionWishList> implements IPromotionWishListService { - @Resource - private IPromotionWishListService iPromotionWishListService; + private final MemberClient memberClient; + @Override public PageDTO<PromotionWishList> getPromotionWishList(PromotionWishListDTO promotionWishListDTO) { Page<PromotionWishList> page = new Page<>(promotionWishListDTO.getPageCurr(), promotionWishListDTO.getPageSize()); LambdaQueryWrapper<PromotionWishList> wrapper= Wrappers.lambdaQuery(); wrapper.eq(PromotionWishList::getMemberId,promotionWishListDTO.getMemberId()); - Page<PromotionWishList> page1 = iPromotionWishListService.page(page, wrapper); + wrapper.orderByDesc(PromotionWishList::getCreateTime); + Page<PromotionWishList> page1 = this.page(page, wrapper); return PageDTO.of(page1); } @@ -49,24 +59,14 @@ promotionWishList.setExpectedPrice(promotionWishListDTO.getExpectedPrice()); promotionWishList.setGoodsName(promotionWishListDTO.getGoodsName()); promotionWishList.setRemark(promotionWishListDTO.getRemark()); - List<String> urlList=new ArrayList<>(); - if (promotionWishListDTO.getGoodsImageUrl().length>0){ - for (MultipartFile file:promotionWishListDTO.getGoodsImageUrl()){ - try { - String url= HuaWeiOBSUtil.obsUpload(file); - urlList.add(url); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - promotionWishList.setGoodsImageUrl(urlList.toString()); - } - iPromotionWishListService.save(promotionWishList); + promotionWishList.setGoodsImageUrl(promotionWishListDTO.getGoodsImageUrl()); + promotionWishList.setMemberId(promotionWishListDTO.getMemberId()); + this.save(promotionWishList); } @Override public void delPromotionWishOne(PromotionWishListDTO promotionWishListDTO) { - iPromotionWishListService.removeById(promotionWishListDTO.getRomotionWishId()); + this.removeById(promotionWishListDTO.getRomotionWishId()); } @Override @@ -74,7 +74,108 @@ LambdaQueryWrapper<PromotionWishList> wrapper= Wrappers.lambdaQuery(); wrapper.eq(PromotionWishList::getId,promotionWishListDTO.getRomotionWishId()); wrapper.eq(PromotionWishList::getDelFlag,0); - return iPromotionWishListService.getOne(wrapper); + 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