From 62e2f6caa26571b24620685ea9fd227d7311a0b5 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 22 Sep 2021 15:53:13 +0800 Subject: [PATCH] add payOrder --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 47 insertions(+), 0 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 cc89996..e02856a 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 @@ -6,10 +6,14 @@ import cc.mrbird.febs.common.utils.MallUtils; import cc.mrbird.febs.mall.dto.AddOrderDto; import cc.mrbird.febs.mall.dto.AddOrderItemDto; +import cc.mrbird.febs.mall.dto.PayOrderDto; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; +import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.IApiMallOrderInfoService; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -33,6 +37,8 @@ private final MallGoodsSkuMapper mallGoodsSkuMapper; private final MallAddressInfoMapper mallAddressInfoMapper; private final MallOrderItemMapper mallOrderItemMapper; + private final MallMemberMapper memberMapper; + private final IApiMallMemberWalletService memberWalletService; @Override public Long createOrder(AddOrderDto addOrderDto) { @@ -110,4 +116,45 @@ orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF); this.baseMapper.updateById(orderInfo); } + + @Override + public String payOrder(PayOrderDto payOrderDto) { + MallMember member = LoginUserUtil.getLoginUser(); + MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), payOrderDto.getId()); + if (orderInfo == null) { + throw new FebsException("订单不存在"); + } + + if (OrderStatusEnum.WAIT_PAY.getValue() != orderInfo.getStatus()) { + throw new FebsException("订单状态不能支付"); + } + + switch (payOrderDto.getType()) { + case "1": + // TODO 微信支付 + break; + case "2": + // TODO 支付宝支付 + break; + case "3": + return balancePay(orderInfo, payOrderDto.getTradePwd()); + default: + + } + return ""; + } + + private String balancePay(MallOrderInfo orderInfo, String tradePwd) { + if (StrUtil.isBlank(tradePwd)) { + throw new FebsException("支付密码错误"); + } + + MallMember mallMember = memberMapper.selectById(orderInfo.getMemberId()); + if (!mallMember.getTradePassword().equals(SecureUtil.md5(tradePwd))) { + throw new FebsException("支付密码错误"); + } + + memberWalletService.reduceBalance(orderInfo.getAmount(), mallMember.getId()); + return orderInfo.getOrderNo(); + } } -- Gitblit v1.9.1