Sfoglia il codice sorgente

【程序目录】更新商家转账到零钱,修复资金流水退款金额显示

吴昊天 3 anni fa
parent
commit
2821b2833d

+ 2 - 1
crmeb/app/services/order/StoreOrderRefundServices.php

@@ -242,8 +242,9 @@ class StoreOrderRefundServices extends BaseServices
                 'refund_reason_wap_explain' => $orderRefundInfo['refund_explain'],
                 'refund_reason_time' => $orderRefundInfo['refunded_time'],
                 'refund_reason_wap' => $orderRefundInfo['refund_reason'],
-                'refund_price' => $orderRefundInfo['refund_price'],
+                'refund_price' => $refundData['refund_price'],
             ], 'id');
+            $splitOrderInfo = $this->storeOrderServices->get($splitOrderInfo['id']);
             $this->dao->update($id, ['store_order_id' => $splitOrderInfo['id']]);
             if ($otherOrder['id'] != 0 && $orderInfo['id'] != $otherOrder['id']) {//拆分生成新订单了
                 //修改原订单还在申请的退款单

+ 1 - 1
crmeb/app/services/statistic/CapitalFlowServices.php

@@ -45,7 +45,7 @@ class CapitalFlowServices extends BaseServices
             case 'refund':
                 $data['order_id'] = $orderInfo['order_id'];
                 $data['uid'] = $orderInfo['uid'];
-                $data['price'] = bcmul('-1', $orderInfo['refund_price'] ?? $orderInfo['pay_price'], 2);
+                $data['price'] = bcmul('-1', $orderInfo['refund_price'], 2);
                 $data['trading_type'] = 2;
                 $data['pay_type'] = $orderInfo['pay_type'];
                 break;

+ 13 - 2
crmeb/app/services/user/UserExtractServices.php

@@ -22,6 +22,7 @@ use crmeb\exceptions\AdminException;
 use crmeb\exceptions\ApiException;
 use crmeb\services\FormBuilder as Form;
 use crmeb\services\app\WechatService;
+use crmeb\services\pay\Pay;
 use crmeb\services\workerman\ChannelService;
 use think\facade\Route as Url;
 
@@ -191,8 +192,18 @@ class UserExtractServices extends BaseServices
             $services = app()->make(StoreOrderCreateServices::class);
             $insertData['order_id'] = $services->getNewOrderId();
 
-            // 微信提现
-            $res = WechatService::merchantPay($openid, $insertData['order_id'], $userExtract['extract_price'], '提现佣金到零钱');
+            //v3商家转账到零钱
+            if (sys_config('pay_wechat_type')) {
+                $pay = new Pay('v3_wechat_pay');
+                $res = $pay->merchantPay($openid, $insertData['order_id'], $userExtract['extract_price'], [
+                    'batch_name' => '提现佣金到零钱',
+                    'batch_remark' => '您于' . date('Y-m-d H:i:s') . '提现.' . $userExtract['extract_price'] . '元'
+                ]);
+            } else {
+                // 微信提现
+                $res = WechatService::merchantPay($openid, $insertData['order_id'], $userExtract['extract_price'], '提现佣金到零钱');
+            }
+
             if (!$res) {
                 throw new ApiException(400658);
             }

+ 1 - 1
crmeb/crmeb/services/easywechat/v3pay/PayClient.php

@@ -190,7 +190,7 @@ class PayClient extends BaseClient
     public function batches(string $outBatchNo, string $amount, string $batchName, string $remark, array $transferDetailList)
     {
         $totalFee = '0';
-
+        $amount = bcadd($amount, '0', 2);
         foreach ($transferDetailList as &$item) {
             if ($item['transfer_amount'] >= 2000 && !empty($item['user_name'])) {
                 throw new PayException('明细金额大于等于2000时,收款人姓名必须填写');