WIN-2308041133\Administrator 5 months ago
parent
commit
28a74e2c4c
1 changed files with 33 additions and 1 deletions
  1. 33 1
      app/models/store/StoreOrder.php

+ 33 - 1
app/models/store/StoreOrder.php

@@ -384,13 +384,45 @@ class StoreOrder extends BaseModel
                 //佣金抵扣
                 $res2 = true;
                 $SurplusIntegral = $userInfo['brokerage_price'];
+                if ($payIntegral > 0) {
+                    if ($userInfo['brokerage_price'] < $payIntegral) {
+                        return self::setErrorInfo('健康币不足', true);
+                    } else {
+                        $res2 = false !== User::bcDec($userInfo['uid'], 'brokerage_price', $payIntegral, 'uid');
+                    }
+                    $SurplusIntegral = bcsub($userInfo['brokerage_price'], $payIntegral, 2);
+                    $res2 = $res2 && false != UserBill::expend('积分商品', $uid, 'brokerage_price', 'brokerage_product', $payIntegral, $key, $SurplusIntegral, '购买健康商品使用' . $payIntegral . '健康币');
+                }
+//                健康币抵扣  $other['integralRatio']是积分抵扣比例
+                if ($useIntegral && $SurplusIntegral > 0) {
+                    $deductionPrice = (float)bcmul($SurplusIntegral, $other['integralRatio'], 2);
+                    if ($deductionPrice < $payPrice) {
+                        $payPrice = bcsub($payPrice, $deductionPrice, 2);
+                        $usedIntegral = $SurplusIntegral;
+                        $SurplusIntegral = 0;
+                        $res2 = false !== User::edit(['brokerage_price' => 0], $userInfo['uid'], 'uid');
+                    } else {
+                        $deductionPrice = $payPrice;
+                        $usedIntegral = (float)bcdiv($payPrice, $other['integralRatio'], 2);
+                        $SurplusIntegral = bcsub($SurplusIntegral, $usedIntegral, 2);
+                        $res2 = false !== User::bcDec($userInfo['uid'], 'brokerage_price', $usedIntegral, 'uid');
+                        $payPrice = 0;
+                    }
+                    $res2 = $res2 && false != UserBill::expend('健康币抵扣', $uid, 'brokerage_price', 'deduction', $usedIntegral, $key, $SurplusIntegral, '购买商品使用' . floatval($usedIntegral) . '健康币抵扣' . floatval($deductionPrice) . '元');
+                } else {
+                    $deductionPrice = 0;
+                    $usedIntegral = 0;
+                }
+                if (!$res2) return self::setErrorInfo('使用健康币抵扣失败!', true);
+                if ($payPrice <= 0) $payPrice = 0;
+
             }else{
                 //积分抵扣
                 $res2 = true;
                 $SurplusIntegral = $userInfo['integral'];
                 if ($payIntegral > 0) {
                     if ($userInfo['integral'] < $payIntegral) {
-                        return self::setErrorInfo('积分不足', true);
+                        return self::setErrorInfo('健康豆不足', true);
                     } else {
                         $res2 = false !== User::bcDec($userInfo['uid'], 'integral', $payIntegral, 'uid');
                     }