From f8a902206411f91369a1613bddab806ee6299aa7 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 11:06:26 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E6=94=AF=E4=BB=98=EF=BC=8C=E5=8F=B0=E6=A1=8C?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ysk/cashier/pojo/order/TbCashierCart.java | 2 + .../cn/ysk/cashier/service/TbPayService.java | 6 +- .../service/impl/TbPayServiceImpl.java | 63 ++++++++++++++----- .../impl/shopimpl/TbShopTableServiceImpl.java | 55 ++++------------ 4 files changed, 67 insertions(+), 59 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java index 9dac0ef8..0496bf4d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java @@ -153,6 +153,8 @@ public class TbCashierCart implements Serializable { @Column(name = "`uuid`") @ApiModelProperty(value = "uuid") private String uuid; + @Column(name = "`sku_name`") + private String skuName; public void copy(TbCashierCart source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java index 275dab9e..44bdd047 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java @@ -1,11 +1,15 @@ package cn.ysk.cashier.service; import cn.ysk.cashier.dto.ScanPayDTO; +import cn.ysk.cashier.dto.shoptable.PayDTO; +import cn.ysk.cashier.pojo.order.TbOrderInfo; import javax.validation.constraints.NotNull; public interface TbPayService { void scanPay(ScanPayDTO scanPayDTO); - void vipPay(@NotNull Integer shopId, @NotNull Integer orderId); + TbOrderInfo vipPay(@NotNull Integer shopId, @NotNull Integer orderId); + + TbOrderInfo cashPay(PayDTO payDTO); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java index 0c6ab6f8..b97b624f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java @@ -3,6 +3,8 @@ package cn.ysk.cashier.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.ysk.cashier.dto.ScanPayDTO; +import cn.ysk.cashier.dto.shoptable.PayDTO; +import cn.ysk.cashier.enums.TableStateEnum; import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.entity.TbShopUser; import cn.ysk.cashier.mybatis.entity.TbOrderPayment; @@ -14,6 +16,7 @@ import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.pojo.order.TbOrderDetail; import cn.ysk.cashier.pojo.order.TbOrderInfo; import cn.ysk.cashier.pojo.shop.TbMerchantThirdApply; +import cn.ysk.cashier.pojo.shop.TbShopTable; import cn.ysk.cashier.repository.shop.TbMerchantThirdApplyRepository; import cn.ysk.cashier.service.TbPayService; import cn.ysk.cashier.utils.RabbitMsgUtils; @@ -50,9 +53,11 @@ public class TbPayServiceImpl implements TbPayService { private final TbOrderDetailMapper orderDetailMapper; private final RabbitTemplate rabbitTemplate; private final RabbitMsgUtils rabbitMsgUtils; + private final MpShopTableMapper mpShopTableMapper; - public TbPayServiceImpl(TbOrderInfoMapper orderInfoMapper, TbCashierCartMapper cashierCartMapper, TbMerchantThirdApplyRepository merchantThirdApplyRepository, TbOrderPaymentService orderPaymentService, TbShopPayTypeMapper shopPayTypeMapper, TbOrderDetailMapper orderDetailMapper, RabbitTemplate rabbitTemplate, RabbitMsgUtils rabbitMsgUtils, TbMShopUserMapper shopUserMapper, TbShopUserFlowMapper shopUserFlowMapper) { + + public TbPayServiceImpl(TbOrderInfoMapper orderInfoMapper, TbCashierCartMapper cashierCartMapper, TbMerchantThirdApplyRepository merchantThirdApplyRepository, TbOrderPaymentService orderPaymentService, TbShopPayTypeMapper shopPayTypeMapper, TbOrderDetailMapper orderDetailMapper, RabbitTemplate rabbitTemplate, RabbitMsgUtils rabbitMsgUtils, MpShopTableMapper mpShopTableMapper, TbMShopUserMapper shopUserMapper, TbShopUserFlowMapper shopUserFlowMapper) { this.orderInfoMapper = orderInfoMapper; this.cashierCartMapper = cashierCartMapper; this.merchantThirdApplyRepository = merchantThirdApplyRepository; @@ -61,6 +66,7 @@ public class TbPayServiceImpl implements TbPayService { this.orderDetailMapper = orderDetailMapper; this.rabbitTemplate = rabbitTemplate; this.rabbitMsgUtils = rabbitMsgUtils; + this.mpShopTableMapper = mpShopTableMapper; this.shopUserMapper = shopUserMapper; this.shopUserFlowMapper = shopUserFlowMapper; } @@ -291,7 +297,7 @@ public class TbPayServiceImpl implements TbPayService { private final TbShopUserFlowMapper shopUserFlowMapper; @Override - public void vipPay(@NotNull Integer shopId, @NotNull Integer orderId) { + public TbOrderInfo vipPay(@NotNull Integer shopId, @NotNull Integer orderId) { TbOrderInfo orderInfo = orderInfoMapper.selectById(orderId); @@ -341,20 +347,49 @@ public class TbPayServiceImpl implements TbPayService { orderDetailMapper.update(null, new LambdaUpdateWrapper() .eq(TbOrderDetail::getOrderId, orderId) .set(TbOrderDetail::getStatus, "closed")); - log.info("更新购物车:{}", cartCount); + return orderInfo; + } - JSONObject jsonObject = new JSONObject(); - jsonObject.put("token", null); - jsonObject.put("type", "create"); - jsonObject.put("orderId", orderId); + @Override + public TbOrderInfo cashPay(PayDTO payDTO) { + TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper() + .eq(TbOrderInfo::getId, payDTO.getOrderId()) + .eq(TbOrderInfo::getShopId, payDTO.getShopId())); - rabbitMsgUtils.sendOrderCollectMsg(jsonObject); - rabbitMsgUtils.printTicket(String.valueOf(orderId)); + if (orderInfo == null) { + throw new BadRequestException("订单信息不存在"); + } - // 发送库存记录mq消息 - JSONObject mqData = new JSONObject(); - mqData.put("orderId", orderId); - mqData.put("type", "pc"); - rabbitMsgUtils.sendStockMsg(mqData); + if (!"unpaid".equals(orderInfo.getStatus())) { + throw new BadRequestException("此订单不处于未支付状态"); + } + + + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, orderInfo.getTableId()) + .set(TbShopTable::getStatus, TableStateEnum.PAYING.getState())); +// int count = shopInfoRepository.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash"); +// if (count < 1) { +// return Result.fail(CodeEnum.PAYTYPENOEXIST); +// } + + orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayType("cash"); + orderInfo.setStatus("closed"); + orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); + orderInfoMapper.updateById(orderInfo); + + //更新购物车状态 + TbCashierCart cashierCart = new TbCashierCart(); + cashierCart.setStatus("final"); + int cartCount = cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper() + .eq(TbCashierCart::getOrderId, payDTO.getOrderId())); + + TbOrderDetail orderDetail = new TbOrderDetail(); + orderDetail.setStatus("closed"); + orderDetailMapper.update(orderDetail, new LambdaUpdateWrapper() + .eq(TbOrderDetail::getOrderId, payDTO.getOrderId())); + + return orderInfo; } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 8ebd661c..44baa54a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -349,6 +349,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { tbCashierCart.setIsGift(String.valueOf(addCartDTO.isGift())); tbCashierCart.setSalePrice(productSku.getSalePrice()); tbCashierCart.setTotalAmount(new BigDecimal(addCartDTO.getNum()).multiply(productSku.getSalePrice())); + tbCashierCart.setSkuName(productSku.getSpecSnap()); if (!addCartDTO.isPack()) { tbCashierCart.setPackFee(BigDecimal.ZERO); } else { @@ -1022,60 +1023,26 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Object pay(PayDTO payDTO) { + TbOrderInfo orderInfo = null; switch (payDTO.getPayType()) { case "vipPay": - tbPayServiceImpl.vipPay(payDTO.getShopId(), payDTO.getOrderId()); - return null; + orderInfo = tbPayServiceImpl.vipPay(payDTO.getShopId(), payDTO.getOrderId()); + break; + case "cashPay": + orderInfo = tbPayServiceImpl.cashPay(payDTO); } - TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper() - .eq(TbOrderInfo::getId, payDTO.getOrderId()) - .eq(TbOrderInfo::getShopId, payDTO.getShopId())); - - if (orderInfo == null) { - throw new BadRequestException("订单信息不存在"); - } - - if (!"unpaid".equals(orderInfo.getStatus())) { - return new BadRequestException("此订单不处于未支付状态"); - } - - - mpShopTableMapper.update(null, new LambdaUpdateWrapper() - .eq(TbShopTable::getQrcode, orderInfo.getTableId()) - .set(TbShopTable::getStatus, TableStateEnum.PAYING.getState())); -// int count = shopInfoRepository.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash"); -// if (count < 1) { -// return Result.fail(CodeEnum.PAYTYPENOEXIST); -// } - - orderInfo.setPayAmount(orderInfo.getOrderAmount()); - orderInfo.setPayType("cash"); - orderInfo.setStatus("closed"); - orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); - orderInfoMapper.updateById(orderInfo); - - //更新购物车状态 - TbCashierCart cashierCart = new TbCashierCart(); - cashierCart.setStatus("final"); - int cartCount = cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper() - .eq(TbCashierCart::getOrderId, payDTO.getOrderId())); - - TbOrderDetail orderDetail = new TbOrderDetail(); - orderDetail.setStatus("closed"); - orderDetailMapper.update(orderDetail, new LambdaUpdateWrapper() - .eq(TbOrderDetail::getOrderId, payDTO.getOrderId())); - - log.info("更新购物车:{}", cartCount); + log.info("更新购物车"); JSONObject jsonObject = new JSONObject(); + jsonObject.put("token", null); jsonObject.put("type", "create"); - jsonObject.put("orderId", payDTO.getOrderId()); - rabbitTemplate.convertAndSend(RabbitConstants.CART_ORDER_COLLECT_PUT, RabbitConstants.CART_ORDER_COLLECT_ROUTINGKEY_PUT, jsonObject.toJSONString(), new CorrelationData(UUID.randomUUID().toString())); + jsonObject.put("orderId", orderInfo.getId()); // 打印消息 + rabbitMsgUtils.sendOrderCollectMsg(jsonObject); if (StrUtil.isBlank(orderInfo.getUseType()) || orderInfo.getUseType().equals("afterPay")) { - rabbitTemplate.convertAndSend(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, payDTO.getOrderId().toString(), new CorrelationData(UUID.randomUUID().toString())); + rabbitMsgUtils.printTicket(String.valueOf(orderInfo.getId())); } // 发送库存记录mq消息