shish 1 năm trước cách đây
mục cha
commit
2e92daa725

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

@@ -8,10 +8,12 @@ use biz\recharge\classes\RechargeHbClass;
 use biz\shop\classes\ShopClass;
 use biz\sj\classes\SjClass;
 use bizGhs\custom\classes\CustomClass;
+use bizHd\custom\classes\HdClass;
 use bizHd\wx\classes\WxOpenClass;
 use common\components\dict;
 use common\components\imgUtil;
 use common\components\miniUtil;
+use common\components\orderSn;
 use common\components\stringUtil;
 use common\components\util;
 use Yii;
@@ -45,6 +47,55 @@ class RechargeController extends BaseController
     public function actionManRecharge()
     {
         $post = Yii::$app->request->post();
+
+        $shopAdmin = $this->shopAdmin;
+        if ($shopAdmin->super != 1) {
+            util::fail('超管才能充值');
+        }
+        $staffId = $shopAdmin->id;
+        $staffName = $shopAdmin->name;
+
+        $payWay = $post['payWay'] ?? 0;
+        $amount = $post['amount'] ?? 0;
+        $remark = $post['remark'] ?? '';
+        $customId = $post['customId'] ?? 0;
+        $custom = \bizHd\custom\classes\CustomClass::getById($customId, true);
+        if (empty($custom)) {
+            util::fail('没有找到客户');
+        }
+        $customName = $custom->name;
+        $hdId = $custom->hdId;
+        $hd = HdClass::getById($hdId, true);
+        if (empty($hd)) {
+            util::fail('花店信息缺失');
+        }
+        $hdName = $hd->name;
+        $shopId = $this->shopId;
+        $mainId = $this->mainId;
+        $orderSn = orderSn::getRechargeSn();
+        $rechargeData = [
+            'orderSn' => $orderSn,
+            'modPrice' => 1,
+            'payWay' => $payWay,
+            'returnCode' => '',
+            'shopId' => $shopId,
+            'mainId' => $mainId,
+            'hdId' => $hdId,
+            'hdName' => $hdName,
+            'onlinePay' => 1,
+            'amount' => $amount,
+            'balance' => '',
+            'staffId' => $staffId,
+            'staffName' => $staffName,
+            'payStatus' => 0,
+            'payTime' => '0000-00-00 00:00:00',
+            'status' => 0,
+            'remark' => $remark,
+            'customId' => $customId,
+            'customName' => $customName,
+        ];
+        $respond = \bizHd\recharge\classes\RechargeClass::addRecharge($rechargeData);
+
         util::success($post);
     }
 

+ 6 - 8
app-mall/controllers/BaseController.php

@@ -50,14 +50,12 @@ class BaseController extends PublicController
                 $this->sjExtend = MerchantExtendService::getBySjId($this->sjId);
             }
         }
-        if (httpUtil::isMiniProgram()) {
-            $userId = jwt::getLoginId();
-            if (!empty($userId)) {
-                $this->userId = $userId;
-                $user = UserClass::getById($userId, true);
-                if (!empty($user)) {
-                    $this->user = $user;
-                }
+        $userId = jwt::getLoginId();
+        if (!empty($userId)) {
+            $this->userId = $userId;
+            $user = UserClass::getById($userId, true);
+            if (!empty($user)) {
+                $this->user = $user;
             }
         }
         return parent::beforeAction($action);

+ 13 - 3
app-mall/controllers/HdController.php

@@ -5,6 +5,7 @@ namespace mall\controllers;
 use bizHd\custom\classes\HdClass;
 use common\components\util;
 use bizHd\custom\classes\CustomClass;
+use Yii;
 
 class HdController extends BaseController
 {
@@ -12,6 +13,9 @@ class HdController extends BaseController
     //花店信息 ssh 20230111
     public function actionInfo()
     {
+        $get = Yii::$app->request->get();
+        $id = $get['id'] ?? 0;
+
         $user = $this->user;
         $shop = $this->shop;
         if (empty($user)) {
@@ -24,9 +28,15 @@ class HdController extends BaseController
             $custom = [];
             util::success(['hd' => $hd, 'custom' => $custom]);
         } else {
-            $respond = CustomClass::buildRelation($shop, $user);
-            $hd = $respond['hd'];
-            $custom = $respond['custom'];
+            if (empty($id)) {
+                $respond = CustomClass::buildRelation($shop, $user);
+                $hd = $respond['hd'];
+                $custom = $respond['custom'];
+            } else {
+                $hd = \bizMall\hd\classes\HdClass::getById($id, true);
+                $customId = $hd->customId;
+                $custom = \bizMall\custom\classes\CustomClass::getById($customId, true);
+            }
             util::success(['hd' => $hd, 'custom' => $custom]);
         }
     }

+ 164 - 6
app-mall/controllers/RechargeController.php

@@ -2,20 +2,178 @@
 
 namespace mall\controllers;
 
-use bizMall\user\services\UserService;
-use common\components\httpUtil;
-use common\components\stringUtil;
+use bizHd\custom\classes\CustomClass;
+use bizHd\custom\classes\HdClass;
+use bizHd\merchant\classes\ShopClass;
+use bizHd\recharge\classes\RechargeClass;
+use bizHd\wx\classes\WxOpenClass;
+use common\components\dict;
+use common\components\noticeUtil;
+use common\components\orderSn;
 use common\components\util;
-use common\services\xhRechargeService;
 use Yii;
+use common\components\lakala\Lakala;
 
 class RechargeController extends BaseController
 {
 
-    //发起充值 ssh 2019.12.19
-    public function actionLaunch()
+    public $guestAccess = ['recharge'];
+
+    //充值 ssh 20240507
+    public function actionRecharge()
     {
+        ini_set('date.timezone', 'Asia/Shanghai');
+        $post = Yii::$app->request->post();
+        $payWay = isset($post['payWay']) ? $post['payWay'] : 0;
+        $actPrice = $post['actPrice'] ?? 0;
+        $totalFee = $actPrice;
+
+        $shopId = $this->shopId;
+        if (empty($shopId)) {
+            util::fail('没有找到花店');
+        }
+        $shop = ShopClass::getById($shopId, true);
+        if (empty($shop)) {
+            util::fail('没有找到花店呢');
+        }
+
+        $mainId = $this->mainId;
+        $hdId = $post['hdId'] ?? 0;
+        $salt = $post['salt'] ?? '';
+        $hd = HdClass::getById($hdId, true);
+        if (empty($hd)) {
+            util::fail('没有找到花店哦!');
+        }
+        if (empty($salt) || $hd->salt != $salt) {
+            util::fail('不是你的花店哦');
+        }
+        $customId = $ghs->customId ?? 0;
+        $custom = CustomClass::getById($customId, true);
+        if (empty($custom)) {
+            util::fail('花店客户缺失');
+        }
+        $customName = $custom->name;
+        $hd = HdClass::getById($hdId, true);
+        if (empty($hd)) {
+            util::fail('花店信息缺失');
+        }
+        $hdName = $hd->name;
+        $capitalType = dict::getDict('capitalType', 'skRechargeToHd', 'id');
+        $orderSn = orderSn::getRechargeSn();
+        $rechargeData = [
+            'orderSn' => $orderSn,
+            'modPrice' => 0,
+            'payWay' => $payWay,
+            'returnCode' => '',
+            'shopId' => $shopId,
+            'mainId' => $mainId,
+            'hdId' => $hdId,
+            'hdName' => $hdName,
+            'amount' => $actPrice,
+            'onlinePay' => 1,
+            'payStatus' => 0,
+            'status' => 0,
+            'customId' => $customId,
+            'customName' => $customName,
+        ];
+        $respond = RechargeClass::addRecharge($rechargeData);
+        $rechargeId = $respond->id;
+
+        $subject = '线上充值,单号' . $orderSn;
+        if ($payWay == 0) {
+            $openId = !empty($post['currentMiniOpenId']) ? $post['currentMiniOpenId'] : '';
+            if (empty($openId)) {
+                if (!empty($this->admin)) {
+                    if (isset($this->admin->miniOpenId) && !empty($this->admin->miniOpenId)) {
+                        $openId = $this->admin->miniOpenId;
+                    }
+                }
+            }
+            $merchantExtend = WxOpenClass::getMallWxInfo();
+
+            $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);
+            $notifyUrl = Yii::$app->params['mallHost'] . "/notice/pay-callback";
+            $wxParams = [
+                'orderSn' => $orderSn,
+                'amount' => $totalFee,
+                'capitalType' => $capitalType,
+                'notifyUrl' => $notifyUrl,
+                'wxAppId' => $merchantExtend['miniAppId'],
+                'openId' => $openId,
+                'subject' => $subject,
+                'couponId' => 0,
+            ];
+            $response = $laResource->driveWxPay($wxParams);
+            if ($response['code'] != 'BBS00000') {
+                $errMsg = $response['msg'] ?? '';
+                noticeUtil::push('编号666993:' . $errMsg, '15280215347');
+                util::fail('支付失败');
+            }
+            $newParams = isset($response['resp_data']['acc_resp_fields']) ? $response['resp_data']['acc_resp_fields'] : [];
+            $appId = $newParams['app_id'] ?? '';
+            $nonceStr = $newParams['nonce_str'] ?? '';
+            $paySign = $newParams['pay_sign'] ?? '';
+            $package = $newParams['package'] ?? '';
+            $signType = $newParams['sign_type'] ?? '';
+            $timeStamp = $newParams['time_stamp'] ?? '';
+            $new = [
+                'id' => $rechargeId,
+                'appId' => $appId,
+                'nonceStr' => $nonceStr,
+                'paySign' => $paySign,
+                'package' => $package,
+                'signType' => $signType,
+                'timeStamp' => $timeStamp,
+                'orderSn' => $orderSn,
+            ];
+            util::success($new);
+
+        } elseif ($payWay == 1) {
+
+            util::fail('开发中');
+
+//            $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' => $ghsShop->lklSjNo,
+//                'term_no' => $ghsShop->lklB2BTermNo,
+//                'merchantPrivateKeyPath' => $merchantPrivateKeyPath,
+//                'lklCertificatePath' => $lklCertificatePath,
+//            ];
+//            $laResource = new Lakala($params);
+//            $notifyUrl = Yii::$app->params['hdHost'] . "/notice/cash-pay-callback";
+//            $cashParams = [
+//                'orderSn' => $customOrderSn,
+//                'amount' => $totalFee,
+//                'capitalType' => $capitalType,
+//                'notifyUrl' => $notifyUrl,
+//                'subject' => $subject,
+//            ];
+//            $response = $laResource->cashierPay($cashParams);
+//            if (isset($response['code']) == false || $response['code'] != '000000') {
+//                util::fail('支付失败了');
+//            }
+//            $url = $response['resp_data']['counter_url'] ? $response['resp_data']['counter_url'] : '';
+//            if (empty($url)) {
+//                util::fail('支付失败');
+//            }
+//            util::success(['url' => $url]);
 
+        } else {
+            util::fail('暂不支持的付款方式');
+        }
     }
 
 }

+ 3 - 0
biz-hd/custom/classes/CustomClass.php

@@ -184,6 +184,7 @@ class CustomClass extends BaseClass
         if (empty($shop)) {
             return false;
         }
+        $salt = stringUtil::charsShuffleLowerCase(8);
         $isNewCustom = 0;
         $userId = $user->id;
         $name = $user->name ?? '';
@@ -209,6 +210,7 @@ class CustomClass extends BaseClass
                 'py' => $py,
                 'mobile' => $mobile,
                 'visitTime' => $visitTime,
+                'salt' => $salt,
             ];
             $custom = self::addCustom($data);
             $isNewCustom = 1;
@@ -234,6 +236,7 @@ class CustomClass extends BaseClass
                 'showAddress' => $shop->showAddress ?? '',
                 'lat' => $shop->lat ?? '',
                 'long' => $shop->long ?? '',
+                'salt' => $salt,
             ];
             $hd = HdClass::addData($hdData);
             $isNewCustom = 1;

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

@@ -0,0 +1,18 @@
+<?php
+
+namespace bizHd\recharge\classes;
+
+use Yii;
+use bizHd\base\classes\BaseClass;
+
+class RechargeClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\recharge\models\Recharge';
+
+    public static function addRecharge($data)
+    {
+        return self::add($data, true);
+    }
+
+}

+ 15 - 0
biz-hd/recharge/models/Recharge.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizHd\recharge\models;
+
+use bizHd\base\models\Base;
+
+class Recharge extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhRecharge';
+    }
+
+}

+ 12 - 0
biz-hd/recharge/services/RechargeService.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace bizHd\recharge\services;
+
+use bizHd\base\services\BaseService;
+
+class RechargeService extends BaseService
+{
+
+    public static $baseFile = '\bizHd\recharge\classes\RechargeClass';
+
+}

+ 13 - 0
biz-mall/hd/classes/HdClass.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizMall\hd\classes;
+
+use Yii;
+use bizMall\base\classes\BaseClass;
+
+class HdClass extends BaseClass
+{
+
+    public static $baseFile = '\bizMall\Hd\models\Hd';
+
+}

+ 13 - 0
biz-mall/hd/models/Hd.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizMall\hd\models;
+use bizMall\base\models\Base;
+
+class Hd extends Base
+{
+	
+	public static function tableName()
+	{
+		return 'xhHd';
+	}
+	
+}

+ 12 - 0
biz-mall/hd/services/HdService.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace bizMall\hd\services;
+
+use bizMall\base\services\BaseService;
+
+class HdService extends BaseService
+{
+
+    public static $baseFile = '\bizMall\hd\classes\HdClass';
+
+}

+ 3 - 0
common/components/dict.php

@@ -389,6 +389,8 @@ class dict
             'ghsHelpCustomRechargeReturn' => ['id' => 75, 'name' => 'ghsHelpCustomRechargeReturn'],
             //客户叫供货商充值(售后返充)
             'customAskGhsRechargeReturn' => ['id' => 76, 'name' => 'customAskGhsRechargeReturn'],
+            //散客向零售花店充值
+            'skRechargeToHd' => ['id' => 77, 'name' => 'skRechargeToHd'],
         ],
         "capitalTypeList" => [//流水类型的对应链接,后台收支明细查看时跳转的链接
             0 => ['link' => '/capital/order-detail', 'name' => '网店', 'orderLink' => '/order/detail', 'id' => 0,],
@@ -437,6 +439,7 @@ class dict
             74 => ['link' => '', 'name' => '采购退款', 'id' => 74,],
             75 => ['link' => '', 'name' => '售后返充', 'id' => 75,],
             76 => ['link' => '', 'name' => '售后返充', 'id' => 76,],
+            77 => ['link' => '', 'name' => '充值', 'id' => 77,],
         ],
 
         //用户来源