WIN-2308041133\Administrator 5 months ago
parent
commit
b7205a3025

+ 18 - 0
app/common/model/user/GiftReward.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace app\common\model\user;
+
+use app\common\model\BaseModel;
+
+class GiftReward extends BaseModel
+{
+    public static function tablePk(): ?string
+    {
+        return 'id';
+    }
+
+    public static function tableName(): string
+    {
+        return 'gift_reward';
+    }
+}

+ 26 - 7
app/common/repositories/store/order/StoreOrderRepository.php

@@ -16,6 +16,7 @@ use app\common\model\store\product\Product;
 use app\common\model\system\merchant\Merchant;
 use app\common\model\user\AwardLake;
 use app\common\model\user\GiftLevel;
+use app\common\model\user\GiftReward;
 use app\common\model\user\OilLevel;
 use app\common\repositories\user\AwardIntegralPriceRepository;
 use app\controller\api\server\StoreProduct;
@@ -1186,7 +1187,7 @@ class StoreOrderRepository extends BaseRepository
                 @file_put_contents('quanju2.txt', $res . "-结果\r\n", 8);
 //            }
 //            礼包购买数
-            $this->pack_count($order['uid']);
+            $this->pack_count($order['uid'],$order['pay_price']);
         }
 
         $award_integral = $user['award_integral'];
@@ -1275,13 +1276,22 @@ class StoreOrderRepository extends BaseRepository
     }
 
 //礼包购买数
-    public function pack_count($uid)
+    public function pack_count($uid,$price)
     {
 //            增加上级礼包购买数
         $spread_uid = User::where('uid', $uid)->value('spread_uid');
         if ($spread_uid > 0){
-            $pack_count = User::where('uid', $spread_uid)->value('pack_count');
-            User::where('uid', $spread_uid)->update(['pack_count' => bcadd($pack_count, 1, 0)]);
+            $count = GiftReward::where('uid',$spread_uid)->where('price',$price)->find();
+            if (!empty($count)){
+                $spread_count = bcadd($count['count'], 1, 0);
+                GiftReward::where('uid',$spread_uid)->where('price',$price)->update(['count' => $spread_count,'update_time'=>time()]);
+        }else{
+                GiftReward::create(['uid' => $spread_uid, 'price' => $price, 'count' => 1,'update_time'=>time()]);
+            }
+
+
+//            $pack_count = User::where('uid', $spread_uid)->value('pack_count');
+//            User::where('uid', $spread_uid)->update(['pack_count' => bcadd($pack_count, 1, 0)]);
         }
 
         return true;
@@ -1338,7 +1348,8 @@ class StoreOrderRepository extends BaseRepository
                     @file_put_contents('quanju.txt', "-村上春树5\r\n", 8);
                     break;
                 case 6:  //礼包商品
-                    $pack_count = User::where('uid', $user['spread_uid'])->value('pack_count'); //上级礼包数量
+//                    $pack_count = User::where('uid', $user['spread_uid'])->value('pack_count'); //上级礼包数量
+                    $pack_count = GiftReward::where('uid', $user['spread_uid'])->where('price', $order['pay_price'])->value('count'); //上级礼包数量
 //                    $pack_count = bcadd($pack_count, 1, 2);
 //                    @file_put_contents('quanju.txt', $pack_count. "-礼包数加一\r\n", 8);
                     $remainder = bcmod($pack_count, 3);  //取余
@@ -1495,7 +1506,11 @@ class StoreOrderRepository extends BaseRepository
                 @file_put_contents('quanju.txt', json_encode($v) . "-团队奖励等级信息\r\n", 8);
                 @file_put_contents('quanju.txt', $level_price . "-团队奖励等级奖励金额\r\n", 8);
                 foreach ($group_info as &$value) {  //遍历上级统计总业绩
-                    if ($value[$field] >= $v['grade']) {  //判断是否达到该等级
+                    $user_grade = $model->where('id',$value[$field])->value('grade');  //用户等级
+                    if ($user_grade <= 0){
+                        $user_grade = $value[$field];
+                    }
+                    if ($user_grade >= $v['grade']) {  //判断是否达到该等级
                         @file_put_contents('quanju.txt', $value[$field] . "-团队奖励用户等级\r\n", 8);
                         $GiftLevel = app()->make(GiftLevel::class);
                         $group_users = $GiftLevel->get_group_user($value['uid']);  //获取上级的用户和总业绩
@@ -1509,7 +1524,11 @@ class StoreOrderRepository extends BaseRepository
                 }
                 @file_put_contents('quanju.txt', $all_performance . "-团队奖励所有人总业绩\r\n", 8);
                 foreach ($group_info as &$value) {  //遍历上级分红
-                    if ($value[$field] >= $v['grade']) {
+                    $user_grade = $model->where('id',$value[$field])->value('grade');  //用户等级
+                    if ($user_grade <= 0){
+                        $user_grade = $value[$field];
+                    }
+                    if ($user_grade >= $v['grade']) {
                         $user_retio = bcdiv($value['performance'], $all_performance, 2);  //用户奖励比例
                         @file_put_contents('quanju.txt', $value['uid'] . "-团队奖励分红uid\r\n", 8);
                         @file_put_contents('quanju.txt', $user_retio . "-团队奖励业绩分红比例\r\n", 8);