zhanglin8526
2023-08-26 b879982d29cb2dbfe72482b46c8f6f2064d663a2
支付调整
5个文件已修改
70 ■■■■ 已修改文件
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/account/OrderPayment.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/account/OrderPaymentService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/account/OrderPaymentServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/account/OrderPayment.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -59,6 +60,13 @@
     */
    @TableField("order_id")
    private String orderId;
    /**
     * 微信支付交易号
     */
    @TableField("out_trade_no")
    private String outTradeNo;
    /**
     * 支付状态1发起支付2支付成功3支付失败4已关闭
     */
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
@@ -48,6 +48,13 @@
     */
    @TableField("order_no")
    private String orderNo;
    /**
     * 微信支付交易号
     */
    @TableField("out_trade_no")
    private String outTradeNo;
    /**
     * 订单来源1.商城2.秒杀活动3.线下创建
     */
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/account/OrderPaymentService.java
@@ -28,7 +28,7 @@
     * @param goodsNames
     * @param prepayId
     */
    void saveOrderPayment(Long userId, Long shopId, String subMchId, String orderId, BigDecimal payMoney, Date endTime, String profitSharing, String openid, String goodsNames, String prepayId);
    void saveOrderPayment(Long userId, Long shopId, String subMchId, String orderId, String outTradeNo, BigDecimal payMoney, Date endTime, String profitSharing, String openid, String goodsNames, String prepayId);
    /**
     *
@@ -36,4 +36,11 @@
     * @return
     */
    OrderPayment getByOrderId(String orderId);
    /**
     *
     * @param outTradeNo
     * @param transactionId
     */
    void updatePaySuccess(String outTradeNo, String transactionId);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/account/OrderPaymentServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.order.service.impl.account;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.order.domain.pojo.account.OrderPayment;
@@ -24,7 +25,7 @@
public class OrderPaymentServiceImpl extends ServiceImpl<OrderPaymentMapper, OrderPayment> implements OrderPaymentService {
    @Override
    public void saveOrderPayment(Long userId, Long shopId, String subMchId, String orderId, BigDecimal payMoney, Date endTime,
    public void saveOrderPayment(Long userId, Long shopId, String subMchId, String orderId, String outTradeNo, BigDecimal payMoney, Date endTime,
                                 String profitSharing, String openid, String goodsNames, String prepayId) {
        OrderPayment payment = new OrderPayment();
        payment.setPaymentId(IdUtils.simpleUUID());
@@ -34,6 +35,8 @@
        payment.setPayMoney(payMoney);
        payment.setTimeExpire(endTime);
        payment.setSubMchId(subMchId);
        payment.setOutTradeNo(outTradeNo);
        payment.setPayStatus(1);
        // 0 否 1、是
        payment.setProfitSharing("Y".equals(profitSharing) ? 1 : 0);
        payment.setUserOpenId(openid);
@@ -53,4 +56,14 @@
                .last(" limit 1 ");
        return this.getOne(queryWrapper);
    }
    @Override
    public void updatePaySuccess(String outTradeNo, String transactionId) {
        LambdaUpdateWrapper<OrderPayment> updateWrapper = Wrappers.lambdaUpdate();
        updateWrapper.eq(OrderPayment::getOutTradeNo, outTradeNo)
                .set(OrderPayment::getPayStatus, 2)
                .set(OrderPayment::getTransactionId, transactionId)
                .set(OrderPayment::getBackTime, new Date());
        this.update(updateWrapper);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -556,6 +556,7 @@
        BigDecimal orderPayMoney = new BigDecimal("0.00");
        // 创建订单ID和订单号
        String orderId = IdUtils.simpleUUID();
        String orderNo = CodeFactoryUtil.getShopOrderNo();
        OrderGoods orderGoods;
        String orderGoodsId;
@@ -753,8 +754,14 @@
        }
        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){
            String outTradeNo = IdUtils.simpleUUID();
            // 保存订单 交易流水
            order.setOutTradeNo(outTradeNo);
            this.saveOrUpdate(order);
            // 小程序微信下单支付
            createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, orderNo,
            createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, outTradeNo,
                    orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(),
                    appPlaceOrderDto.getSpbillCreateIp(), goodsNameList,1);
        }
@@ -786,7 +793,7 @@
     * @param userId
     * @param shopId
     * @param goodsName
     * @param orderNo
     * @param outTradeNo
     * @param orderId
     * @param payMoney
     * @param openid
@@ -794,7 +801,7 @@
     * @param goodsNameList
     */
    public void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
                                 String goodsName, String orderNo,
                                 String goodsName, String outTradeNo,
                                 String orderId, BigDecimal payMoney,
                                 String openid, String payerClientIp, List<String> goodsNameList,Integer orderFrom){
        try {
@@ -815,7 +822,7 @@
            String description = goodsName + "-商品购买";
            request.setDescription(description);
            request.setOutTradeNo(orderNo);
            request.setOutTradeNo(outTradeNo);
            request.setNotifyUrl(config.getNotifyUrl());
            // 结算信息
            PartnerTransactionsRequest.SettleInfo settleInfo = new PartnerTransactionsRequest.SettleInfo();
@@ -866,9 +873,10 @@
            paymentMessageService.savePaymentMessage("1", orderId, payRequestJson, payResponseJson);
            // 保存支付订单统一下单支付记录
            orderPaymentService.saveOrderPayment(userId, shopId, subMchId, orderId, payMoney,
            orderPaymentService.saveOrderPayment(userId, shopId, subMchId, orderId, outTradeNo, payMoney,
                    appPlaceOrderVo.getEndTime(), "Y", openid,
                    Joiner.on(";").join(goodsNameList), result.getPackageValue());
        } catch (WxPayException e) {
            throw new ServiceException(e.getMessage());
        }
@@ -1144,6 +1152,13 @@
        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){
            String outTradeNo = IdUtils.simpleUUID();
            // 保存订单 交易流水
            order.setOutTradeNo(outTradeNo);
            this.saveOrUpdate(order);
            // 小程序微信下单支付
            createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), orderNo,
                    orderId, order.getPayMoney(), appPlaceActivityDto.getOpenid(),
@@ -3852,6 +3867,7 @@
    @Override
    @Transactional
    public void payBack(PartnerTransactionsResult transaction) {
        // Order order = this.getById(orderId);
        // 更新订单状态 订单编号,就是 微信outTradeNo
        String orderNo = transaction.getOutTradeNo();
@@ -3977,8 +3993,9 @@
            request.setTransactionId(transaction.getTransactionId());
            profitsSharingService.applyProfitSharing(request);*/
        }
        //生成支付记录
        OrderPayment orderPayment = new OrderPayment();
        //修改支付记录生成支付记录
        orderPaymentService.updatePaySuccess(transaction.getOutTradeNo(), transaction.getTransactionId());
        PayRecord payRecord = new PayRecord();
        payRecord.setDelFlag(0);
        payRecord.setOrderId(orderId);