package com.ruoyi.auction.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.system.api.domain.dto.AuctionSalesroomDTO;
|
import com.ruoyi.auction.domain.AuctionBidRecord;
|
import com.ruoyi.auction.domain.AuctionSalesroomGoods;
|
import com.ruoyi.auction.mapper.AuctionBidRecordMapper;
|
import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper;
|
import com.ruoyi.auction.service.IAuctionBidRecordService;
|
import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
|
import com.ruoyi.common.core.enums.BidStatusEnum;
|
import java.util.ArrayList;
|
import java.util.List;
|
import javax.annotation.Resource;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* <p>
|
* 出价记录表 服务实现类
|
* </p>
|
*
|
* @author mitao
|
* @since 2024-05-16
|
*/
|
@Service
|
public class AuctionBidRecordServiceImpl extends ServiceImpl<AuctionBidRecordMapper, AuctionBidRecord> implements IAuctionBidRecordService {
|
|
@Resource
|
private AuctionSalesroomGoodsMapper auctionSalesroomGoodsMapper;
|
|
@Override
|
public List<AuctionBidRecord> getAuctionBidRecordList(AuctionSalesroomDTO auctionSalesroomGoodsDTO) {
|
AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(
|
auctionSalesroomGoodsDTO.getGoodsSkuId());
|
List<AuctionBidRecord> auctionBidRecordList=new ArrayList<>();
|
if (auctionSalesroomGoods.getStatus().getCode()==1){
|
LambdaQueryWrapper<AuctionBidRecord> wrapper=Wrappers.lambdaQuery();
|
wrapper.eq(AuctionBidRecord::getTargetId,auctionSalesroomGoodsDTO.getGoodsSkuId());
|
wrapper.eq(AuctionBidRecord::getDelFlag,0);
|
wrapper.orderByDesc(AuctionBidRecord::getLastBidAmount);
|
auctionBidRecordList = this.list(wrapper);
|
//判断
|
if (auctionBidRecordList.size()>=auctionSalesroomGoods.getSalesroomStock()){
|
for (int i=0;i<auctionSalesroomGoods.getSalesroomStock();i++){
|
AuctionBidRecord auctionBidRecord= auctionBidRecordList.get(i);
|
auctionBidRecord.setStatus(BidStatusEnum.LEAD);
|
}
|
}else{
|
if (auctionBidRecordList.size()>0){
|
for (int i=0;i<auctionBidRecordList.size();i++){
|
AuctionBidRecord auctionBidRecord= auctionBidRecordList.get(i);
|
auctionBidRecord.setStatus(BidStatusEnum.LEAD);
|
}
|
}
|
|
}
|
}if (auctionSalesroomGoods.getStatus().getCode()==2){
|
LambdaQueryWrapper<AuctionBidRecord> wrapper=Wrappers.lambdaQuery();
|
wrapper.eq(AuctionBidRecord::getTargetId,auctionSalesroomGoodsDTO.getGoodsSkuId());
|
wrapper.eq(AuctionBidRecord::getStatus,2);
|
wrapper.eq(AuctionBidRecord::getDelFlag,0);
|
wrapper.orderByDesc(AuctionBidRecord::getLastBidAmount);
|
auctionBidRecordList = this.list(wrapper);
|
}
|
return auctionBidRecordList;
|
|
|
}
|
|
@Override
|
public List<AuctionBidRecord> getBidRecordByGoodsId(Long id) {
|
return this.lambdaQuery().eq(AuctionBidRecord::getTargetId, id)
|
.eq(AuctionBidRecord::getAuctionType,
|
AuctionOrderTypeEnum.REGULAR_ITEMS)
|
.orderByDesc(AuctionBidRecord::getLastBidAmount).list();
|
}
|
}
|