| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO; |
| | | import com.google.common.collect.Lists; |
| | | import com.ruoyi.auction.controller.management.dto.AuctionGoodsDTO; |
| | | import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery; |
| | | import com.ruoyi.auction.controller.management.vo.AuctionBidRecordVO; |
| | |
| | | import com.ruoyi.common.core.utils.page.PageDTO; |
| | | import com.ruoyi.system.api.domain.AuctionGoods; |
| | | import com.ruoyi.system.api.domain.dto.*; |
| | | import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO; |
| | | import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO; |
| | | import com.ruoyi.system.api.domain.GoodsSku; |
| | | import com.ruoyi.system.api.domain.Member; |
| | | import com.ruoyi.system.api.domain.MemberAddress; |
| | | import com.ruoyi.system.api.domain.OrderAuctionBond; |
| | | import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; |
| | | import com.ruoyi.system.api.domain.dto.OrderDTO; |
| | | import com.ruoyi.system.api.domain.dto.RefundDTO; |
| | | import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; |
| | | import com.ruoyi.system.api.domain.vo.AuctionGoodsinfoVO; |
| | | import com.ruoyi.system.api.feignClient.GoodsSkuClient; |
| | |
| | | } |
| | | |
| | | @Override |
| | | @GlobalTransactional(rollbackFor = Exception.class) |
| | | @Transactional |
| | | @GlobalTransactional(rollbackFor = Exception.class) |
| | | public void saveAuctionGoods(AuctionGoodsDTO dto) { |
| | | Long id = dto.getId(); |
| | | Long goodsSkuId = dto.getGoodsSkuId(); |
| | |
| | | } |
| | | this.save(auctionGoods); |
| | | // 扣减商品库存 |
| | | goodsSkuClient.deductStock(goodsSkuId, dto.getAuctionStock(), SecurityConstants.INNER); |
| | | GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); |
| | | goodsStockUpdDTO.setGoodsSkuId(goodsSkuId); |
| | | goodsStockUpdDTO.setAuctionStock(dto.getAuctionStock() * -1); |
| | | goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), |
| | | SecurityConstants.INNER); |
| | | } else { |
| | | // 编辑 |
| | | AuctionGoods auctionGoodsOrg = this.getById(id); |
| | |
| | | if (goodsSku.getStock() + auctionGoodsOrg.getAuctionStock() < dto.getAuctionStock()) { |
| | | throw new ServiceException("商品库存不足"); |
| | | } |
| | | // 编辑商品时需要先回退商品库存,再扣减最新的商品库存 |
| | | goodsSkuClient.returningStock(auctionGoodsOrg.getGoodsSkuId(), |
| | | auctionGoodsOrg.getAuctionStock(), SecurityConstants.INNER); |
| | | auctionGoodsOrg.setStartingPrice(dto.getStartingPrice()); |
| | | auctionGoodsOrg.setMinimumMarkupAmount(dto.getMinimumMarkupAmount()); |
| | | auctionGoodsOrg.setStartTime(dto.getStartTime()); |
| | |
| | | auctionGoodsOrg.setShareTitle(dto.getShareTitle()); |
| | | auctionGoodsOrg.setSharePic(dto.getSharePic()); |
| | | this.updateById(auctionGoodsOrg); |
| | | // 扣减库存 |
| | | goodsSkuClient.deductStock(auctionGoodsOrg.getGoodsSkuId(), |
| | | auctionGoodsOrg.getAuctionStock(), SecurityConstants.INNER); |
| | | // 更新商品库存 |
| | | GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); |
| | | goodsStockUpdDTO.setGoodsSkuId(goodsSkuId); |
| | | goodsStockUpdDTO.setAuctionStock( |
| | | auctionGoodsOrg.getAuctionStock() - dto.getAuctionStock()); |
| | | goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), |
| | | SecurityConstants.INNER); |
| | | } |
| | | } |
| | | |
| | |
| | | orderClient.saveOrderOne(orderDTO, SecurityConstants.INNER); |
| | | } else { |
| | | // 没有人出价,退回拍卖商品库存 |
| | | goodsSkuClient.returningStock(auctionGoods.getGoodsSkuId(), |
| | | auctionGoods.getAuctionStock(), SecurityConstants.INNER); |
| | | GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); |
| | | goodsStockUpdDTO.setGoodsSkuId(auctionGoods.getGoodsSkuId()); |
| | | goodsStockUpdDTO.setAuctionStock(auctionGoods.getAuctionStock()); |
| | | goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), |
| | | SecurityConstants.INNER); |
| | | } |
| | | // 结束拍卖 |
| | | this.lambdaUpdate().set(AuctionGoods::getStartStatus, AuctionStartStatusEnum.ENDED) |