calculate seed bonus one hour

This commit is contained in:
xiaomlove
2022-04-21 20:41:29 +08:00
parent eb0c4cad8a
commit a47b6f9cde
2 changed files with 11 additions and 5 deletions
+3 -2
View File
@@ -297,8 +297,9 @@ function docleanup($forceAll = 0, $printProgress = false) {
// } // }
// do_log($log); // do_log($log);
$seedBonusResult = calculate_seed_bonus($arr['userid']); $seedBonusResult = calculate_seed_bonus($arr['userid']);
$all_bonus = $seedBonusResult['all_bonus']; $dividend = 3600 / $autoclean_interval_one;
$seed_points = $seedBonusResult['seed_points']; $all_bonus = $seedBonusResult['all_bonus'] / $dividend;
$seed_points = $seedBonusResult['seed_points'] / $dividend;
sql_query("update users set seed_points = ifnull(seed_points, 0) + $seed_points, seedbonus = seedbonus + $all_bonus where id = {$arr["userid"]}"); sql_query("update users set seed_points = ifnull(seed_points, 0) + $seed_points, seedbonus = seedbonus + $all_bonus where id = {$arr["userid"]}");
} }
} }
+8 -3
View File
@@ -5513,11 +5513,16 @@ function get_smile($num)
return $all[$num] ?? null; return $all[$num] ?? null;
} }
/**
* Calculate user seed bonus per hour
*
* @param $uid
* @return array
* @throws \Nexus\Database\DatabaseException
*/
function calculate_seed_bonus($uid): array function calculate_seed_bonus($uid): array
{ {
$settingBonus = \App\Models\Setting::get('bonus'); $settingBonus = \App\Models\Setting::get('bonus');
$settingMain = \App\Models\Setting::get('main');
$autoclean_interval_one = $settingMain['autoclean_interval_one'];
$donortimes_bonus = $settingBonus['donortimes']; $donortimes_bonus = $settingBonus['donortimes'];
$perseeding_bonus = $settingBonus['perseeding']; $perseeding_bonus = $settingBonus['perseeding'];
$maxseeding_bonus = $settingBonus['maxseeding']; $maxseeding_bonus = $settingBonus['maxseeding'];
@@ -5557,7 +5562,7 @@ function calculate_seed_bonus($uid): array
} }
if ($count > $maxseeding_bonus) if ($count > $maxseeding_bonus)
$count = $maxseeding_bonus; $count = $maxseeding_bonus;
$all_bonus = $seed_bonus = $seed_points = ($valuetwo * atan($A / $l_bonus) + ($perseeding_bonus * $count)) / (3600 / $autoclean_interval_one); $all_bonus = $seed_bonus = $seed_points = $valuetwo * atan($A / $l_bonus) + ($perseeding_bonus * $count);
$is_donor_info = \Nexus\Database\NexusDB::getOne('users', "id = $uid", "donor, donoruntil"); $is_donor_info = \Nexus\Database\NexusDB::getOne('users', "id = $uid", "donor, donoruntil");
$is_donor_until = $is_donor_info['donoruntil']; $is_donor_until = $is_donor_info['donoruntil'];
$is_donor = $is_donor_info['donor'] == 'yes' && ($is_donor_until === null || $is_donor_until == '0000-00-00 00:00:00' || $is_donor_until >= date('Y-m-d H:i:s')); $is_donor = $is_donor_info['donor'] == 'yes' && ($is_donor_until === null || $is_donor_until == '0000-00-00 00:00:00' || $is_donor_until >= date('Y-m-d H:i:s'));