shish vor 1 Jahr
Ursprung
Commit
6094d7c0ea

+ 15 - 0
app-ghs/controllers/ClearController.php

@@ -16,6 +16,21 @@ use Yii;
 class ClearController extends BaseController
 {
 
+    //结账单取消了,钱给原路退回 ssh 20250501
+    public function actionCancelRefund()
+    {
+        $id = Yii::$app->request->get('id', '');
+        $info = ClearClass::getById($id, true);
+        if ($info->ghsShopId != $this->shopId) {
+            util::fail('不是你的结账单');
+        }
+        $shop = $this->shop;
+        $respond = ClearClass::refundMoney($shop, $info);
+        $status = $respond['status'];
+        $msg = $respond['msg'];
+        util::success(['status' => $status], $msg);
+    }
+
     //获取客户待结订单明细 ssh 20220926
     public function actionGetUnClear()
     {

+ 42 - 3
biz-ghs/clear/classes/ClearClass.php

@@ -15,9 +15,11 @@ use bizGhs\shop\classes\ShopMoneyClass;
 use bizHd\purchase\classes\PurchaseClass;
 use bizHd\purchase\classes\PurchaseClearClass;
 use common\components\dict;
+use common\components\noticeUtil;
 use common\components\orderSn;
 use common\components\util;
 use Yii;
+use common\components\lakala\Lakala;
 
 class ClearClass extends BaseClass
 {
@@ -28,6 +30,43 @@ class ClearClass extends BaseClass
     const STATUS_HAS_PAY = 2;
     const STATUS_EXPIRE = 3;
 
+    public static function refundMoney($shop, $clear)
+    {
+        $refundOrderSn = orderSn::getClearRefundSn();
+        $refundPrice = $clear->actPrice ?? 0;
+        $orderSn = $clear->orderSn ?? '';
+        $refundFee = bcmul($refundPrice, 100);
+        $merchantPrivateKeyPath = Yii::getAlias("@vendor/lakala") . '/production/api_private_key.pem';
+        $lklCertificatePath = Yii::getAlias("@vendor/lakala") . '/production/lkl-apigw-v1.cer';
+        $params = [
+            'appid' => 'OP00002119',
+            'serial_no' => '018b08cfddbd',
+            'merchant_no' => $shop->lklSjNo,
+            'term_no' => $shop->lklScanTermNo,
+            'merchantPrivateKeyPath' => $merchantPrivateKeyPath,
+            'lklCertificatePath' => $lklCertificatePath,
+        ];
+        $laResource = new Lakala($params);
+        $refundReason = '';
+        $aliParams = [
+            'refundSn' => $refundOrderSn,
+            'orderSn' => $orderSn,
+            'refundAmount' => $refundFee,
+            'refundReason' => $refundReason,
+        ];
+        $response = $laResource->refund($aliParams);
+        if (!isset($response['code']) || $response['code'] != 'BBS00000') {
+            $errMsg = $response['msg'] ?? '';
+            return ['status' => 0, 'msg' => $errMsg];
+        } else {
+            $sjName = $shop->merchantName;
+            $shopName = $shop->shopName;
+            $name = $shopName == '首店' ? $sjName : $sjName . '-' . $shopName;
+            noticeUtil::push("结帐单取消了,客户付的钱也原路退回 success {$orderSn} {$name}", '15280215347');
+            return ['status' => 1, 'msg' => '退款成功'];
+        }
+    }
+
     public static function addOrder($data)
     {
         $orderSn = orderSn::getPurchaseClearSn();
@@ -152,11 +191,11 @@ class ClearClass extends BaseClass
             'ptStyle' => 2,
             'capitalType' => $capitalType,
             'amount' => $order->prePrice,
-            'staffId'=>$order->customShopAdminId,
-            'staffName'=>$order->customShopAdminName,
+            'staffId' => $order->customShopAdminId,
+            'staffName' => $order->customShopAdminName,
             'balance' => $ghs->debtAmount,
             'io' => 0,
-            'event' => '采购单结账 ' .$order->orderSn ,
+            'event' => '采购单结账 ' . $order->orderSn,
             'sjId' => $order->sjId,
             'shopId' => $order->shopId,
         ];

+ 12 - 0
biz-ghs/clear/classes/ClearRefundSnClass.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace bizGhs\clear\classes;
+
+use bizGhs\base\classes\BaseClass;
+
+class ClearRefundSnClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\clear\models\ClearRefundSn';
+
+}

+ 13 - 0
biz-ghs/clear/models/ClearRefundSn.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizGhs\clear\models;
+use bizGhs\base\models\Base;
+
+class ClearRefundSn extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhClearRefundSn';
+    }
+
+}

+ 15 - 0
common/components/orderSn.php

@@ -5,6 +5,7 @@ namespace common\components;
 use biz\shop\classes\ShopClass;
 use biz\sj\classes\CashSnClass;
 use bizGhs\book\classes\BookSnClass;
+use bizGhs\clear\classes\ClearRefundSnClass;
 use bizGhs\custom\classes\CustomRechargeSnClass;
 use bizGhs\ghs\classes\GhsRechargeSnClass;
 use bizGhs\live\classes\LiveOrderSnClass;
@@ -378,6 +379,20 @@ class orderSn
         return $prefix . $id;
     }
 
+    public static function getClearRefundSn()
+    {
+        $prefix = 'RDS_CS';
+        if (getenv('YII_ENV', 'local') == 'production') {
+            $prefix = 'RDS';
+        }
+        $respond = ClearRefundSnClass::add(['id' => null]);
+        $id = $respond['id'] ?? 0;
+        if (empty($id)) {
+            util::fail('结账退款单号没有生成');
+        }
+        return $prefix . $id;
+    }
+
     //制作单 ssh 20220319
     public static function getWorkSn()
     {