WIN-2308041133\Administrator 5 months ago
parent
commit
b46f6d9cdc

+ 15 - 3
app/api/controller/order/StoreOrderController.php

@@ -227,9 +227,20 @@ class StoreOrderController
                         }
                     }
                     break;
-                case 'yue':
-                    if (StoreOrder::yuePay($orderId, $request->uid(), $formId))
-                        return app('json')->status('success', '余额支付成功', $info);
+//                case 'yue':
+//                    if (StoreOrder::yuePay($orderId, $request->uid(), $formId))
+//                        return app('json')->status('success', '余额支付成功', $info);
+//                    else {
+//                        $errorinfo = StoreOrder::getErrorInfo();
+//                        if (is_array($errorinfo))
+//                            return app('json')->status($errorinfo['status'], $errorinfo['msg'], $info);
+//                        else
+//                            return app('json')->status('pay_error', $errorinfo);
+//                    }
+//                    break;
+                case 'brokerage':  //佣金支付就是健康币支付
+                    if (StoreOrder::brokeragePay($orderId, $request->uid(), $formId))
+                        return app('json')->status('success', '健康币支付成功', $info);
                     else {
                         $errorinfo = StoreOrder::getErrorInfo();
                         if (is_array($errorinfo))
@@ -238,6 +249,7 @@ class StoreOrderController
                             return app('json')->status('pay_error', $errorinfo);
                     }
                     break;
+
                 case 'offline':
                     return app('json')->status('success', '订单创建成功', $info);
                     break;

+ 34 - 0
app/models/store/StoreOrder.php

@@ -681,7 +681,41 @@ class StoreOrder extends BaseModel
         self::checkTrans($res);
         return $res;
     }
+    /**
+     * 佣金(健康币)支付
+     * @param $order_id
+     * @param $uid
+     * @param string $formId
+     * @return bool
+     * @throws \think\Exception
+     * @throws DataNotFoundException
+     * @throws ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public static function brokeragePay($order_id, $uid, $formId = '')
+    {
+        $orderInfo = self::where('uid', $uid)->where('order_id', $order_id)->where('is_del', 0)->find();
+        if (!$orderInfo) return self::setErrorInfo('订单不存在!');
+        if ($orderInfo['paid']) return self::setErrorInfo('该订单已支付!');
+//        if($orderInfo['pay_type'] != 'yue') return self::setErrorInfo('该订单不能使用余额支付!');
+        $userInfo = User::getUserInfo($uid);
+        if ($userInfo['brokerage_price'] < $orderInfo['pay_price'])
+            return self::setErrorInfo(['status' => 'pay_deficiency', 'msg' => '健康币不足' . floatval($orderInfo['pay_price'])]);
+        self::beginTrans();
 
+        $res1 = false !== User::bcDec($uid, 'brokerage_price', $orderInfo['pay_price'], 'uid');
+        $res2 = UserBill::expend('购买商品', $uid, 'brokerage_price', 'pay_product', $orderInfo['pay_price'], $orderInfo['id'], $userInfo['brokerage_price'], '健康币支付' . floatval($orderInfo['pay_price']) . '元购买商品');
+        $res3 = self::paySuccess($order_id, 'yue', $formId);//余额支付成功
+        try {
+            PaymentRepositories::brokeragePayProduct($userInfo, $orderInfo);
+        } catch (\Exception $e) {
+            self::rollbackTrans();
+            return self::setErrorInfo($e->getMessage());
+        }
+        $res = $res1 && $res2 && $res3;
+        self::checkTrans($res);
+        return $res;
+    }
     /**
      * 微信支付 为 0元时
      * @param $order_id

+ 1 - 0
app/models/store/StoreProduct.php

@@ -295,6 +295,7 @@ class StoreProduct extends BaseModel
             }
         } else {
             foreach ($list as &$item) {
+                var_dump($item);die();
                 if ($item['is_inclusive'] == 0 && $item['is_points'] == 0 && $item['is_explosive'] == 0) {
 //                @file_put_contents('quanju.txt',  json_encode($item)."-5\r\n", 8);
                     $item['vip_price'] = isset($item['price']) ? bcsub($item['price'], bcmul($discount, $item['price'], 2), 2) : 0;

+ 10 - 0
crmeb/repositories/PaymentRepositories.php

@@ -41,6 +41,16 @@ class PaymentRepositories
     {
 
 
+    }
+    /**
+     * 使用佣金(健康币)支付订单时
+     * @param $userInfo
+     * @param $orderInfo
+     */
+    public static function brokeragePayProduct($userInfo, $orderInfo)
+    {
+
+
     }
 
     /**