shish vor 5 Jahren
Ursprung
Commit
d8ea49b8cf
3 geänderte Dateien mit 98 neuen und 78 gelöschten Zeilen
  1. 92 76
      app-pt/controllers/CashController.php
  2. 4 1
      biz/sj/classes/CashClass.php
  3. 2 1
      sql.sql

+ 92 - 76
app-pt/controllers/CashController.php

@@ -5,6 +5,7 @@ namespace pt\controllers;
 use biz\shop\classes\ShopAdminClass;
 use biz\shop\classes\ShopClass;
 use biz\sj\classes\CashClass;
+use common\components\noticeUtil;
 use common\components\util;
 use Yii;
 
@@ -28,100 +29,115 @@ class CashController extends BaseController
     public function actionCheck()
     {
         $get = Yii::$app->request->get();
-        $id = isset($get['id']) ? $get['id'] : 0;
+        $id = $get['id'] ?? 0;
+        $remark = $get['remark'] ?? '';
+        $status = $get['status'] ?? 2;
         $cash = CashClass::getById($id, true);
-        if ($cash->status == 2) {
-            util::fail('已经完成转账,请不要重复请求!');
+        if ($cash->status != CashClass::STATUS_UN_CHECK) {
+            util::fail('记录已审核');
+        }
+        if ($status != 1) {
+            $cash->remark = $remark;
+            $cash->status = CashClass::STATUS_CHECK_NO;
+            $cash->save();
+            util::complete();
         }
         $cashAmount = isset($cash->amount) ? floatval($cash->amount) : 0;
-        $shopAdminId = $cash->shopAdminId;
-        $shopAdmin = ShopAdminClass::getById($shopAdminId);
-        if (empty($shopAdmin)) {
-            util::fail('没有找到员工');
+        if ($cashAmount <= 0) {
+            util::fail('提现金额有问题');
         }
         $cashSn = $cash->orderSn;
         if (empty($cashSn)) {
-            util::fail('没有找到提现订单号');
+            util::fail('没有找到订单号');
         }
         $shopId = $cash->shopId;
-        $shop = ShopClass::getById($shopId, true);
+        $shop = ShopClass::getLockById($shopId);
         if (empty($shop)) {
             util::fail('没有找到门店');
         }
         $cashAccount = $shop->cashAccount ?? '';
         $cashName = $shop->cashName ?? '';
-        if (empty($cashAccount)) {
-            util::fail('支付宝帐号为空');
-        }
-        if (empty($cashName)) {
-            util::fail('支付宝帐号姓名为空');
-        }
-        if ($cashAmount == 0) {
-            util::fail('转账金额为0');
+        if (empty($cashAccount) || empty($cashName)) {
+            util::fail('提现帐号未填写完整');
         }
-        $aliWap = Yii::getAlias("@vendor/alipayWap");
-        require_once($aliWap . '/aop/AopClient.php');
-        require_once($aliWap . '/aop/request/AlipayFundTransToaccountTransferRequest.php');
 
-        $aliPId = '2017041906821571';
-        $aliKey = 'MIIEpAIBAAKCAQEAvbeu6o90L+0AilI+mbhuJJH0lUv7hWQCEC+XUc+cWlC9ulKC3cSVScVLJHpUc09aj6v/iD1p9iVfgMxjeADNVKiQC2RJyRshAjzyTq+2bTcODp619iV2y4qW8UM65VcP7Ide3P0uT5xC2ReW0HpkdHZgm4F+P7mh1VhGt9qOP3hjvoraAHhtGACvsGvy8H69HhSAG+CEmFt7f2tKNWJ8xEUvkfhDvys93PfTk4xMWj048hJE2r38+2mWI/Il5dFQHWXXTVl2x9yi7uhEEW42a+7s9Q3HgqEvZiQ2NI1FTeEAPLFBApiEsNLY/smaszwqqfWGAyTMvtQ6T4K96GcTLQIDAQABAoIBAHwYTj33n9RJfnT73x7F2KXrIsUVcmyKQh88QgqtdmRNNA1QM3HESLJ8bu5pZhwW5/HaW8dOBKWRRKsHBnlUbPrXV4FcFDeLm0fPfd+iZ/2AaZ1+ix962f3BpYIiq7+f9zaMRazfnw9L8x31pByyMktLs12EkoQ0dHsMxxUzzKAOiiPnvCn8Pv+Jb2qej8GXgCjefutCVNMWGsdwJtMVXEbpdmMa48Wvw+0In5ZS/UG39YAreFzgDqI9jWHE1ZhkGmB1+8hKpeIlEeVGAeYVveUgssMORdA/YY8SWHk26KSIFXBrmdKjAcRJ8Q7ZHUmzIqAV+IMV+RD4J5mZHeJgdAECgYEA8J+Hp1M6eYbT4CPLXa//yRP6Xo+qSzrKHaRB1LRAjYhvKpx/TQetYpNCJ5bWpa+Jp0T5R21pzuYaJkPuGlNEHA13b5T3r1l2ltomSEdaShvD5EZ9WtErYV5zpSv7FjjIGkbwa0H3A8Ydnvw5z4A9TZjjHLjC2GtVGJReqHGglMECgYEAydddA4NRPxmXvIjjmLb1Ft1qwHuyv3vvWhi50foGZXNEnBcfP/OkfyBDDpOEu34GZBMXK9ykHBs1l93OEFGXh7AwW0Lp5lARahBEfBZgPjq5yPO8TOJZrb5hVcuvoDdGjxpRh93XDnQDhWS/1IvUcBLcIsTcnVvfrkX4NLxF/W0CgYEAxamG+gD4rBQBwMImsRN+/2MV7M//iEUG+0qPeXeI/7rv9wUP3etMlwl48qSKNxj37xxN2ksa/Acxu/VZhu6XqKO3VUX+IWFQdaNGh2F13iLozIDLQOtKw3WfcjOq0xpZ5pwXq0RI8iSw+IUhyD8EHNZW2qU8CiRBhyt6hsywqQECgYBa8+06FAachI/XqWfF/UvcDdJ5AkS9/L8SvmmdsSkItjSIkfLHAqdxkbwl6Vu6kUOX/PJIFZjuAWTZFl4xBFNgFYj01uZHnnT6cnIp6HteD2CAqTSFAMqgfFWoL6zoaYAmJBnxO4oZPTYI+ilnQcts5VLFaChx0GCvS2BZgy2W0QKBgQDjP2VtRq4aVSLUq2z1KIDI7GJBbOM5KSW1OEj4sfEdViozPh3Ar/FQWiij1oCZF+iJdKkonHoDbDd+Q0ykcpQ+5Gv07iiT8wJYFR/0j8g2kfql7bVQhGSBeBMS5sawKR3CvkfW73WX+CNnf0PklTY0kTyt6WRXDnKSeyxFVwSZ7g==';
-        $aliPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsz3m9juAR1xew4DY6c34gvbwNg8pZ92f932tseKs+4+pF0e+jTDiUo/xHImNDi1KXt1B+s3LxY9L/sxEksbavwmhgbz/igN1cAEwS2YM+Gnf0csDrxAPJhoKL5FTwxPEQ/8VSgroU+6GlF3LAx4VHa1qfn5MqRPfLroJcyPDyGfNe9vna2FnO4E/PH+hVbvPUAwX3XrUvJIm4OgY0JE3HYFlu+O7F4Ln6+Sl+Zv/ZE2nZAvNiyAwW5iVKhKXLieExqwd0NdrP28baBqkkIY+tmV7butGjB52iK1UbU0+1uiaPL4xBxRy6d0LZmYlvdVHp0JRUuwxBLChGgOCo/76DQIDAQAB';
-        $config = [
-            //应用ID,您的APP_ID
-            'app_id' => $aliPId,
-            //商户私钥,您的原始格式RSA私钥
-            'merchant_private_key' => $aliKey,
-            //异步通知地址
-            'notify_url' => Yii::$app->params['hdHost'] . "/notice/ali-async",
-            //同步跳转
-            'return_url' => "",
-            //编码格式
-            'charset' => "UTF-8",
-            //签名方式
-            'sign_type' => "RSA2",
-            //支付宝网关
-            'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
-            //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
-            'alipay_public_key' => $aliPublicKey,
-        ];
+        //事务处理
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
 
-        $aop = new \AopClient();
-        $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
-        $aop->appId = $config['app_id'];
-        $aop->rsaPrivateKey = $config['merchant_private_key'];
-        $aop->alipayrsaPublicKey = $config['alipay_public_key'];
-        $aop->apiVersion = '1.0';
-        $aop->signType = 'RSA2';
-        $aop->postCharset = 'UTF-8';
-        $aop->format = 'json';
-        $request = new \AlipayFundTransToaccountTransferRequest ();
-        $request->setBizContent("{" .
-            "\"out_biz_no\":\"" . $cashSn . "\"," .
-            "\"payee_type\":\"ALIPAY_LOGONID\"," .
-            "\"payee_account\":\"" . $cashAccount . "\"," .
-            "\"amount\":\"" . $cashAmount . "\"," .
-            "\"payee_real_name\":\"" . $cashName . "\"," .
-            "\"payer_show_name\":\"厦门中花汇信息科技有限公司\"," .
-            "\"remark\":\"提现申请\"" .
-            "  }");
-        $result = $aop->execute($request);
+            $aliWap = Yii::getAlias("@vendor/alipayWap");
+            require_once($aliWap . '/aop/AopClient.php');
+            require_once($aliWap . '/aop/request/AlipayFundTransToaccountTransferRequest.php');
 
-        $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
-        $resultCode = $result->$responseNode->code;
-        $returnOrderId = $result->$responseNode->order_id;
-        if (!empty($resultCode) && $resultCode == 10000) {
-            $cash->thirdOrderSn = $returnOrderId;
-            $cash->status = 2;
-            $cash->save();
-            //您申请的提现金额:{$cashAmount}元已经到帐,请注意查收
-            util::complete();
-        } else {
-            $msg = $result->$responseNode->msg;
-            $sub_code = $result->$responseNode->sub_code;
-            $sub_msg = $result->$responseNode->sub_msg;
-            Yii::info("转帐失败,原因:code:" . $resultCode . " msg:" . $msg . " sub_code:" . $sub_code . " sub_msg:" . $sub_msg);
+            $aliPId = '2017041906821571';
+            $aliKey = 'MIIEpAIBAAKCAQEAvbeu6o90L+0AilI+mbhuJJH0lUv7hWQCEC+XUc+cWlC9ulKC3cSVScVLJHpUc09aj6v/iD1p9iVfgMxjeADNVKiQC2RJyRshAjzyTq+2bTcODp619iV2y4qW8UM65VcP7Ide3P0uT5xC2ReW0HpkdHZgm4F+P7mh1VhGt9qOP3hjvoraAHhtGACvsGvy8H69HhSAG+CEmFt7f2tKNWJ8xEUvkfhDvys93PfTk4xMWj048hJE2r38+2mWI/Il5dFQHWXXTVl2x9yi7uhEEW42a+7s9Q3HgqEvZiQ2NI1FTeEAPLFBApiEsNLY/smaszwqqfWGAyTMvtQ6T4K96GcTLQIDAQABAoIBAHwYTj33n9RJfnT73x7F2KXrIsUVcmyKQh88QgqtdmRNNA1QM3HESLJ8bu5pZhwW5/HaW8dOBKWRRKsHBnlUbPrXV4FcFDeLm0fPfd+iZ/2AaZ1+ix962f3BpYIiq7+f9zaMRazfnw9L8x31pByyMktLs12EkoQ0dHsMxxUzzKAOiiPnvCn8Pv+Jb2qej8GXgCjefutCVNMWGsdwJtMVXEbpdmMa48Wvw+0In5ZS/UG39YAreFzgDqI9jWHE1ZhkGmB1+8hKpeIlEeVGAeYVveUgssMORdA/YY8SWHk26KSIFXBrmdKjAcRJ8Q7ZHUmzIqAV+IMV+RD4J5mZHeJgdAECgYEA8J+Hp1M6eYbT4CPLXa//yRP6Xo+qSzrKHaRB1LRAjYhvKpx/TQetYpNCJ5bWpa+Jp0T5R21pzuYaJkPuGlNEHA13b5T3r1l2ltomSEdaShvD5EZ9WtErYV5zpSv7FjjIGkbwa0H3A8Ydnvw5z4A9TZjjHLjC2GtVGJReqHGglMECgYEAydddA4NRPxmXvIjjmLb1Ft1qwHuyv3vvWhi50foGZXNEnBcfP/OkfyBDDpOEu34GZBMXK9ykHBs1l93OEFGXh7AwW0Lp5lARahBEfBZgPjq5yPO8TOJZrb5hVcuvoDdGjxpRh93XDnQDhWS/1IvUcBLcIsTcnVvfrkX4NLxF/W0CgYEAxamG+gD4rBQBwMImsRN+/2MV7M//iEUG+0qPeXeI/7rv9wUP3etMlwl48qSKNxj37xxN2ksa/Acxu/VZhu6XqKO3VUX+IWFQdaNGh2F13iLozIDLQOtKw3WfcjOq0xpZ5pwXq0RI8iSw+IUhyD8EHNZW2qU8CiRBhyt6hsywqQECgYBa8+06FAachI/XqWfF/UvcDdJ5AkS9/L8SvmmdsSkItjSIkfLHAqdxkbwl6Vu6kUOX/PJIFZjuAWTZFl4xBFNgFYj01uZHnnT6cnIp6HteD2CAqTSFAMqgfFWoL6zoaYAmJBnxO4oZPTYI+ilnQcts5VLFaChx0GCvS2BZgy2W0QKBgQDjP2VtRq4aVSLUq2z1KIDI7GJBbOM5KSW1OEj4sfEdViozPh3Ar/FQWiij1oCZF+iJdKkonHoDbDd+Q0ykcpQ+5Gv07iiT8wJYFR/0j8g2kfql7bVQhGSBeBMS5sawKR3CvkfW73WX+CNnf0PklTY0kTyt6WRXDnKSeyxFVwSZ7g==';
+            $aliPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsz3m9juAR1xew4DY6c34gvbwNg8pZ92f932tseKs+4+pF0e+jTDiUo/xHImNDi1KXt1B+s3LxY9L/sxEksbavwmhgbz/igN1cAEwS2YM+Gnf0csDrxAPJhoKL5FTwxPEQ/8VSgroU+6GlF3LAx4VHa1qfn5MqRPfLroJcyPDyGfNe9vna2FnO4E/PH+hVbvPUAwX3XrUvJIm4OgY0JE3HYFlu+O7F4Ln6+Sl+Zv/ZE2nZAvNiyAwW5iVKhKXLieExqwd0NdrP28baBqkkIY+tmV7butGjB52iK1UbU0+1uiaPL4xBxRy6d0LZmYlvdVHp0JRUuwxBLChGgOCo/76DQIDAQAB';
+            $config = [
+                //应用ID,您的APP_ID
+                'app_id' => $aliPId,
+                //商户私钥,您的原始格式RSA私钥
+                'merchant_private_key' => $aliKey,
+                //异步通知地址
+                'notify_url' => Yii::$app->params['hdHost'] . "/notice/ali-async",
+                //同步跳转
+                'return_url' => "",
+                //编码格式
+                'charset' => "UTF-8",
+                //签名方式
+                'sign_type' => "RSA2",
+                //支付宝网关
+                'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
+                //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
+                'alipay_public_key' => $aliPublicKey,
+            ];
+
+            $aop = new \AopClient();
+            $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
+            $aop->appId = $config['app_id'];
+            $aop->rsaPrivateKey = $config['merchant_private_key'];
+            $aop->alipayrsaPublicKey = $config['alipay_public_key'];
+            $aop->apiVersion = '1.0';
+            $aop->signType = 'RSA2';
+            $aop->postCharset = 'UTF-8';
+            $aop->format = 'json';
+            $request = new \AlipayFundTransToaccountTransferRequest ();
+            $request->setBizContent("{" .
+                "\"out_biz_no\":\"" . $cashSn . "\"," .
+                "\"payee_type\":\"ALIPAY_LOGONID\"," .
+                "\"payee_account\":\"" . $cashAccount . "\"," .
+                "\"amount\":\"" . $cashAmount . "\"," .
+                "\"payee_real_name\":\"" . $cashName . "\"," .
+                "\"payer_show_name\":\"厦门中花汇信息科技有限公司\"," .
+                "\"remark\":\"提现申请\"" .
+                "  }");
+            $result = $aop->execute($request);
+
+            $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
+            $resultCode = $result->$responseNode->code;
+            $returnOrderId = $result->$responseNode->order_id;
+            if (!empty($resultCode) && $resultCode == 10000) {
+                $cash->thirdOrderSn = $returnOrderId;
+                $cash->status = CashClass::STATUS_CHECK_YES;
+                $cash->remark = $remark;
+                $cash->save();
+                noticeUtil::push("客户提现申请审核通过,转帐{$cashAmount}元", '15280215347');
+                $transaction->commit();
+                util::complete();
+            } else {
+                $msg = $result->$responseNode->msg;
+                $sub_code = $result->$responseNode->sub_code;
+                $sub_msg = $result->$responseNode->sub_msg;
+                $text = "转帐失败,原因:code:" . $resultCode . " msg:" . $msg . " sub_code:" . $sub_code . " sub_msg:" . $sub_msg;
+                $transaction->rollBack();
+                Yii::info($text);
+                noticeUtil::push($text, '15280215347');
+            }
+        } catch (Exception $exception) {
+            $transaction->rollBack();
+            Yii::info("提现审核失败:" . $exception->getMessage());
+            util::fail('审核失败,请排查原因');
         }
-        util::fail('转账失败');
     }
 
 }

+ 4 - 1
biz/sj/classes/CashClass.php

@@ -13,6 +13,10 @@ class CashClass extends BaseClass
 
     public static $baseFile = '\biz\sj\models\Cash';
 
+    const STATUS_UN_CHECK = 1;
+    const STATUS_CHECK_YES = 2;
+    const STATUS_CHECK_NO = 3;
+
     //提现记录 ssh 2021.2.21
     public static function getCashList($where)
     {
@@ -71,7 +75,6 @@ class CashClass extends BaseClass
         }
         $shopName = $shop->shopName ?? '';
         $sjName = $shop->merchantName ?? '';
-        $txBalance = $shop->txBalance ?? 0;
         $orderSn = orderSn::getCashSn();
         $params['orderSn'] = $orderSn;
         $params['event'] = '申请提现';

+ 2 - 1
sql.sql

@@ -2635,4 +2635,5 @@ ALTER TABLE xhRecharge ADD shopAdminId INT NOT NULL DEFAULT 0 COMMENT '员工id'
 ALTER TABLE xhRecharge ADD shopAdminName VARCHAR(50) NOT NULL DEFAULT '' COMMENT '员工名称' AFTER `shopAdminId`;
 ALTER TABLE xhCash DROP COLUMN `cashName`;
 ALTER TABLE xhCash DROP COLUMN `cashAccount`;
-ALTER TABLE xhCash ADD shopAdminName VARCHAR(50) NOT NULL DEFAULT '' COMMENT '员工姓名' AFTER `shopAdminId`;
+ALTER TABLE xhCash ADD shopAdminName VARCHAR(50) NOT NULL DEFAULT '' COMMENT '员工姓名' AFTER `shopAdminId`;
+ALTER TABLE xhCash MODIFY `status` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '1待审核 2通过 3未通过';