From bcffc7b5e9ece6061192c815af12e3981ff2dbb2 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sat, 28 May 2022 20:09:43 +0800 Subject: [PATCH] add yunfei --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index a21cfb8..f8c4036 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -90,6 +90,7 @@ this.baseMapper.insert(orderInfo); BigDecimal total = BigDecimal.ZERO; + BigDecimal carriage = BigDecimal.ZERO; for (AddOrderItemDto item : addOrderDto.getItems()) { MallOrderItem orderItem = new MallOrderItem(); @@ -127,6 +128,15 @@ } MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); + + // 零撸专区购买 + if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) { + List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId()); + if (CollUtil.isNotEmpty(items)) { + throw new FebsException("无法重复领取同一个商品"); + } + } + if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) { throw new FebsException(mallGoods.getGoodsName() + "已下架"); } @@ -146,6 +156,7 @@ orderItem.setCostPrice(sku.getCostPrice()); total = total.add(amount); + carriage = carriage.add(mallGoods.getCarriage()); sku.setStock(sku.getStock() - item.getCnt()); sku.setSkuVolume(sku.getSkuVolume() + item.getCnt()); @@ -159,6 +170,7 @@ } orderInfo.setAmount(total); + orderInfo.setCarriage(carriage); this.baseMapper.updateById(orderInfo); agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L); @@ -297,7 +309,7 @@ throw new FebsException("支付密码错误"); } - memberWalletService.reduce(orderInfo.getAmount(), mallMember.getId(), field); + memberWalletService.reduce(orderInfo.getAmount().add(orderInfo.getCarriage()), mallMember.getId(), field); return orderInfo.getOrderNo(); } -- Gitblit v1.9.1