mitao
2024-08-06 356b6e4b0a11a6e44717dc9b92beaacc9c0c4b7a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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.auction.domain.AuctionBidRecord;
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 com.ruoyi.system.api.domain.AuctionSalesroomGoods;
import com.ruoyi.system.api.domain.dto.AuctionSalesroomDTO;
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);
                wrapper.orderByAsc(AuctionBidRecord::getLastBidTime);
                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);
            wrapper.orderByAsc(AuctionBidRecord::getLastBidTime);
                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();
    }
}