mitao
2024-05-30 e40c0643e26447d89f50c0118da13dba80684089
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -20,6 +20,8 @@
import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO;
import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomInfoVO;
import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomDTO;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomGoodsDTO;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery;
import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO;
import com.ruoyi.auction.domain.AuctionBidRecord;
@@ -37,9 +39,14 @@
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
import com.ruoyi.common.core.enums.AuctionStartStatusEnum;
import com.ruoyi.common.core.enums.BidStatusEnum;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.IDhelper;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.Checker;
import com.ruoyi.common.core.utils.page.CollUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.AuctionGoods;
@@ -337,7 +344,7 @@
        AuctionSalesroom byId = iAuctionSalesroomService.getById(memberAuctionSalesroomDTO.getAuctionSalesroomId());
        MemberAuctionSalesroomInfoVO memberAuctionSalesroomInfoVO=new MemberAuctionSalesroomInfoVO();
        memberAuctionSalesroomInfoVO.setId(byId.getId());
        memberAuctionSalesroomInfoVO.setBound(byId.getBound());
        memberAuctionSalesroomInfoVO.setBound(byId.getBond());
        memberAuctionSalesroomInfoVO.setAuthentication(byId.getAuthentication());
        memberAuctionSalesroomInfoVO.setEndTime(byId.getEndTime());
        memberAuctionSalesroomInfoVO.setSalesroomName(byId.getSalesroomName());
@@ -576,4 +583,60 @@
        String auctionSalesroomNo = auctionSalesroom.getAuctionSalesroomNo();
        return CreateQrCode.createQRCode(auctionSalesroomNo);
    }
    @Override
    public void saveAuctionSalesroom(MgtAuctionSalesroomDTO dto) {
        Long id = dto.getId();
        AuctionSalesroom auctionSalesroom = BeanUtils.copyBean(dto, AuctionSalesroom.class);
        List<MgtAuctionSalesroomGoodsDTO> auctionSalesroomGoodsDTOS = dto.getAuctionSalesroomGoodsDTOS();
        CollUtils.check(auctionSalesroomGoodsDTOS, new Checker<MgtAuctionSalesroomGoodsDTO>() {
            @Override
            public void check(MgtAuctionSalesroomGoodsDTO data) {
                if (StringUtils.isNull(data.getStartingPrice())) {
                    throw new ServiceException("拍卖商品起拍价格不能为空");
                }
                if (StringUtils.isNull(data.getMinimumMarkupAmount())) {
                    throw new ServiceException("拍卖商品最低加价金额不能为空");
                }
                if (StringUtils.isNull(data.getSalesroomStock())) {
                    throw new ServiceException("拍卖商品拍品数量不能为空");
                }
                if (StringUtils.isNull(data.getListingDuration())) {
                    throw new ServiceException("拍卖商品拍卖时间不能为空");
                }
            }
        });
        List<AuctionSalesroomGoods> auctionSalesroomGoods = BeanUtils.copyList(
                auctionSalesroomGoodsDTOS, AuctionSalesroomGoods.class);
        if (StringUtils.isNull(id)) {
            // 生成唯一编号
            Long nextId = IDhelper.getNextId();
            auctionSalesroom.setAuctionSalesroomNo(nextId.toString());
            // 添加
            this.save(auctionSalesroom);
        } else {
            // 编辑
            AuctionSalesroom auctionSalesroomOrg = this.getById(id);
            if (StringUtils.isNull(auctionSalesroomOrg)) {
                throw new ServiceException("该拍卖场不存在");
            }
            if (auctionSalesroomOrg.getStatus().equals(AuctionStartStatusEnum.IN_AUCTION)) {
                throw new ServiceException("该拍卖场正在拍卖中,不能编辑");
            }
            if (auctionSalesroomOrg.getStatus().equals(AuctionStartStatusEnum.ENDED)) {
                throw new ServiceException("该拍卖场已结束,不能编辑");
            }
            auctionSalesroom.setId(auctionSalesroomOrg.getId());
            this.updateById(auctionSalesroom);
            // 移除原来地拍卖商品
            auctionSalesroomGoodsService.remove(Wrappers.<AuctionSalesroomGoods>lambdaQuery()
                    .eq(AuctionSalesroomGoods::getAuctionSalesroomId, id));
        }
        for (AuctionSalesroomGoods auctionSalesroomGood : auctionSalesroomGoods) {
            auctionSalesroomGood.setAuctionSalesroomId(id);
        }
        // 添加拍卖商品
        auctionSalesroomGoodsService.saveBatch(auctionSalesroomGoods);
    }
}