WIN-2308041133\Administrator 5 月之前
父節點
當前提交
d5535237a2

+ 3 - 1
app/common/model/user/GiftLevel.php

@@ -3,6 +3,7 @@
 namespace app\common\model\user;
 
 use app\common\model\BaseModel;
+use app\common\model\store\order\StoreOrder;
 
 class GiftLevel extends BaseModel
 {
@@ -24,7 +25,8 @@ class GiftLevel extends BaseModel
         $group_users = get_group_user($user);
         //Todo 获取在$group_users内所有用户的消费情况
         $achievement = 0;
-        //获取业绩 $user
+        //获取该用户购买过的礼包商品的全部订单
+        $achievement = StoreOrder::where('uid','in', $group_users)->where('paid', 1)->where('product_type',6)->whereNotIn('status',-1)->sum('pay_price');
 
         $old_level = self::where('id', $user['level'])->find();
         if (!$old_level) $old_level = [

+ 1 - 1
app/common/model/user/OilLevel.php

@@ -25,7 +25,7 @@ class OilLevel extends BaseModel
         //Todo 获取在$group_users内所有用户的消费情况
         $achievement = 0;
         //获取该用户购买过的节能油商品的全部订单
-        $achievement = StoreOrder::where('uid', $uid)->where('paid', 1)->where('product_type',5)->whereNotIn('status',-1)->sum('pay_price');
+        $achievement = StoreOrder::wher('uid', 'in',$group_users)->where('paid', 1)->where('product_type',5)->whereNotIn('status',-1)->sum('pay_price');
 
         $old_level = self::where('id', $user['level'])->find();
         if (!$old_level) $old_level = [

+ 13 - 5
app/common/repositories/store/order/StoreOrderRepository.php

@@ -13,6 +13,8 @@ namespace app\common\repositories\store\order;
 
 use app\common\model\store\order\StoreCart;
 use app\common\model\store\product\Product;
+use app\common\model\user\GiftLevel;
+use app\common\model\user\OilLevel;
 use app\controller\api\server\StoreProduct;
 use think\facade\Cache;
 use app\common\dao\store\order\StoreOrderDao;
@@ -1076,7 +1078,7 @@ class StoreOrderRepository extends BaseRepository
         });
         // 触发订单领取后的事件。
         event('order.take', compact('order'));
-//        订单赠送的分红额度和积分处理还是礼包购买数处理
+//        订单赠送的分红额度和积分处理还是礼包购买数处理,顺便检测升级
         $this->getOrderAward($order);
     }
 
@@ -1086,12 +1088,12 @@ class StoreOrderRepository extends BaseRepository
         $cartIdArray = explode(',', $order['cart_id']); // 使用逗号分割字符串
         $product_id = StoreCart::where('cart_id', $cartIdArray[0])->value('product_id');
         $storeProduct = app()->make(Product::class);
-        $product_type =$storeProduct->where('product_id', $product_id)->value('type');
+        $type =$storeProduct->where('product_id', $product_id)->value('type');
         // 创建用户账单仓库实例
         $make = app()->make(UserBillRepository::class);
         $user = User::where('uid', $order['uid'])->find();
         $award_range = $user['award_range'];
-        if ($product_type == 5) {  //节能油商品
+        if ($type == 5) {  //节能油商品
             $number = systemConfig('award_energy_saving_oil', 1);
             if ($order['pay_price'] >= $number) {
                 $order_award_range = bcmul($order['pay_price'], 3, 2);
@@ -1105,7 +1107,7 @@ class StoreOrderRepository extends BaseRepository
                     'mark' => $user['nickname'] . '成功消费节能油商品' . floatval($order['pay_price']) . '元,奖励分红额度' . $order_award_range,
                 ]);
             }
-        } elseif ($product_id == 6) {  //礼包商品
+        } elseif ($type == 6) {  //礼包商品
             $number = systemConfig('award_energy_saving_oil', 1);
             if ($order['pay_price'] >= $number) {
                 $order_award_range = bcmul($order['pay_price'], 3, 2);
@@ -1158,7 +1160,13 @@ class StoreOrderRepository extends BaseRepository
         $UserRepository = app()->make(UserRepository::class);
         $UserRepository->checkAward($order['uid']);
 //        上级推荐奖励的分红积分
-        $this->getSpreadIntegral($order, $product_type,$user);
+        $this->getSpreadIntegral($order, $type,$user);
+//        检测节能油或者礼包升级
+        if ($type==5){
+            OilLevel::checkLevel($order['uid']);
+        }elseif ($type==6){
+            GiftLevel::checkLevel($order['uid']);
+        }
     }
 
 //礼包购买数