package com.ruoyi.promotion.service.impl;
|
|
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.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;
|
|
/**
|
* <p>
|
* 心愿求购表 服务实现类
|
* </p>
|
*
|
* @author mitao
|
* @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) {
|
|
Page<PromotionWishList> page = new Page<>(promotionWishListDTO.getPageCurr(), promotionWishListDTO.getPageSize());
|
LambdaQueryWrapper<PromotionWishList> wrapper= Wrappers.lambdaQuery();
|
wrapper.eq(PromotionWishList::getMemberId,promotionWishListDTO.getMemberId());
|
Page<PromotionWishList> page1 = this.page(page, wrapper);
|
return PageDTO.of(page1);
|
}
|
|
@Override
|
public void savePromotionWishList(PromotionWishListDTO promotionWishListDTO) {
|
PromotionWishList promotionWishList=new PromotionWishList();
|
promotionWishList.setExpectedPrice(promotionWishListDTO.getExpectedPrice());
|
promotionWishList.setGoodsName(promotionWishListDTO.getGoodsName());
|
promotionWishList.setRemark(promotionWishListDTO.getRemark());
|
promotionWishList.setGoodsImageUrl(promotionWishListDTO.getGoodsImageUrl());
|
promotionWishList.setMemberId(promotionWishListDTO.getMemberId());
|
this.save(promotionWishList);
|
}
|
|
@Override
|
public void delPromotionWishOne(PromotionWishListDTO promotionWishListDTO) {
|
this.removeById(promotionWishListDTO.getRomotionWishId());
|
}
|
|
@Override
|
public PromotionWishList getPromotionWishOne(PromotionWishListDTO promotionWishListDTO) {
|
LambdaQueryWrapper<PromotionWishList> wrapper= Wrappers.lambdaQuery();
|
wrapper.eq(PromotionWishList::getId,promotionWishListDTO.getRomotionWishId());
|
wrapper.eq(PromotionWishList::getDelFlag,0);
|
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);
|
}
|
}
|