Browse Source

Merge branch 'master' of http://git.huaml.com/zhh/huahuibao

林琦海 5 years ago
parent
commit
445be631a2

+ 2 - 0
app-ghs/controllers/CashController.php

@@ -3,6 +3,7 @@
 namespace ghs\controllers;
 
 use biz\sj\classes\CashClass;
+use common\components\dict;
 use common\components\util;
 use Yii;
 
@@ -29,6 +30,7 @@ class CashController extends BaseController
         $get['shopAdminName'] = $shopAdmin->name ?? '';
         $get['shopId'] = $this->shopId;
         $get['sjId'] = $this->sjId;
+        $get['ptStyle'] = dict::getDict('ptStyle', 'ghs');
         $connection = Yii::$app->db;
         $transaction = $connection->beginTransaction();
         try {

+ 19 - 7
app-ghs/controllers/ProductController.php

@@ -15,6 +15,7 @@ use bizGhs\product\classes\ProductClass;
 use bizGhs\product\services\ProductService;
 use bizGhs\item\services\ItemService;
 use common\components\noticeUtil;
+use common\components\stringUtil;
 use common\components\util;
 use Yii;
 
@@ -74,17 +75,19 @@ class ProductController extends BaseController
     public function actionList()
     {
         $classId = Yii::$app->request->get('classId', 0);
-        $pyName = Yii::$app->request->get('py', '');
 //        $itemInfo = ItemClass::getGhsItemAll($this->sjId);
 //        $itemIds = array_column($itemInfo, 'itemId');
         $where['sjId'] = $this->sjId;
 
-        if ($pyName) {
-//            $pyNameItemIds = ItemClass::getItemIdsByPyName($pyName);
-//            $itemIds = array_intersect($itemIds, $pyNameItemIds);
-            $pyName = strtolower($pyName);
-            $where['py'] = $pyName;
+        $name = Yii::$app->request->get('name', '');
+        if (!empty($name)) {
+            if (stringUtil::isLetter($name)) {
+                $where['py'] = ['like', $name];
+            } else {
+                $where['name'] = ['like', $name];
+            }
         }
+
         if ($classId) {
             //获取itemIds
             //$itemIds = ItemClass::getItemIdsByClassId($this->sjId, $classId);
@@ -205,12 +208,21 @@ class ProductController extends BaseController
     //批量修改product 排序,成本价,加价
     public function actionBatchUpdate()
     {
+        $shopAdmin = $this->shopAdmin;
+        $roleId = $shopAdmin['roleId'] ?? 0;
+        $role = AdminRoleClass::getById($roleId);
+        $roleName = $role['roleName'] ?? '';
+        if ($roleName == '员工') {
+            util::fail('您没有权限操作哦');
+        }
+
+
         $data = Yii::$app->request->post('data', ''); //data = [{id:1,inTurn:10,addPrice:2,cost:10}]
         $type = Yii::$app->request->post('type', '');
         if (empty($data) || empty($type)) {
             util::fail("参数错误");
         }
-        if (in_array($type, ['inTurn', 'addPrice', 'cost', 'weight', 'ratio', 'delStatus'])) {
+        if (in_array($type, ['inTurn', 'addPrice', 'cost', 'weight', 'ratio', 'delStatus','ratio'])) {
             $data = json_decode($data, true);
         }
         foreach ($data as $v) {

+ 2 - 0
app-hd/controllers/CashController.php

@@ -3,6 +3,7 @@
 namespace hd\controllers;
 
 use biz\sj\classes\CashClass;
+use common\components\dict;
 use common\components\util;
 use Yii;
 
@@ -29,6 +30,7 @@ class CashController extends BaseController
         $get['shopAdminName'] = $shopAdmin->name ?? '';
         $get['shopId'] = $this->shopId;
         $get['sjId'] = $this->sjId;
+        $get['ptStyle'] = dict::getDict('ptStyle', 'hd');
         $connection = Yii::$app->db;
         $transaction = $connection->beginTransaction();
         try {

+ 90 - 98
app-pt/controllers/CashController.php

@@ -2,8 +2,10 @@
 
 namespace pt\controllers;
 
-use biz\shop\classes\ShopAdminClass;
+use biz\pt\classes\PtAssetClass;
+use biz\pt\classes\PtYeChangeClass;
 use biz\shop\classes\ShopClass;
+use biz\shop\classes\ShopYeChangeClass;
 use biz\sj\classes\CashClass;
 use biz\wx\classes\WxMessageClass;
 use common\components\dict;
@@ -23,8 +25,8 @@ class CashController extends BaseController
         if (!empty($status)) {
             $where['status'] = $status;
         }
-        $list = CashClass::getCashList($where);
-        util::success($list);
+        $respond = CashClass::getCashList($where);
+        util::success($respond);
     }
 
     //提现审核通过 shish 2021.5.17
@@ -50,34 +52,17 @@ class CashController extends BaseController
             if (empty($shop)) {
                 util::fail('没有找到门店');
             }
-            $ptStyle = $shop->ptStyle ?? dict::getDict('ptStyle', 'hd');
             if ($cashAmount <= 0) {
                 CashClass::rollback($cash, $shop, $transaction, $cashAmount, $remark);
                 util::fail('提现金额有问题');
             }
             $miniCashAmount = dict::getDict('miniCashAmount');
-            if (getenv('YII_ENV', 'local') != 'production') {
-                if ($cashAmount > $miniCashAmount) {
-                    CashClass::rollback($cash, $shop, $transaction, $cashAmount, $remark);
-                    util::fail("测试提现不超过{$miniCashAmount}元");
-                }
-            }
             if ($cashAmount < $miniCashAmount) {
                 CashClass::rollback($cash, $shop, $transaction, $cashAmount, $remark);
                 util::fail("余额不足{$miniCashAmount}元");
             }
 
-            $getAmount = $cashAmount;
-            //零售店提现需要扣除千分之六的手续费
-            if ($ptStyle == dict::getDict('ptStyle', 'hd')) {
-                $tip = bcmul($cashAmount, 0.006, 2);
-                $getAmount = bcsub($cashAmount, $tip, 2);
-            }
-
-            if ($ptStyle == dict::getDict('ptStyle', 'ghs')) {
-                $tip = bcmul($cashAmount, 0.0038, 2);
-                $getAmount = bcsub($cashAmount, $tip, 2);
-            }
+            $getAmount = $cash->beAmount;
 
             if ($status != CashClass::STATUS_CHECK_YES) {
                 CashClass::rollback($cash, $shop, $transaction, $cashAmount, $remark);
@@ -101,83 +86,90 @@ class CashController extends BaseController
                 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,
-            ];
-
-            $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\":\"" . $getAmount . "\"," .
-                "\"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->getAmount = $getAmount;
-                $cash->cashName = $cashName;
-                $cash->cashAccount = $cashAccount;
-                $cash->save();
-                //扣掉冻结的金额
-                $shop->freezeBalance = bcsub($shop->freezeBalance, $cashAmount, 2);
-                $shop->save();
-                $transaction->commit();
-                //微信通知申请提现人
-                WxMessageClass::cashInform($shop, $cash);
-                //通知管理员
-                noticeUtil::push("客户提现审核通过,转帐{$getAmount}元", '15280215347');
-                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');
-                util::fail('审核失败,原因:' . $sub_msg);
-            }
+//            $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,
+//            ];
+//
+//            $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\":\"" . $getAmount . "\"," .
+//                "\"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->getAmount = $getAmount;
+            $cash->cashName = $cashName;
+            $cash->cashAccount = $cashAccount;
+            $cash->save();
+            //扣掉冻结的金额
+            $shop->freezeBalance = bcsub($shop->freezeBalance, $cashAmount, 2);
+            $shop->save();
+
+            $transaction->commit();
+
+            //微信通知申请提现人
+            WxMessageClass::cashInform($shop, $cash);
+            //通知管理员
+            noticeUtil::push("客户提现审核通过,转帐{$getAmount}元", '15280215347');
+            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');
+//                util::fail('审核失败,原因:' . $sub_msg);
+//            }
         } catch (Exception $exception) {
             $transaction->rollBack();
             Yii::info("审核失败:" . $exception->getMessage());

+ 169 - 9
biz/sj/classes/CashClass.php

@@ -2,7 +2,10 @@
 
 namespace biz\sj\classes;
 
+use biz\pt\classes\PtAssetClass;
+use biz\pt\classes\PtYeChangeClass;
 use biz\shop\classes\ShopClass;
+use biz\shop\classes\ShopYeChangeClass;
 use bizHd\base\classes\BaseClass;
 use common\components\dict;
 use common\components\noticeUtil;
@@ -18,6 +21,18 @@ class CashClass extends BaseClass
     const STATUS_CHECK_YES = 2;
     const STATUS_CHECK_NO = 3;
 
+    //获取提现费率 shish 20210623
+    public static function getRate($currentPtStyle)
+    {
+        if ($currentPtStyle == dict::getDict('ptStyle', 'hd')) {
+            return 0.006;
+
+        } elseif ($currentPtStyle == dict::getDict('ptStyle', 'ghs')) {
+            return 0.0038;
+        }
+        return 0.006;
+    }
+
     //提现记录 ssh 2021.2.21
     public static function getCashList($where)
     {
@@ -28,6 +43,7 @@ class CashClass extends BaseClass
     //申请提现
     public static function addApply($params)
     {
+        $sjId = $params['sjId'] ?? 0;
         $shopId = $params['shopId'] ?? 0;
         if (empty($shopId)) {
             util::fail('没有找到门店');
@@ -48,21 +64,24 @@ class CashClass extends BaseClass
             util::fail('余额有问题,总余额比可提现余额还少');
         }
         $miniCashAmount = dict::getDict('miniCashAmount');
-        if (getenv('YII_ENV', 'local') != 'production') {
-            if ($txBalance > $miniCashAmount) {
-                util::fail("测试环境提现金额不能超过{$miniCashAmount}元");
-            }
-        }
         if (bccomp($miniCashAmount, $txBalance) == 1) {
             util::fail("满{$miniCashAmount}元可提现");
         }
 
         //可提现余额减少,总余额减少,冻结金额增加
-        $shop->txBalance = 0;
+        $currentTxBalance = bcsub($shop->txBalance, $txBalance, 2);
+        $shop->txBalance = $currentTxBalance;
         $shop->freezeBalance = bcadd($shop->freezeBalance, $txBalance, 2);
-        $shop->balance = bcsub($shop->balance, $txBalance, 2);
+        $currentBalance = bcsub($shop->balance, $txBalance, 2);
+        $shop->balance = $currentBalance;
         $shop->save();
 
+        //应转金额
+        $ptStyle = $shop->ptStyle;
+        $rate = CashClass::getRate($ptStyle);
+        $tip = bcmul($txBalance, $rate, 2);
+        $beAmount = bcsub($txBalance, $tip, 2);
+
         $cashName = $shop->cashName ?? '';
         $cashAccount = $shop->cashAccount ?? '';
         if (empty($cashName) || empty($cashAccount)) {
@@ -76,7 +95,75 @@ class CashClass extends BaseClass
         $params['sjName'] = $sjName;
         $params['shopName'] = $shopName;
         $params['amount'] = $txBalance;
+        $params['beAmount'] = $beAmount;
         $return = self::add($params, true);
+
+        $tx = dict::getDict('yeTx', 'can');
+        $capitalType = dict::getDict('capitalType', 'xhDrawCash', 'id');
+        //余额减少记录
+        $id = $return->id;
+        $change = [
+            'relateId' => $id,
+            'capitalType' => $capitalType,
+            'amount' => $txBalance,
+            'balance' => $currentBalance,
+            'txBalance' => $currentTxBalance,
+            'io' => 0,
+            'payWay' => 0,
+            'event' => "提现",
+            'sjId' => $sjId,
+            'shopId' => $shopId,
+            'tx' => $tx,
+            'ptStyle' => $ptStyle,
+        ];
+        ShopYeChangeClass::addChange($change, true);
+
+        $txAsset = null;
+        if ($ptStyle == dict::getDict('ptStyle', 'hd')) {
+            $txAsset = PtAssetClass::getHdTxBalance();
+        } elseif ($ptStyle == dict::getDict('ptStyle', 'ghs')) {
+            $txAsset = PtAssetClass::getGhsTxBalance();
+        } else {
+            util::fail('提现失败');
+        }
+        $currentPtTxBalance = $txAsset->amount;
+        $currentPtTxBalance = bcsub($currentPtTxBalance, $txBalance, 2);
+        $txAsset->amount = $currentPtTxBalance;
+        $txAsset->save();
+
+        $asset = null;
+        if ($ptStyle == dict::getDict('ptStyle', 'hd')) {
+            $asset = PtAssetClass::getHdBalance();
+        } elseif ($ptStyle == dict::getDict('ptStyle', 'ghs')) {
+            $asset = PtAssetClass::getGhsBalance();
+        } else {
+            util::fail('没有找到平台');
+        }
+        if (bccomp($txBalance, $asset->amount, 2) == 1) {
+            util::fail('平台余额不足');
+        }
+        $currentPtBalance = bcsub($asset->amount, $txBalance, 2);
+        $asset->amount = $currentPtBalance;
+        $asset->save();
+
+        $change = [
+            'relateId' => $id,
+            'capitalType' => $capitalType,
+            'amount' => $txBalance,
+            'balance' => $currentPtBalance,
+            'txBalance' => $currentPtTxBalance,
+            'io' => 0,
+            'payWay' => 0,
+            'event' => "【{$shop->merchantName} {$shop->shopName}】提现",
+            'sjId' => $sjId,
+            'shopId' => $shopId,
+            'tx' => $tx,
+            'ptStyle' => $ptStyle,
+            'shopName' => $shop->shopName,
+            'sjName' => $shop->merchantName,
+        ];
+        PtYeChangeClass::addChange($change, true);
+
         noticeUtil::push("客户:{$sjName} {$shopName}申请提现,金额:{$txBalance}元", '15280215347');
         return $return;
     }
@@ -88,9 +175,82 @@ class CashClass extends BaseClass
         $cash->save();
         //冻结金额回滚
         $shop->freezeBalance = bcsub($shop->freezeBalance, $cashAmount, 2);
-        $shop->balance = bcadd($shop->balance, $cashAmount, 2);
-        $shop->txBalance = bcadd($shop->txBalance, $cashAmount, 2);
+        $currentBalance = bcadd($shop->balance, $cashAmount, 2);
+        $shop->balance = $currentBalance;
+        $currentTxBalance = bcadd($shop->txBalance, $cashAmount, 2);
+        $shop->txBalance = $currentTxBalance;
         $shop->save();
+
+        $sjId = $shop->sjId;
+        $shopId = $shop->id;
+        $tx = dict::getDict('yeTx', 'can');
+        $ptStyle = $shop->ptStyle ?? dict::getDict('ptStyle', 'hd');
+        $capitalType = dict::getDict('capitalType', 'xhDrawCash', 'id');
+        //余额增加记录
+        $id = $cash->id;
+        $change = [
+            'relateId' => $id,
+            'capitalType' => $capitalType,
+            'amount' => $cashAmount,
+            'balance' => $currentBalance,
+            'txBalance' => $currentTxBalance,
+            'io' => 1,
+            'payWay' => 0,
+            'event' => "提现回滚",
+            'sjId' => $sjId,
+            'shopId' => $shopId,
+            'tx' => $tx,
+            'ptStyle' => $ptStyle,
+        ];
+        ShopYeChangeClass::addChange($change, true);
+
+        $txAsset = null;
+        if ($ptStyle == dict::getDict('ptStyle', 'hd')) {
+            $txAsset = PtAssetClass::getHdTxBalance();
+        } elseif ($ptStyle == dict::getDict('ptStyle', 'ghs')) {
+            $txAsset = self::getGhsTxBalance();
+        } else {
+            CashClass::rollback($cash, $shop, $transaction, $cashAmount, $remark);
+            util::fail('没有找到平台');
+        }
+        $currentPtTxBalance = $txAsset->amount;
+        $currentPtTxBalance = bcadd($currentPtTxBalance, $cashAmount, 2);
+        $txAsset->amount = $currentPtTxBalance;
+        $txAsset->save();
+
+        $asset = null;
+        if ($ptStyle == dict::getDict('ptStyle', 'hd')) {
+            $asset = PtAssetClass::getHdBalance();
+        } elseif ($ptStyle == dict::getDict('ptStyle', 'ghs')) {
+            $asset = PtAssetClass::getGhsBalance();
+        } else {
+            util::fail('没有找到平台');
+        }
+        if (bccomp($cashAmount, $asset->amount, 2) == 1) {
+            util::fail('平台余额不足');
+        }
+        $currentPtBalance = bcadd($asset->amount, $cashAmount, 2);
+        $asset->amount = $currentPtBalance;
+        $asset->save();
+
+        $change = [
+            'relateId' => $id,
+            'capitalType' => $capitalType,
+            'amount' => $cashAmount,
+            'balance' => $currentPtBalance,
+            'txBalance' => $currentPtTxBalance,
+            'io' => 1,
+            'payWay' => 0,
+            'event' => "【{$shop->merchantName} {$shop->shopName}】提现回滚",
+            'sjId' => $sjId,
+            'shopId' => $shopId,
+            'tx' => $tx,
+            'ptStyle' => $ptStyle,
+            'shopName' => $shop->shopName,
+            'sjName' => $shop->merchantName,
+        ];
+        PtYeChangeClass::addChange($change, true);
+
         $transaction->commit();
     }