wesmiler 3 年之前
父節點
當前提交
1a2d3ce367

+ 2 - 0
source/application/api/controller/Order.php

@@ -48,6 +48,7 @@ class Order extends Controller
         // 订单结算api参数
         $params = $Checkout->setParam($this->getParam([
             'goods_id' => 0,
+            'is_upgrade' => 0,
             'goods_num' => 0,
             'goods_sku_id' => '',
         ]));
@@ -72,6 +73,7 @@ class Order extends Controller
             return $this->renderError($Checkout->getError());
         }
         // 创建订单
+        var_dump($orderInfo);
         if (!$Checkout->createOrder($orderInfo)) {
             return $this->renderError($Checkout->getError() ?: '订单创建失败');
         }

+ 1 - 4
source/application/api/model/Order.php

@@ -245,10 +245,7 @@ class Order extends OrderModel
                 'receipt_time' => time(),
                 'order_status' => 30
             ]);
-//            // 获取已完成的订单
-//            $completed = self::detail($this['order_id'], [
-//                'user', 'address', 'goods', 'express',    // 用于好物圈
-//            ]);
+
             // 执行订单完成后的操作
             $OrderCompleteService = new OrderCompleteService(OrderTypeEnum::MASTER);
             $OrderCompleteService->complete([$this], static::$wxapp_id);

+ 3 - 0
source/application/api/service/order/Checkout.php

@@ -316,6 +316,8 @@ class Checkout
             'is_allow_points' => false,
             // 是否使用积分抵扣
             'is_use_points' => $this->param['is_use_points'],
+            // 是否升级商品订单
+            'is_upgrade' => $this->param['is_upgrade'],
             // 积分抵扣金额
             'points_money' => 0.00,
             // 赠送的积分数量
@@ -706,6 +708,7 @@ class Checkout
             'pay_price' => $order['order_pay_price'],
             'delivery_type' => $order['delivery'],
             'pay_type' => $order['pay_type'],
+            'is_upgrade' => isset($order['is_upgrade'])? $order['is_upgrade'] : 0,
             'buyer_remark' => trim($remark),
             'order_source' => $this->orderSource['source'],
             'order_source_id' => $this->orderSource['source_id'],

+ 2 - 0
source/application/api/service/order/PaySuccess.php

@@ -89,11 +89,13 @@ class PaySuccess extends Basics
             }
         }
         // 事务处理
+
         $this->model->transaction(function () use ($payType, $payData) {
             // 更新订单状态
             $this->updateOrderInfo($payType, $payData);
             // 累积用户总消费金额
             $this->user->setIncPayMoney($this->model['pay_price']);
+
             // 记录订单支付信息
             $this->updatePayInfo($payType);
         });

+ 25 - 0
source/application/common/model/User.php

@@ -141,6 +141,17 @@ class User extends BaseModel
     }
 
     /**
+     * 累积用户升级总消费金额
+     * @param $money
+     * @return int|true
+     * @throws \think\Exception
+     */
+    public function setIncUpgradePayMoney($money)
+    {
+        return $this->setInc('expend_upgrade_money', $money);
+    }
+
+    /**
      * 累积用户实际消费的金额 (批量)
      * @param $data
      * @return array|false
@@ -155,6 +166,20 @@ class User extends BaseModel
     }
 
     /**
+     * 累积用户实际升级消费的金额 (批量)
+     * @param $data
+     * @return array|false
+     * @throws \Exception
+     */
+    public function onBatchIncUpgradeMoney($data)
+    {
+        foreach ($data as $userId => $money) {
+            $this->where(['user_id' => $userId])->setInc('expend_upgrade_money', $money);
+        }
+        return true;
+    }
+
+    /**
      * 累积用户的可用积分数量 (批量)
      * @param $data
      * @return array|false

+ 8 - 0
source/application/common/service/order/Complete.php

@@ -6,6 +6,7 @@ use app\common\library\helper;
 use app\common\model\User as UserModel;
 use app\common\model\Setting as SettingModel;
 use app\common\model\dealer\Order as DealerOrderModel;
+use app\common\model\user\Grade;
 use app\common\model\user\PointsLog as PointsLogModel;
 use app\common\service\wechat\wow\Order as WowService;
 use app\common\enum\OrderType as OrderTypeEnum;
@@ -74,10 +75,12 @@ class Complete
         if (SettingModel::getItem('trade', $wxappId)['order']['refund_days'] == 0) {
             $this->settled($orderList);
         }
+
         // 发放分销商佣金
         foreach ($orderList as $order) {
             DealerOrderModel::grantMoney($order, $this->orderType);
         }
+
         // 更新好物圈订单状态
         if ($this->orderType == OrderTypeEnum::MASTER) {
             (new WowService($wxappId))->update($orderList);
@@ -159,9 +162,11 @@ class Complete
     {
         // 计算并累积实际消费金额(需减去售后退款的金额)
         $userData = [];
+        $upgradeData = [];
         foreach ($orderList as $order) {
             // 订单实际支付金额
             $expendMoney = $order['pay_price'];
+            $upgradeMoney = $order['is_upgrade']? $order['pay_price'] : 0;
             // 减去订单退款的金额
             foreach ($order['goods'] as $goods) {
                 if (
@@ -170,13 +175,16 @@ class Complete
                     && $goods['refund']['is_agree']['value'] == 10  // 商家审核:已同意
                 ) {
                     $expendMoney -= $goods['refund']['refund_money'];
+                    $upgradeMoney -= $goods['refund']['refund_money'];
                 }
             }
             !isset($userData[$order['user_id']]) && $userData[$order['user_id']] = 0.00;
             $expendMoney > 0 && $userData[$order['user_id']] += $expendMoney;
+            $upgradeMoney > 0 && $upgradeData[$order['user_id']] += $expendMoney;
         }
         // 累积到会员表记录
         $this->UserModel->onBatchIncExpendMoney($userData);
+        $this->UserModel->onBatchIncUpgradeMoney($upgradeData);
         return true;
     }
 

+ 1 - 1
source/application/store/view/user/grade/index.php

@@ -41,7 +41,7 @@
                                     <td class="am-text-middle"><?= $item['name'] ?></td>
                                     <td class="am-text-middle"><?= $item['weight'] ?></td>
                                     <td class="am-text-middle">
-                                        <span>消费满<?= $item['upgrade']['expend_money'] ?>元</span>
+                                        <span>购买升级商品满<?= $item['upgrade']['expend_money'] ?>元</span>
                                     </td>
                                     <td class="am-text-middle">
                                         <span><?= $item['equity']['discount'] ?>折</span>

+ 1 - 1
source/application/task/model/User.php

@@ -46,7 +46,7 @@ class User extends UserModel
                 $query->where('user.grade_id', '=', 0);
                 $query->whereOr('grade.weight', '<', $upgradeGrade['weight']);
             })
-            ->where('user.expend_money', '>=', $upgradeGrade['upgrade']['expend_money'])
+            ->where('user.expend_upgrade_money', '>=', $upgradeGrade['upgrade']['expend_money'])
             ->where('user.is_delete', '=', 0)
             ->select();
     }