From 53ea4022c792d7812f34dc6d4ebe910a81612444 Mon Sep 17 00:00:00 2001 From: yangduo Date: Mon, 17 Mar 2025 21:40:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=85=E5=80=BC=E5=A4=A9=E6=95=B0=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/bootstrap/init.php | 1 + webapp/classes/RechargeActivity.php | 60 +++++++++++++++----- webapp/controller/RechargeActivity.trait.php | 1 + 3 files changed, 48 insertions(+), 14 deletions(-) diff --git a/webapp/bootstrap/init.php b/webapp/bootstrap/init.php index f9ba32f..ce6440f 100644 --- a/webapp/bootstrap/init.php +++ b/webapp/bootstrap/init.php @@ -105,6 +105,7 @@ define('DIAMONDLOTTERY_TIME', 188); //每日消耗钻石抽奖次数 define('MEDAL_LIMIT', 189); //体力自然增长上限 define('MEDAL_SECONDS', 190); //自然增长一点体力耗时,单位秒 define('OFFLINE_LIMIT', 191); //离线时长上限,单位小时 +define('RECHARGE_TARGET', 198); //连续充值天数的每日达标金额(元) require 'config_loader.php'; diff --git a/webapp/classes/RechargeActivity.php b/webapp/classes/RechargeActivity.php index a739ac3..4044616 100644 --- a/webapp/classes/RechargeActivity.php +++ b/webapp/classes/RechargeActivity.php @@ -43,7 +43,7 @@ class RechargeActivity if ($this->updateActivityCur($activity, $num, false)) { return; - } + } $nowTime = time(); if ($row) { @@ -76,6 +76,8 @@ class RechargeActivity return; } $nowTime = time(); + $todaysecs = phpcommon\getdayseconds($nowTime); + $daysumtarget = metatable\getParameterById(RECHARGE_TARGET) * 10; foreach ($activityconf as $itemconf) { if ($nowTime < strtotime($itemconf['time1']) || $nowTime > strtotime($itemconf['time2'])) { continue; @@ -93,7 +95,7 @@ class RechargeActivity $found = true; if ($itemconf['type'] == 3) { - if ($item['time'] < phpcommon\getdayseconds($nowTime)) { + if ($item['time'] < $todaysecs) { $activity[$key]['cur'] = $num; $activity[$key]['award'] = 0; } else { @@ -104,6 +106,23 @@ class RechargeActivity $activity[$key]['cur'] += $num; } $activity[$key]['time'] = $nowTime; + } + if ($itemconf['type'] == 4) { + if ($item['time'] > 0 || $item['cur'] >= $item['target'] || $item['update_cur_time'] >= $todaysecs) { + break; + } + + if ($item['recharge_time'] < $todaysecs) { + $activity[$key]['recharge_sum'] = $num; + } else { + $activity[$key]['recharge_sum'] += $num; + } + $activity[$key]['recharge_time'] = $nowTime; + + if ($daysumtarget <= $activity[$key]['recharge_sum']) { + $activity[$key]['cur']++; + $activity[$key]['update_cur_time'] = $nowTime; + } } else { if ($item['cur'] >= $item['target']) { break; @@ -119,20 +138,33 @@ class RechargeActivity } if (!$found) { - $item = array( - 'id' => $itemconf['shop_id'], - 'cur' => $num, - 'target' => $itemconf['target'], - 'time' => 0, - ); + $item = array(); + if ($itemconf['type'] == 4) { + $item = array( + 'id' => $itemconf['shop_id'], + 'cur' => $num < $daysumtarget ? 0 : 1, + 'target' => $itemconf['target'], + 'time' => 0, + "recharge_sum" => $num, //当天充值总额 + "recharge_time" => $nowTime, //最近充值时间戳 + "update_cur_time" => $num < $daysumtarget ? 0 : $nowTime, //最近更新cur时间戳 + ); + } else { + $item = array( + 'id' => $itemconf['shop_id'], + 'cur' => $num, + 'target' => $itemconf['target'], + 'time' => 0, + ); - if ($num > $itemconf['target']) { - $item['cur'] = $itemconf['target']; - } + if ($num > $itemconf['target']) { + $item['cur'] = $itemconf['target']; + } - if ($itemconf['type'] == 3) { - $item['time'] = $nowTime; - $item['award'] = 0; + if ($itemconf['type'] == 3) { + $item['time'] = $nowTime; + $item['award'] = 0; + } } array_push($activity, $item); diff --git a/webapp/controller/RechargeActivity.trait.php b/webapp/controller/RechargeActivity.trait.php index 1605bdd..ed11e7a 100644 --- a/webapp/controller/RechargeActivity.trait.php +++ b/webapp/controller/RechargeActivity.trait.php @@ -126,6 +126,7 @@ trait RechargeActivity switch ($itemconf['type']) { case 1: //累积充值 case 2: //累计消耗 + case 4: //充值达标天数 $itemarray = array( 'id' => $item['id'], 'cur' => $item['cur'],