shish 1 год назад
Родитель
Сommit
6744144751

+ 21 - 0
app-hd/controllers/RechargeController.php

@@ -9,6 +9,7 @@ use biz\shop\classes\ShopClass;
 use biz\sj\classes\SjClass;
 use bizGhs\custom\classes\CustomClass;
 use bizHd\custom\classes\HdClass;
+use bizHd\order\classes\OrderClass;
 use bizHd\order\classes\SettleClass;
 use bizHd\wx\classes\WxOpenClass;
 use bizMall\wx\classes\WxMiniClass;
@@ -75,6 +76,7 @@ class RechargeController extends BaseController
             $amount = $post['amount'] ?? 0;
             $remark = $post['remark'] ?? '';
             $customId = $post['customId'] ?? 0;
+            $shOrderId = $post['shOrderId'] ?? 0;
             $custom = \bizHd\custom\classes\CustomClass::getById($customId, true);
             if (empty($custom)) {
                 util::fail('没有找到客户');
@@ -83,6 +85,18 @@ class RechargeController extends BaseController
             //避免重复提交
             util::checkRepeatCommit($customId, 4);
 
+            $shOrderSn = '';
+            if (!empty($shOrderId)) {
+                $shOrder = OrderClass::getById($shOrderId, true);
+                if ($shOrder->forward != 1) {
+                    util::fail('不是售后付款单');
+                }
+                //判断是否充值过了
+                OrderClass::shOrderRecharge($shOrder);
+                $shOrderSn = $shOrder->orderSn ?? '';
+                $remark = '售后付款单' . $shOrderSn;
+            }
+
             $customName = $custom->name;
             $userId = $custom->userId ?? 0;
             $hdId = $custom->hdId;
@@ -113,6 +127,8 @@ class RechargeController extends BaseController
                 'customId' => $customId,
                 'customName' => $customName,
                 'userId' => $userId,
+                'shOrderId' => $shOrderId,
+                'shOrderSn' => $shOrderSn,
             ];
             $respond = \bizHd\recharge\classes\RechargeClass::addRecharge($rechargeData);
 
@@ -122,6 +138,11 @@ class RechargeController extends BaseController
             //充值成功并且销账
             \bizHd\recharge\classes\RechargeClass::complete($recharge, $payWay, $params);
 
+            if (!empty($shOrderId)) {
+                //售后付款标记为充值了
+                OrderClass::shOrderRecharge($shOrder, true);
+            }
+
             $transaction->commit();
             util::success($post);
         } catch (\Exception $e) {

+ 19 - 0
biz-hd/order/classes/OrderClass.php

@@ -87,6 +87,25 @@ class OrderClass extends BaseClass
         20000 => [90, 100],
     ];
 
+    /**
+     * 售后付款单是否已经充值过了 ssh 20250801
+     * @param $order
+     * @param $set false 判断是否充值 true 标记为充值
+     */
+    public static function shOrderRecharge($order, $set = false)
+    {
+        $orderId = $order->id;
+        $cacheKey = "sh_order_recharge_" . $orderId;
+        if ($set) {
+            Yii::$app->redis->executeCommand('SETEX', [$cacheKey, 864000, 'has']);
+        } else {
+            $has = Yii::$app->redis->executeCommand('GET', [$cacheKey]);
+            if (!empty($has)) {
+                util::fail('已经充值过了,请勿重复操作');
+            }
+        }
+    }
+
     //因为开负数订单时引导库存变化 ssh 20250731
     public static function minusChangeStock($order, $shop, $staff)
     {

+ 5 - 0
biz-hd/recharge/classes/RechargeClass.php

@@ -135,6 +135,9 @@ class RechargeClass extends BaseClass
         $capitalType = dict::getDict('capitalType', 'xhRecharge', 'id');
         $relateId = $recharge->id;
 
+        $shOrderId = $recharge->shOrderId ?? 0;
+        $shOrderSn = $recharge->shOrderSn ?? '';
+
         $custom = CustomClass::getLockById($customId);
         if (empty($custom)) {
             $msg = '充值回调失败,没有找到客户';
@@ -295,6 +298,8 @@ class RechargeClass extends BaseClass
             'settleNo' => $settleNo,
             'settleAmount' => $settleAmount,
             'remark' => $remark,
+            'shOrderId' => $shOrderId,
+            'shOrderSn' => $shOrderSn,
         ];
         $returnChange = BalanceChangeClass::add($change, true);
         if ($recharge->onlinePay == 2) {