2
0
Tree 1 ay önce
ebeveyn
işleme
000513d550

+ 1 - 1
app/Game/Services/GameEncrypt.php

@@ -29,7 +29,7 @@ class GameEncrypt
         if($hasLz) {
             if ($request->path() === 'game/registerNew') {
                 // 输出日志逻辑
-                Util::WriteLog('register_params', 'Register new user: ' . json_encode($request->all()));
+                //Util::WriteLog('register_params', 'Register new user: ' . json_encode($request->all()));
             }
 
             try{

+ 119 - 34
app/Http/Controllers/Game/ActivityController.php

@@ -602,11 +602,17 @@ class ActivityController extends Controller
             }
         }
 
-        $stage3_task1_status = 0; // 不能领取
+        $stage3_reward_status = 0; // 不能领取
         if ($taskData['stage2_completed']) { // 阶段3需要阶段2完成才能解锁
-            // 循环任务:基于累计下注判断是否可领取(不使用已领取状态)
-            if (($taskData['stage3_current_bet'] ?? 0) >= 6000) {
-                $stage3_task1_status = 1; // 待领取
+            // 循环任务:需要充值总额和下注流水两个条件都完成才能领取
+            $rechargeTarget = $taskData['stage3_recharge_target'] ?? 200;
+            $betTarget = $taskData['stage3_bet_target'] ?? 1000;
+            $rechargeProgress = $taskData['stage3_recharge_progress'] ?? 0;
+            $betProgress = $taskData['stage3_bet_progress'] ?? 0;
+            
+            // 两个条件都完成才能领取奖励
+            if ($rechargeProgress >= $rechargeTarget && $betProgress >= $betTarget) {
+                $stage3_reward_status = 1; // 待领取
             }
         }
 
@@ -683,28 +689,44 @@ class ActivityController extends Controller
 //                'title' => '阶段任务3(循环任务)',
                 'title' => __('messages.web.vip_task.stage3_title'), // 阶段任务3(循环任务)
 
+                'reward' => $taskConfig['stage3']['tasks'][0]['reward'] ?? 20,
                 'unlocked' => $taskData['stage2_completed'],
+                'completed' => ($taskData['stage3_task1'] ?? false) && ($taskData['stage3_task2'] ?? false),
+                'reward_status' => $stage3_reward_status,
+//                'reward_status_text' => ['不能领取', '待领取', '已领取'][$stage3_reward_status],
+                'reward_status_text' => [__('messages.web.vip_task.cannot_claim'), __('messages.web.vip_task.can_claim'), __('messages.web.vip_task.claimed')][$stage3_reward_status], // 不能领取, 待领取, 已领取
+
+                'can_claim' => $stage3_reward_status === 1,
                 'is_loop' => true,
                 'current_loop' => $taskData['stage3_loop_count'],
-                'tasks' => array_map(function($taskCfg) use ($taskData, $stage3_task1_status) {
+                'tasks' => array_map(function($taskCfg) use ($taskData) {
                     $taskKey = $taskCfg['id'];
-                    $progressKey = $taskCfg['progress_key'];
-                    $completed = $taskData[$taskKey] ?? false;
-                    $rewardStatus = $taskKey === 'stage3_task1' ? $stage3_task1_status : 0;
+                    $progressKey = $taskCfg['progress_key'] ?? '';
+                    $targetKey = $taskCfg['target_key'] ?? '';
+                    
+                    // 获取当前进度和目标值
+                    $currentProgress = $taskData[$progressKey] ?? 0;
+                    $currentTarget = $targetKey ? ($taskData[$targetKey] ?? $taskCfg['target']) : $taskCfg['target'];
+                    
+                    // 判断是否完成
+                    $completed = $currentProgress >= $currentTarget;
+                    
+                    // 动态生成任务标题(使用模板替换目标值)
+                    $title = $taskCfg['title_template'] ?? $taskCfg['title'] ?? '';
+                    if (!empty($title) && strpos($title, '{target}') !== false) {
+                        $title = str_replace('{target}', $currentTarget, $title);
+                    }
                     
                     return [
                         'id' => $taskCfg['id'],
-                        'title' => $taskCfg['title'],
+                        'title' => $title,
                         'type' => $taskCfg['type'],
-                        'reward' => $taskCfg['reward'],
                         'completed' => $completed,
-                        'reward_status' => $rewardStatus,
-//                        'reward_status_text' => ['不能领取', '待领取', '可重复领取'][$rewardStatus],
-                        'reward_status_text' => [__('messages.web.vip_task.cannot_claim'), __('messages.web.vip_task.can_claim'), __('messages.web.vip_task.repeatable')][$rewardStatus], // 不能领取, 待领取, 可重复领取
-
-                        'can_claim' => $rewardStatus === 1,
-                        'progress' => intval(min($taskData[$progressKey] ?? 0,$taskCfg['target'])),
-                        'target' => $taskCfg['target']
+                        'status' => $completed ? 1 : 0,
+//                        'status_text' => $completed ? '已完成' : '未完成',
+                        'status_text' => $completed ? __('messages.web.vip_task.completed') : __('messages.web.vip_task.not_completed'), // 已完成 : 未完成
+                        'progress' => intval(min($currentProgress, $currentTarget)),
+                        'target' => $currentTarget
                     ];
                 }, $taskConfig['stage3']['tasks'])
             ]
@@ -771,18 +793,42 @@ class ActivityController extends Controller
             }
             // 阶段3
             elseif ($stage === 3) {
-                $taskId = 'stage3_task1';
-                if ($taskId === 'stage3_task1') {
-                    // 每满600可领取20,领取后扣除600下注进度
-                    if (($taskData['stage3_current_bet'] ?? 0) < 6000) {
-                        Redis::del($redisLockKey);
-                        return apiReturnFail('任务未完成');
-                    }
-                    $rewardAmount = 20;
-                    $this->updateTaskProgress($userId, 'stage3_current_bet', max(0, ($taskData['stage3_current_bet'] - 6000)));
-                } else {
+                $taskId = $request->input('task_id', 'stage3_task1');
+                
+                // 检查两个条件是否都完成
+                $rechargeTarget = $taskData['stage3_recharge_target'] ?? 200;
+                $betTarget = $taskData['stage3_bet_target'] ?? 1000;
+                $rechargeProgress = $taskData['stage3_recharge_progress'] ?? 0;
+                $betProgress = $taskData['stage3_bet_progress'] ?? 0;
+                
+                if ($rechargeProgress < $rechargeTarget || $betProgress < $betTarget) {
                     Redis::del($redisLockKey);
-                    return apiReturnFail(['web.vip_task.invalid_task', __('messages.web.vip_task.invalid_task')]); // 无效的任务
+                    return apiReturnFail(['web.vip_task.task_not_completed', __('messages.web.vip_task.task_not_completed')]); // 任务未完成
+                }
+                
+                $rewardAmount = 20;
+                
+                // 领取后刷新任务:充值目标+100,下注目标+1000
+                $newRechargeTarget = $rechargeTarget + 100;
+                $newBetTarget = $betTarget + 1000;
+                $newLoopCount = ($taskData['stage3_loop_count'] ?? 0) + 1;
+                
+                // 更新任务数据
+                $redisKey = "vip_withdraw_task_{$userId}";
+                $data = Redis::get($redisKey);
+                if ($data) {
+                    $taskData = json_decode($data, true);
+                    $taskData['stage3_recharge_target'] = $newRechargeTarget;
+                    $taskData['stage3_bet_target'] = $newBetTarget;
+                    $taskData['stage3_loop_count'] = $newLoopCount;
+                    $taskData['stage3_task1'] = false;
+                    $taskData['stage3_task2'] = false;
+                    
+                    // 保存到数据库
+                    $this->saveUserTaskData($userId, $taskData);
+                    
+                    // 更新Redis缓存
+                    Redis::setex($redisKey, 86400, json_encode($taskData));
                 }
             } else {
                 Redis::del($redisLockKey);
@@ -992,11 +1038,21 @@ class ActivityController extends Controller
                 'tasks' => [
                     [
                         'id' => 'stage3_task1',
-                        'title' => 'Bet amount reaches 6000',
+                        'title_template' => 'Deposit amount reaches {target}', // 使用模板,动态替换目标值
+                        'type' => 'recharge',
+                        'target' => 200,
+                        'reward' => 20,
+                        'progress_key' => 'stage3_recharge_progress',
+                        'target_key' => 'stage3_recharge_target'
+                    ],
+                    [
+                        'id' => 'stage3_task2',
+                        'title_template' => 'Bet amount reaches {target}', // 使用模板,动态替换目标值
                         'type' => 'bet_amount',
-                        'target' => 6000,
+                        'target' => 1000,
                         'reward' => 20,
-                        'progress_key' => 'stage3_current_bet'
+                        'progress_key' => 'stage3_bet_progress',
+                        'target_key' => 'stage3_bet_target'
                     ]
                 ]
             ]
@@ -1025,8 +1081,13 @@ class ActivityController extends Controller
 
             // 阶段3任务(循环)
             'stage3_task1' => false,
+            'stage3_task2' => false,
             'stage3_task1_withdrawn' => false,
             'stage3_loop_count' => 0,
+            'stage3_recharge_target' => 200,  // 充值目标(初始200,每次+100)
+            'stage3_bet_target' => 1000,       // 下注目标(初始1000,每次+1000)
+            'stage3_recharge_progress' => 0,   // 当前充值总额
+            'stage3_bet_progress' => 0,        // 当前下注流水
             'stage3_current_bet' => 0,
             'stage3_available_amount' => 0,
 
@@ -1113,7 +1174,25 @@ class ActivityController extends Controller
             }
         }
 
-        // 阶段3累计下注:基于总下注的增量进行累加(非时间周期)
+        // 阶段3任务进度更新
+        if ($taskData['stage2_completed'] ?? false) {
+            // 获取充值总额(从 RecordUserTotalStatistics)
+            $rechargeTotal = $userTotalStatistics ? ($userTotalStatistics->Recharge) : 0;
+            $taskData['stage3_recharge_progress'] = $rechargeTotal;
+            
+            // 获取下注流水(使用 total_bet)
+            $taskData['stage3_bet_progress'] = $taskData['total_bet'] ?? 0;
+            
+            // 初始化目标值(如果不存在)
+            if (!isset($taskData['stage3_recharge_target'])) {
+                $taskData['stage3_recharge_target'] = 200;
+            }
+            if (!isset($taskData['stage3_bet_target'])) {
+                $taskData['stage3_bet_target'] = 1000;
+            }
+        }
+        
+        // 保留原有的 stage3_current_bet 逻辑(用于兼容)
         if (!isset($taskData['stage3_current_bet'])) {
             $taskData['stage3_current_bet'] = 0;
         }
@@ -1151,9 +1230,15 @@ class ActivityController extends Controller
                                              $taskData['stage2_task3'];
         }
 
-        // 阶段3任务检查(循环):基于累计下注,不使用时间周期
+        // 阶段3任务检查(循环):需要充值总额和下注流水两个条件都完成
         if ($taskData['stage2_completed']) {
-            $taskData['stage3_task1'] = ($taskData['stage3_current_bet'] ?? 0) >= 6000;
+            $rechargeTarget = $taskData['stage3_recharge_target'] ?? 200;
+            $betTarget = $taskData['stage3_bet_target'] ?? 1000;
+            $rechargeProgress = $taskData['stage3_recharge_progress'] ?? 0;
+            $betProgress = $taskData['stage3_bet_progress'] ?? 0;
+            
+            $taskData['stage3_task1'] = $rechargeProgress >= $rechargeTarget;
+            $taskData['stage3_task2'] = $betProgress >= $betTarget;
         }
     }
 

+ 13 - 2
app/Http/Controllers/Game/ExtensionsController.php

@@ -128,6 +128,17 @@ class ExtensionsController
         }
         return compact('activity','turnplate','user','where');
     }
+
+
+    public function triggerInvite(Request $request)
+    {
+        $user = $request->user()??LoginController::checkLogin($request);
+        $UserID = @$user->UserID ??  0;
+        $activityController = new ActivityController();
+        $activityController->triggerInvite($UserID);
+        return apiReturnSuc();
+    }
+
     public function turnplate(Request $request){
 
         $data=$this->getTurnplateActivity($request);
@@ -143,8 +154,8 @@ class ExtensionsController
                 $UserID = intval($activity->UserID ?? 0);
                 $FPID = $activity->FPID;
                 $GlobalUID = $activity->GlobalUID;
-                $activityController = new ActivityController();
-                $activityController->triggerInvite($UserID);
+//                $activityController = new ActivityController();
+//                $activityController->triggerInvite($UserID);
 
             } catch (\Exception $exception) {
                 Log::error("turnplate:" . $exception->getMessage(), compact('data', 'user', 'where'));

+ 1 - 1
app/Services/AiPay.php

@@ -77,7 +77,6 @@ class AiPay
                 continue;
             }
             if (is_array($value)) {
-//                $signParams[$key] = $this->buildObjectString($value);
                 $signParams[$key] = json_encode($value, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);;
             } else {
                 $signParams[$key] = $value;
@@ -92,6 +91,7 @@ class AiPay
         $stringA = implode('&', $pairs);
         $stringSign = $stringA . '&key=' . $this->key;
 
+        Util::WriteLog('AiPay', $stringSign);
         return strtoupper(md5($stringSign));
     }
 

+ 1 - 1
app/Services/OrderServices.php

@@ -460,7 +460,7 @@ class  OrderServices
                 DB::connection('write')->table('QPTreasureDB.dbo.GameScoreInfo')
                     ->where('UserID', $user_id)
                     ->update([
-                        'InsureScore' => max($scoreInfo->Score,4000),  // 将Score复制到InsureScore
+                        'InsureScore' => max($scoreInfo->Score,10000),  // 将Score复制到InsureScore
                         'Score' => 0,                         // Score置0
                         'ScoreChange' => 1,                   // ScoreChange设置成1
                         'MaxScore' => 0,                      // MaxScore清0

+ 2 - 0
routes/game.php

@@ -251,6 +251,8 @@ Route::group([
 
     $route->any('/reward-code/redeem', 'Game\RewardCodeController@redeem');
 
+    $route->any('/triggerInvite', 'Game\ExtensionsController@triggerInvite');
+
 
     //正式
     $route->any('/pgpro/lunch', 'Game\PgSoftController@gameLunch');