From 624cbc9d730f1596c27b505190eb42048d8ba8ff Mon Sep 17 00:00:00 2001
From: zhanglin8526 <852614290@qq.com>
Date: 星期六, 26 八月 2023 17:34:52 +0800
Subject: [PATCH] 分账

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |   39 ++++++++++++++++++++++++---------------
 1 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 499a41c..cd51a6f 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.order.service.impl.order;
 
 
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -21,6 +22,7 @@
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.CodeFactoryUtil;
 import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.order.config.WxPayConfiguration;
 import com.ruoyi.order.domain.dto.*;
 import com.ruoyi.order.domain.pojo.account.OrderPayment;
 import com.ruoyi.order.domain.pojo.account.OrderRefund;
@@ -52,6 +54,7 @@
 import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.system.api.domain.poji.member.MemberGiftRecord;
 import com.ruoyi.system.api.domain.poji.shop.Shop;
+import com.ruoyi.system.api.domain.poji.shop.ShopProportionVo;
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.*;
 import com.ruoyi.system.api.service.*;
@@ -63,6 +66,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -826,11 +830,12 @@
             request.setNotifyUrl(config.getNotifyUrl());
             // 结算信息
             PartnerTransactionsRequest.SettleInfo settleInfo = new PartnerTransactionsRequest.SettleInfo();
-            if(orderFrom==2){
+            // TODO 分账处理
+            //if(orderFrom==2){
                 settleInfo.setProfitSharing(true);
-            }else{
-                settleInfo.setProfitSharing(false);
-            }
+            //}else{
+            //    settleInfo.setProfitSharing(false);
+           // }
             settleInfo.setSubsidyAmount(BigDecimal.ZERO);
             request.setSettleInfo(settleInfo);
 
@@ -1548,10 +1553,11 @@
         merVerifyOrderVo.setUserName(member.getRealName());
         merVerifyOrderVo.setUserMobile(member.getMobile());
         merVerifyOrderVo.setCloseFlag(order.getCloseFlag());
-        //
-        if (order.getOrderFrom() == 2) {
-            // profitsSharingService.applyProfitSharing();
-        }
+        // TODO  活动才分账
+        //if (order.getOrderFrom() == 2) {
+            // 活动才分账
+            submitProfitSharing(orderId, order.getOrderNo(), order.getShopId(), order.getOrderMoney());
+        //}
 
         //创建支付记录
         if(merVerifyOrderDto.getRelPayMoney().compareTo(BigDecimal.ZERO)>0){
@@ -1563,12 +1569,11 @@
             payRecord.setPayType(merVerifyOrderDto.getPayType());
             payRecordService.save(payRecord);
         }
-        //submitProfitSharing(orderId, order.getOrderNo(), order.getShopId(), order.getOrderMoney());
 
         return merVerifyOrderVo;
     }
 
-    /*private void submitProfitSharing(String orderId, String orderNo, Long shopId, BigDecimal orderMoney) {
+    private void submitProfitSharing(String orderId, String orderNo, Long shopId, BigDecimal orderMoney) {
         String sendMessage = "";
         String resultMessage = "";
         try {
@@ -1578,20 +1583,24 @@
 
             // 平台特约商户号,用户平台收取服务费
             String platformTyMacId = WxPayConfiguration.getPlatformTyMacId();
+            if(StringUtils.isEmpty(platformTyMacId)){
+                platformTyMacId = "2000002410402479";
+            }
 
             R<String> resultMch = remoteShopService.getShopSubMchId(shopId);
             String subMchId = resultMch.getData();
             if (!StringUtils.isEmpty(subMchId)) {
-
+                WxPayConfig config = wxService.getConfig();
 
                 R<ShopProportionVo> resultShopProportion = remoteShopService.getShopProportion(shopId);
                 ShopProportionVo shopProportion = resultShopProportion.getData();
                 if (null != shopProportion) {
                     ProfitSharingRequest request = new ProfitSharingRequest();
+                    request.setAppid(config.getAppId());
                     request.setSubMchid(subMchId);
                     request.setTransactionId(transactionId);
-                    request.setOutOrderNo(orderNo);
-                    List<Receiver> receiverList = new ArrayList<>();
+                    request.setOutOrderNo(IdUtils.simpleUUID());
+                    List<ProfitSharingRequest.Receiver> receiverList = new ArrayList<>();
 
                     String description = "订单:" + orderNo + " 平台抽取佣金";
                     BigDecimal proportionPercent = shopProportion.getProportionPercent();
@@ -1608,7 +1617,7 @@
                     log.info("订单分账:{} 分账金额: {}", orderNo, amount);
                     if (amount > 0) {
                         // 分账创建
-                        Receiver receiver = new Receiver();
+                        ProfitSharingRequest.Receiver receiver = new ProfitSharingRequest.Receiver();
                         receiver.setType("MERCHANT_ID");
                         receiver.setReceiverAccount(platformTyMacId);
                         receiver.setAmount(amount);
@@ -1643,7 +1652,7 @@
 
         // 保存分账信息
         paymentMessageService.savePaymentMessage("4", orderId, sendMessage, resultMessage);
-    }*/
+    }
 
     /**
      * @param merVerifyCouponDto

--
Gitblit v1.7.1