|
|
@@ -1291,7 +1291,7 @@ class PayRechargeController extends Controller
|
|
|
if ($status == 1 && $amount !== null) {
|
|
|
$sevenPercent = 140 + max(0, $inactiveDays - 3) * 10;
|
|
|
$sevenPercent = min($sevenPercent, 200);
|
|
|
- $totalRewardPercent = 120 + $sevenPercent; // 120% 立即 + 7日礼包%
|
|
|
+ $totalRewardPercent = 20 + $sevenPercent; // 120% 立即 + 7日礼包%
|
|
|
|
|
|
$gear = DB::table('agent.dbo.recharge_gear')
|
|
|
->select('money', 'favorable_price', 'gear', 'give')
|
|
|
@@ -1329,10 +1329,14 @@ class PayRechargeController extends Controller
|
|
|
}
|
|
|
$payload['amount'] = $amount;
|
|
|
$payload['total_reward_percent'] = $totalRewardPercent;
|
|
|
- $payload['extra_reward'] = round($amount*$totalRewardPercent/100);
|
|
|
- $payload['total_reward'] = round($amount*$totalRewardPercent/100)+$amount;
|
|
|
+ $payload['extra_reward'] = round($amount*$totalRewardPercent/100,2);
|
|
|
+ $payload['total_reward'] = round($amount*$totalRewardPercent/100+$amount,2);
|
|
|
} else {
|
|
|
$payload['amount'] = $amount;
|
|
|
+
|
|
|
+ if($record){
|
|
|
+ $payload['total_reward_percent'] = $record->total_percent-100;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return apiReturnSuc($payload);
|
|
|
@@ -1358,12 +1362,12 @@ class PayRechargeController extends Controller
|
|
|
return apiReturnFail(['web.gift.vip_inactive_no_record', __('web.gift.vip_inactive_no_record')]);
|
|
|
}
|
|
|
|
|
|
- // 计算从充值完成后的第几天(从第1天开始,即充值的次日)
|
|
|
- // 如果created_at是2024-01-01,今天是2024-01-02,daysPassed=1,表示可以领取第1天的奖励
|
|
|
+ // 计算从充值完成后的第几天(第1天为充值当天)
|
|
|
+ // 如果 created_at 是 2024-01-01,今天是 2024-01-01,daysPassed=0,表示可以领取第1天的奖励
|
|
|
$createdDate = date('Y-m-d', strtotime($record->created_at));
|
|
|
$today = date('Y-m-d');
|
|
|
$daysPassed = floor((strtotime($today) - strtotime($createdDate)) / 86400);
|
|
|
- // daysPassed = 0 表示充值当天(还不能领取),1 表示充值的次日(可以领取第1天),以此类推
|
|
|
+ // daysPassed = 0 表示充值当天(第1天),1 表示第2天,以此类推
|
|
|
|
|
|
// 检查是否已过期(超过7天)
|
|
|
$expiredAt = strtotime($record->expired_at);
|
|
|
@@ -1372,14 +1376,14 @@ class PayRechargeController extends Controller
|
|
|
$perDayAmount = (float)$record->per_day_amount;
|
|
|
$claimedMask = (int)$record->claimed_days_mask;
|
|
|
|
|
|
- // 构建每一天的状态
|
|
|
+ // 构建每一天的状态(第1天为充值当天,对应 daysPassed = 0)
|
|
|
$days = [];
|
|
|
for ($day = 1; $day <= 7; $day++) {
|
|
|
$dayIndex = $day - 1; // 位索引:day1对应bit0
|
|
|
$isClaimed = ($claimedMask & (1 << $dayIndex)) > 0;
|
|
|
|
|
|
- // 计算这一天对应的日期(充值后第day天)
|
|
|
- $targetDate = date('Ymd', strtotime($record->created_at . ' +' . $day . ' days'));
|
|
|
+ // 计算这一天对应的日期(充值后第 day-1 天;第1天为充值当天)
|
|
|
+ $targetDate = date('Ymd', strtotime($record->created_at . ' +' . ($day - 1) . ' days'));
|
|
|
|
|
|
// 判断状态
|
|
|
// 0=不可领取, 1=可领取, 2=已领取, 3=过期
|
|
|
@@ -1396,15 +1400,17 @@ class PayRechargeController extends Controller
|
|
|
$betAmount = $todayBet / NumConfig::NUM_VALUE; // 转换为元
|
|
|
}
|
|
|
|
|
|
+ $dayOffset = $day - 1; // 第1天对应 offset=0
|
|
|
+
|
|
|
if ($isClaimed) {
|
|
|
$dayStatus = 2; // 已领取
|
|
|
- } elseif ($daysPassed > $day) {
|
|
|
+ } elseif ($daysPassed > $dayOffset) {
|
|
|
// 已过这一天但未领取:过期
|
|
|
// 例如:今天是第4天(daysPassed=4),但第3天的奖励还没领取,则第3天过期
|
|
|
$dayStatus = 3; // 过期
|
|
|
- } elseif ($daysPassed < $day) {
|
|
|
- // 还没到这一天:第day天的奖励需要在充值后的第day天才能领取
|
|
|
- // 例如:第1天奖励需要daysPassed >= 1(充值的次日)才能领取
|
|
|
+ } elseif ($daysPassed < $dayOffset) {
|
|
|
+ // 还没到这一天:第 day 天的奖励需要在充值后的第 day-1 天才能领取
|
|
|
+ // 例如:第1天奖励需要 daysPassed >= 0(充值当天)才能领取
|
|
|
$dayStatus = 0; // 不可领取
|
|
|
} elseif ($isExpired || $daysPassed >= 7) {
|
|
|
// 整体过期(超过7天)时,未领取的奖励都过期
|
|
|
@@ -1467,7 +1473,7 @@ class PayRechargeController extends Controller
|
|
|
return apiReturnSuc([
|
|
|
'record' => [
|
|
|
'pay_amount' => (float)$record->pay_amount,
|
|
|
- 'total_percent' => (float)$record->total_percent,
|
|
|
+ 'total_percent' => (float)$record->total_percent-100,
|
|
|
'seven_days_percent' => (float)$record->seven_days_percent,
|
|
|
'per_day_amount' => $perDayAmount,
|
|
|
'inactive_days' => (int)$record->inactive_days,
|
|
|
@@ -1492,9 +1498,9 @@ class PayRechargeController extends Controller
|
|
|
$userId = $user->UserID;
|
|
|
$day = (int)$request->input('day', 0);
|
|
|
|
|
|
- if ($day < 1 || $day > 7) {
|
|
|
- return apiReturnFail(['web.gift.invalid_reward_type', __('web.gift.invalid_reward_type')]);
|
|
|
- }
|
|
|
+// if ($day < 1 || $day > 7) {
|
|
|
+// return apiReturnFail(['web.gift.invalid_reward_type', __('web.gift.invalid_reward_type')]);
|
|
|
+// }
|
|
|
|
|
|
// 获取 7 日礼包记录
|
|
|
$record = DB::table('agent.dbo.inactive_vip_gift_records')
|
|
|
@@ -1512,6 +1518,15 @@ class PayRechargeController extends Controller
|
|
|
return apiReturnFail(['web.gift.vip_inactive_expired', __('web.gift.vip_inactive_expired')]);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ // 计算从充值完成后的第几天(第1天为充值当天)
|
|
|
+ $createdDate = date('Y-m-d', strtotime($record->created_at));
|
|
|
+ $today = date('Y-m-d');
|
|
|
+ $daysPassed = floor((strtotime($today) - strtotime($createdDate)) / 86400);
|
|
|
+
|
|
|
+
|
|
|
+ $day = $daysPassed+1;
|
|
|
+
|
|
|
// 检查是否已领取
|
|
|
$claimedMask = (int)$record->claimed_days_mask;
|
|
|
$dayIndex = $day - 1;
|
|
|
@@ -1519,24 +1534,24 @@ class PayRechargeController extends Controller
|
|
|
return apiReturnFail(['web.gift.vip_inactive_day_claimed', str_replace(':day', $day, __('web.gift.vip_inactive_day_claimed'))]);
|
|
|
}
|
|
|
|
|
|
- // 计算从充值完成后的第几天
|
|
|
- $createdDate = date('Y-m-d', strtotime($record->created_at));
|
|
|
- $today = date('Y-m-d');
|
|
|
- $daysPassed = floor((strtotime($today) - strtotime($createdDate)) / 86400);
|
|
|
|
|
|
- // 检查是否到了这一天:第day天的奖励只能在充值后的第day天领取(daysPassed == day)
|
|
|
- if ($daysPassed < $day) {
|
|
|
+
|
|
|
+ // 第 day 天的奖励只能在充值后的第 day-1 天领取(daysPassed == day-1)
|
|
|
+ $dayOffset = $day - 1;
|
|
|
+
|
|
|
+ // 检查是否到了这一天
|
|
|
+ if ($daysPassed < $dayOffset) {
|
|
|
return apiReturnFail(['web.gift.vip_inactive_day_not_time', str_replace(':day', $day, __('web.gift.vip_inactive_day_not_time'))]);
|
|
|
}
|
|
|
|
|
|
// 检查是否已过期:如果已经过了这一天(daysPassed > day),则不能领取
|
|
|
- if ($daysPassed > $day) {
|
|
|
+ if ($daysPassed > $dayOffset) {
|
|
|
return apiReturnFail(['web.gift.vip_inactive_day_expired', str_replace(':day', $day, __('web.gift.vip_inactive_day_expired'))]);
|
|
|
}
|
|
|
|
|
|
// 第4-7天需要检查当天游戏流水 >= 100
|
|
|
if ($day >= 4) {
|
|
|
- $targetDate = date('Ymd', strtotime($record->created_at . ' +' . $day . ' days'));
|
|
|
+ $targetDate = date('Ymd', strtotime($record->created_at . ' +' . $dayOffset . ' days'));
|
|
|
$todayBet = DB::table('QPRecordDB.dbo.RecordUserDataStatisticsNew')
|
|
|
->where('UserID', $userId)
|
|
|
->where('DateID', $targetDate)
|