Kirin 3 年之前
父節點
當前提交
922084075a
共有 1 個文件被更改,包括 25 次插入0 次删除
  1. 25 0
      app/models/game/Lottery.php

+ 25 - 0
app/models/game/Lottery.php

@@ -11,6 +11,7 @@ namespace app\models\game;
 use app\models\store\StoreOrder;
 use app\models\user\User;
 use app\models\user\UserBill;
+use app\models\user\UserLevel;
 use crmeb\traits\ModelTrait;
 use crmeb\basic\BaseModel;
 use think\Exception;
@@ -60,6 +61,7 @@ class Lottery extends BaseModel
             else $res1 = true;
             $ratio = bcdiv(sys_config('game_award_lake', 5, true), 100, 4);
             $res1 = $res1 && StoreOrder::addAwardLake(bcmul($all_integral, $ratio, 2), $res2->id, 'game');
+            $res1 = $res1 && self::groupIntegral($all_integral, $res2->id, $uid);
             if ($res1 && $res2) {
                 BaseModel::commitTrans();
                 return true;
@@ -73,6 +75,29 @@ class Lottery extends BaseModel
         }
     }
 
+    public static function groupIntegral($integral, $order_id, $uid): bool
+    {
+
+        $userInfo = User::getUserInfo($uid);
+        $spread = User::getUserInfo($userInfo['spread_uid']);
+        $send = 0;
+        $res = true;
+
+        while ($spread) {
+            $level = UserLevel::getUserLevelInfo(UserLevel::getUserLevel($spread['uid']));
+            if ($level) {
+                $integral = bcmul($integral, bcdiv($level['group_game_award'], 100, 4), 2);
+                if ($integral > $send) {
+                    $real_send = $integral - $send;
+                    $res = false != UserBill::income('团队用户参加游戏赠送积分', $spread['uid'], 'integral', 'group_gain', $real_send, $order_id, $spread['integral'], '团队用户参加游戏赠送' . floatval($real_send) . '积分', 0);
+                    $send = $integral;
+                }
+            }
+            $spread = User::getUserInfo($spread['spread_uid']);
+        }
+        return $res;
+    }
+
     public static function openLottery()
     {