package com.ruoyi.auction.service.impl;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.auction.controller.management.dto.AuctionGoodsDTO;
|
import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery;
|
import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO;
|
import com.ruoyi.auction.domain.AuctionGoods;
|
import com.ruoyi.auction.mapper.AuctionGoodsMapper;
|
import com.ruoyi.auction.service.IAuctionGoodsService;
|
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.GoodsSku;
|
import com.ruoyi.system.api.feignClient.GoodsSkuClient;
|
import java.util.List;
|
import java.util.Set;
|
import java.util.stream.Collectors;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* <p>
|
* 拍卖商品表 服务实现类
|
* </p>
|
*
|
* @author mitao
|
* @since 2024-05-16
|
*/
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class AuctionGoodsServiceImpl extends ServiceImpl<AuctionGoodsMapper, AuctionGoods> implements IAuctionGoodsService {
|
|
private final GoodsSkuClient goodsSkuClient;
|
|
/**
|
* 获取拍卖商品列表的分页数据
|
*
|
* @param query 拍卖商品查询对象
|
* @return PageDTO<AuctionGoodsVO>
|
*/
|
@Override
|
public PageDTO<AuctionGoodsVO> getAuctionGoodsPage(AuctionGoodsQuery query) {
|
Set<Long> goodsSkuIdList = null;
|
if (StringUtils.isNotEmpty(query.getGoodsSkuName())) {
|
List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(query.getGoodsSkuName())
|
.getData();
|
goodsSkuIdList = goodsSku.stream().map(GoodsSku::getId)
|
.collect(Collectors.toSet());
|
}
|
Page<AuctionGoods> page = this.lambdaQuery()
|
.select(AuctionGoods::getId, AuctionGoods::getGoodsSkuId,
|
AuctionGoods::getListingStatus, AuctionGoods::getStartStatus,
|
AuctionGoods::getStartTime, AuctionGoods::getEndTime,
|
AuctionGoods::getAuctionStock, AuctionGoods::getMinimumMarkupAmount).in(
|
StringUtils.isNotEmpty(goodsSkuIdList), AuctionGoods::getGoodsSkuId,
|
goodsSkuIdList).eq(StringUtils.isNotNull(query.getAuthentication()),
|
AuctionGoods::getAuthentication, query.getAuthentication())
|
.eq(StringUtils.isNotNull(query.getListingStatus()), AuctionGoods::getListingStatus,
|
query.getListingStatus())
|
.eq(StringUtils.isNotNull(query.getStartStatus()), AuctionGoods::getStartStatus,
|
query.getStartStatus())
|
.page(new Page<>(query.getPageCurr(), query.getPageSize()));
|
return PageDTO.of(page, AuctionGoodsVO.class);
|
}
|
|
@Override
|
public void saveAuctionGoods(AuctionGoodsDTO dto) {
|
Long id = dto.getId();
|
Long goodsSkuId = dto.getGoodsSkuId();
|
// 添加
|
if (StringUtils.isNull(id)) {
|
if (StringUtils.isNull(goodsSkuId)) {
|
throw new ServiceException("商品id不能为空");
|
}
|
GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(goodsSkuId).getData();
|
if (StringUtils.isNull(goodsSku)) {
|
throw new ServiceException("商品不存在");
|
}
|
AuctionGoods auctionGoods = BeanUtils.copyBean(dto, AuctionGoods.class);
|
this.save(auctionGoods);
|
|
} else {
|
// 编辑
|
|
}
|
}
|
}
|