mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-24 12:07:23 +08:00
add job RemoveUserVipStatus + RemoveUserDonorStatus + RemoveUserWarning
This commit is contained in:
@@ -6,6 +6,9 @@ use App\Jobs\CheckCleanup;
|
|||||||
use App\Jobs\CheckQueueFailedJobs;
|
use App\Jobs\CheckQueueFailedJobs;
|
||||||
use App\Jobs\MaintainPluginState;
|
use App\Jobs\MaintainPluginState;
|
||||||
use App\Jobs\ManagePlugin;
|
use App\Jobs\ManagePlugin;
|
||||||
|
use App\Jobs\RemoveUserDonorStatus;
|
||||||
|
use App\Jobs\RemoveUserVipStatus;
|
||||||
|
use App\Jobs\RemoveUserWarning;
|
||||||
use App\Jobs\SaveIpLogCacheToDB;
|
use App\Jobs\SaveIpLogCacheToDB;
|
||||||
use App\Jobs\UpdateIsSeedBoxFromUserRecordsCache;
|
use App\Jobs\UpdateIsSeedBoxFromUserRecordsCache;
|
||||||
use App\Utils\ThirdPartyJob;
|
use App\Utils\ThirdPartyJob;
|
||||||
@@ -53,6 +56,9 @@ class Kernel extends ConsoleKernel
|
|||||||
$schedule->job(new UpdateIsSeedBoxFromUserRecordsCache())->everySixHours();
|
$schedule->job(new UpdateIsSeedBoxFromUserRecordsCache())->everySixHours();
|
||||||
$schedule->job(new CheckCleanup())->everyFifteenMinutes();
|
$schedule->job(new CheckCleanup())->everyFifteenMinutes();
|
||||||
$schedule->job(new SaveIpLogCacheToDB())->hourly();
|
$schedule->job(new SaveIpLogCacheToDB())->hourly();
|
||||||
|
$schedule->job(new RemoveUserWarning())->everyTwentySeconds();
|
||||||
|
$schedule->job(new RemoveUserVipStatus())->everyMinute();
|
||||||
|
$schedule->job(new RemoveUserDonorStatus())->everyMinute();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Jobs;
|
||||||
|
|
||||||
|
use App\Enums\ModelEventEnum;
|
||||||
|
use App\Models\Message;
|
||||||
|
use App\Models\User;
|
||||||
|
use App\Models\UserModifyLog;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Queue\Queueable;
|
||||||
|
|
||||||
|
class RemoveUserDonorStatus
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new job instance.
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the job.
|
||||||
|
*/
|
||||||
|
public function handle(): void
|
||||||
|
{
|
||||||
|
$users = User::query()
|
||||||
|
->with('language')
|
||||||
|
->where('donor', 'yes')
|
||||||
|
->whereNotNull('donoruntil')
|
||||||
|
->where('donoruntil', '!=', '0000-00-00 00:00:00')
|
||||||
|
->where('donoruntil', '<', now())
|
||||||
|
->get();
|
||||||
|
$userModifyLogs = [];
|
||||||
|
foreach ($users as $user) {
|
||||||
|
$locale = $user->locale;
|
||||||
|
$userModifyLogs[] = [
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'content' => "donor status removed by - AutoSystem",
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
];
|
||||||
|
$user->donor = 'no';
|
||||||
|
do_log(sprintf("update user %s => %s", $user->id, json_encode($user->getDirty())));
|
||||||
|
$user->save();
|
||||||
|
clear_user_cache($user->id);
|
||||||
|
publish_model_event(ModelEventEnum::USER_UPDATED, $user->id);
|
||||||
|
$subject = sqlesc(nexus_trans("cleanup.msg_donor_status_removed", [], $locale));
|
||||||
|
$msg = sqlesc(nexus_trans("cleanup.msg_donor_status_removed_body", [], $locale));
|
||||||
|
Message::add([
|
||||||
|
'sender' => 0,
|
||||||
|
'receiver' => $user->id,
|
||||||
|
'added' => now(),
|
||||||
|
'subject' => $subject,
|
||||||
|
'msg' => $msg,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
if (!empty($userModifyLogs)) {
|
||||||
|
UserModifyLog::query()->insert($userModifyLogs);
|
||||||
|
}
|
||||||
|
do_log("remove donor status if time's up, success handle user count: " . $users->count());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Jobs;
|
||||||
|
|
||||||
|
use App\Enums\ModelEventEnum;
|
||||||
|
use App\Models\Message;
|
||||||
|
use App\Models\User;
|
||||||
|
use App\Models\UserModifyLog;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Queue\Queueable;
|
||||||
|
|
||||||
|
class RemoveUserVipStatus
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new job instance.
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the job.
|
||||||
|
*/
|
||||||
|
public function handle(): void
|
||||||
|
{
|
||||||
|
$users = User::query()
|
||||||
|
->with('language')
|
||||||
|
->where('vip_added', 'yes')
|
||||||
|
->where('vip_until', '<', now())
|
||||||
|
->get();
|
||||||
|
$userModifyLogs = [];
|
||||||
|
foreach ($users as $user) {
|
||||||
|
$locale = $user->locale;
|
||||||
|
$userModifyLogs[] = [
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'content' => "VIP status removed by - AutoSystem",
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
];
|
||||||
|
$message = [];
|
||||||
|
$user->vip_added = 'no';
|
||||||
|
$user->vip_until = null;
|
||||||
|
if ($user->class <= User::CLASS_VIP) {
|
||||||
|
$user->class = User::CLASS_USER;
|
||||||
|
$subject = sqlesc(nexus_trans("cleanup.msg_vip_status_removed", [], $locale));
|
||||||
|
$msg = sqlesc(nexus_trans("cleanup.msg_vip_status_removed_body", [], $locale));
|
||||||
|
$message = [
|
||||||
|
'sender' => 0,
|
||||||
|
'receiver' => $user->id,
|
||||||
|
'added' => now(),
|
||||||
|
'subject' => $subject,
|
||||||
|
'msg' => $msg,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
do_log(sprintf("update user %s => %s", $user->id, json_encode($user->getDirty())));
|
||||||
|
$user->save();
|
||||||
|
clear_user_cache($user->id);
|
||||||
|
publish_model_event(ModelEventEnum::USER_UPDATED, $user->id);
|
||||||
|
if (!empty($message)) {
|
||||||
|
Message::add($message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!empty($userModifyLogs)) {
|
||||||
|
UserModifyLog::query()->insert($userModifyLogs);
|
||||||
|
}
|
||||||
|
do_log("remove VIP status if time's up, success handle user count: " . $users->count());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Jobs;
|
||||||
|
|
||||||
|
use App\Enums\ModelEventEnum;
|
||||||
|
use App\Models\Message;
|
||||||
|
use App\Models\User;
|
||||||
|
use App\Models\UserModifyLog;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Queue\Queueable;
|
||||||
|
|
||||||
|
class RemoveUserWarning
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new job instance.
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the job.
|
||||||
|
*/
|
||||||
|
public function handle(): void
|
||||||
|
{
|
||||||
|
$users = User::query()
|
||||||
|
->with('language')
|
||||||
|
->where('enabled', 'yes')
|
||||||
|
->where('warned', 'yes')
|
||||||
|
->where('warneduntil', '<', now())
|
||||||
|
->get();
|
||||||
|
$userModifyLogs = [];
|
||||||
|
foreach ($users as $user) {
|
||||||
|
$locale = $user->locale;
|
||||||
|
$userModifyLogs[] = [
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'content' => "Warning removed by System.",
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
];
|
||||||
|
$user->warned = 'no';
|
||||||
|
$user->warneduntil = null;
|
||||||
|
do_log(sprintf("update user %s => %s", $user->id, json_encode($user->getDirty())));
|
||||||
|
$user->save();
|
||||||
|
clear_user_cache($user->id);
|
||||||
|
publish_model_event(ModelEventEnum::USER_UPDATED, $user->id);
|
||||||
|
$subject = nexus_trans("cleanup.msg_warning_removed", [], $locale);
|
||||||
|
$msg = nexus_trans("cleanup.msg_your_warning_removed", [], $locale);
|
||||||
|
Message::add([
|
||||||
|
'sender' => 0,
|
||||||
|
'receiver' => $user->id,
|
||||||
|
'added' => now(),
|
||||||
|
'subject' => $subject,
|
||||||
|
'msg' => $msg,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
if (!empty($userModifyLogs)) {
|
||||||
|
UserModifyLog::query()->insert($userModifyLogs);
|
||||||
|
}
|
||||||
|
do_log("remove warning of users, success handle user count: " . $users->count());
|
||||||
|
}
|
||||||
|
}
|
||||||
+89
-86
@@ -734,75 +734,77 @@ function docleanup($forceAll = 0, $printProgress = false) {
|
|||||||
printProgress($log);
|
printProgress($log);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//migrate to job: RemoveUserVipStatus
|
||||||
//remove VIP status if time's up
|
//remove VIP status if time's up
|
||||||
$res = sql_query("SELECT id, class FROM users WHERE vip_added='yes' AND vip_until < NOW()") or sqlerr(__FILE__, __LINE__);
|
// $res = sql_query("SELECT id, class FROM users WHERE vip_added='yes' AND vip_until < NOW()") or sqlerr(__FILE__, __LINE__);
|
||||||
$userModifyLogs = [];
|
// $userModifyLogs = [];
|
||||||
if (mysql_num_rows($res) > 0)
|
// if (mysql_num_rows($res) > 0)
|
||||||
{
|
// {
|
||||||
while ($arr = mysql_fetch_assoc($res))
|
// while ($arr = mysql_fetch_assoc($res))
|
||||||
{
|
// {
|
||||||
$dt = sqlesc(date("Y-m-d H:i:s"));
|
// $dt = sqlesc(date("Y-m-d H:i:s"));
|
||||||
$locale = get_user_locale($arr['id']);
|
// $locale = get_user_locale($arr['id']);
|
||||||
$subject = sqlesc(nexus_trans("cleanup.msg_vip_status_removed", [], $locale));
|
// $subject = sqlesc(nexus_trans("cleanup.msg_vip_status_removed", [], $locale));
|
||||||
$msg = sqlesc(nexus_trans("cleanup.msg_vip_status_removed_body", [], $locale));
|
// $msg = sqlesc(nexus_trans("cleanup.msg_vip_status_removed_body", [], $locale));
|
||||||
$userModifyLogs[] = [
|
// $userModifyLogs[] = [
|
||||||
'user_id' => $arr['id'],
|
// 'user_id' => $arr['id'],
|
||||||
'content' => "VIP status removed by - AutoSystem",
|
// 'content' => "VIP status removed by - AutoSystem",
|
||||||
'created_at' => date("Y-m-d H:i:s"),
|
// 'created_at' => date("Y-m-d H:i:s"),
|
||||||
'updated_at' => date("Y-m-d H:i:s"),
|
// 'updated_at' => date("Y-m-d H:i:s"),
|
||||||
];
|
// ];
|
||||||
if ($arr['class'] > \App\Models\User::CLASS_VIP) {
|
// if ($arr['class'] > \App\Models\User::CLASS_VIP) {
|
||||||
/**
|
// /**
|
||||||
* @since 1.8
|
// * @since 1.8
|
||||||
* never demotion VIP above
|
// * never demotion VIP above
|
||||||
*/
|
// */
|
||||||
sql_query("UPDATE users SET vip_added = 'no', vip_until = null WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
|
// sql_query("UPDATE users SET vip_added = 'no', vip_until = null WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
|
||||||
} else {
|
// } else {
|
||||||
sql_query("UPDATE users SET class = '1', vip_added = 'no', vip_until = null WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
|
// sql_query("UPDATE users SET class = '1', vip_added = 'no', vip_until = null WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
|
||||||
sql_query("INSERT INTO messages (sender, receiver, added, msg, subject) VALUES(0, {$arr['id']}, $dt, $msg, $subject)") or sqlerr(__FILE__, __LINE__);
|
// sql_query("INSERT INTO messages (sender, receiver, added, msg, subject) VALUES(0, {$arr['id']}, $dt, $msg, $subject)") or sqlerr(__FILE__, __LINE__);
|
||||||
}
|
// }
|
||||||
publish_model_event(ModelEventEnum::USER_UPDATED, $arr['id']);
|
// publish_model_event(ModelEventEnum::USER_UPDATED, $arr['id']);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if (!empty($userModifyLogs)) {
|
// if (!empty($userModifyLogs)) {
|
||||||
\App\Models\UserModifyLog::query()->insert($userModifyLogs);
|
// \App\Models\UserModifyLog::query()->insert($userModifyLogs);
|
||||||
}
|
// }
|
||||||
$log = "remove VIP status if time's up";
|
// $log = "remove VIP status if time's up";
|
||||||
do_log($log);
|
// do_log($log);
|
||||||
if ($printProgress) {
|
// if ($printProgress) {
|
||||||
printProgress($log);
|
// printProgress($log);
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
//migrate to job: RemoveUserDonorStatus
|
||||||
//remove donor status if time's up
|
//remove donor status if time's up
|
||||||
$userModifyLogs = [];
|
// $userModifyLogs = [];
|
||||||
$res = sql_query("SELECT id FROM users WHERE donor='yes' AND donoruntil is not null and donoruntil != '0000-00-00 00:00:00' and donoruntil < NOW()") or sqlerr(__FILE__, __LINE__);
|
// $res = sql_query("SELECT id FROM users WHERE donor='yes' AND donoruntil is not null and donoruntil != '0000-00-00 00:00:00' and donoruntil < NOW()") or sqlerr(__FILE__, __LINE__);
|
||||||
if (mysql_num_rows($res) > 0)
|
// if (mysql_num_rows($res) > 0)
|
||||||
{
|
// {
|
||||||
while ($arr = mysql_fetch_assoc($res))
|
// while ($arr = mysql_fetch_assoc($res))
|
||||||
{
|
// {
|
||||||
$dt = sqlesc(date("Y-m-d H:i:s"));
|
// $dt = sqlesc(date("Y-m-d H:i:s"));
|
||||||
$locale = get_user_locale($arr['id']);
|
// $locale = get_user_locale($arr['id']);
|
||||||
$subject = sqlesc(nexus_trans("cleanup.msg_donor_status_removed", [], $locale));
|
// $subject = sqlesc(nexus_trans("cleanup.msg_donor_status_removed", [], $locale));
|
||||||
$msg = sqlesc(nexus_trans("cleanup.msg_donor_status_removed_body", [], $locale));
|
// $msg = sqlesc(nexus_trans("cleanup.msg_donor_status_removed_body", [], $locale));
|
||||||
$userModifyLogs[] = [
|
// $userModifyLogs[] = [
|
||||||
'user_id' => $arr['id'],
|
// 'user_id' => $arr['id'],
|
||||||
'content' => "donor status removed by - AutoSystem",
|
// 'content' => "donor status removed by - AutoSystem",
|
||||||
'created_at' => date("Y-m-d H:i:s"),
|
// 'created_at' => date("Y-m-d H:i:s"),
|
||||||
'updated_at' => date("Y-m-d H:i:s"),
|
// 'updated_at' => date("Y-m-d H:i:s"),
|
||||||
];
|
// ];
|
||||||
sql_query("UPDATE users SET donor = 'no' WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
|
// sql_query("UPDATE users SET donor = 'no' WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
|
||||||
sql_query("INSERT INTO messages (sender, receiver, added, msg, subject) VALUES(0, {$arr['id']}, $dt, $msg, $subject)") or sqlerr(__FILE__, __LINE__);
|
// sql_query("INSERT INTO messages (sender, receiver, added, msg, subject) VALUES(0, {$arr['id']}, $dt, $msg, $subject)") or sqlerr(__FILE__, __LINE__);
|
||||||
publish_model_event(ModelEventEnum::USER_UPDATED, $arr['id']);
|
// publish_model_event(ModelEventEnum::USER_UPDATED, $arr['id']);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if (!empty($userModifyLogs)) {
|
// if (!empty($userModifyLogs)) {
|
||||||
\App\Models\UserModifyLog::query()->insert($userModifyLogs);
|
// \App\Models\UserModifyLog::query()->insert($userModifyLogs);
|
||||||
}
|
// }
|
||||||
$log = "remove donor status if time's up";
|
// $log = "remove donor status if time's up";
|
||||||
do_log($log);
|
// do_log($log);
|
||||||
if ($printProgress) {
|
// if ($printProgress) {
|
||||||
printProgress($log);
|
// printProgress($log);
|
||||||
}
|
// }
|
||||||
|
|
||||||
// promote peasant back to user
|
// promote peasant back to user
|
||||||
|
|
||||||
@@ -889,27 +891,28 @@ function docleanup($forceAll = 0, $printProgress = false) {
|
|||||||
printProgress($log);
|
printProgress($log);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//migrate to job: RemoveUserWarning
|
||||||
//Remove warning of users
|
//Remove warning of users
|
||||||
$dt = sqlesc(date("Y-m-d H:i:s")); // take date time
|
// $dt = sqlesc(date("Y-m-d H:i:s")); // take date time
|
||||||
$res = sql_query("SELECT id FROM users WHERE enabled = 'yes' AND warned = 'yes' AND warneduntil < $dt") or sqlerr(__FILE__, __LINE__);
|
// $res = sql_query("SELECT id FROM users WHERE enabled = 'yes' AND warned = 'yes' AND warneduntil < $dt") or sqlerr(__FILE__, __LINE__);
|
||||||
|
//
|
||||||
if (mysql_num_rows($res) > 0)
|
// if (mysql_num_rows($res) > 0)
|
||||||
{
|
// {
|
||||||
while ($arr = mysql_fetch_assoc($res))
|
// while ($arr = mysql_fetch_assoc($res))
|
||||||
{
|
// {
|
||||||
$locale = get_user_locale($arr['id']);
|
// $locale = get_user_locale($arr['id']);
|
||||||
$subject = nexus_trans("cleanup.msg_warning_removed", [], $locale);
|
// $subject = nexus_trans("cleanup.msg_warning_removed", [], $locale);
|
||||||
$msg = nexus_trans("cleanup.msg_your_warning_removed", [], $locale);
|
// $msg = nexus_trans("cleanup.msg_your_warning_removed", [], $locale);
|
||||||
writecomment($arr['id'],"Warning removed by System.");
|
// writecomment($arr['id'],"Warning removed by System.");
|
||||||
sql_query("UPDATE users SET warned = 'no', warneduntil = null WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
|
// sql_query("UPDATE users SET warned = 'no', warneduntil = null WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__);
|
||||||
sql_query("INSERT INTO messages (sender, receiver, added, subject, msg) VALUES(0, {$arr['id']}, $dt, ".sqlesc($subject).", ".sqlesc($msg).")") or sqlerr(__FILE__, __LINE__);
|
// sql_query("INSERT INTO messages (sender, receiver, added, subject, msg) VALUES(0, {$arr['id']}, $dt, ".sqlesc($subject).", ".sqlesc($msg).")") or sqlerr(__FILE__, __LINE__);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
$log = "remove warning of users";
|
// $log = "remove warning of users";
|
||||||
do_log($log);
|
// do_log($log);
|
||||||
if ($printProgress) {
|
// if ($printProgress) {
|
||||||
printProgress($log);
|
// printProgress($log);
|
||||||
}
|
// }
|
||||||
|
|
||||||
//17.update total seeding and leeching time of users
|
//17.update total seeding and leeching time of users
|
||||||
// $res = sql_query("SELECT id FROM users where enabled = 'yes' and status = 'confirmed'") or sqlerr(__FILE__, __LINE__);
|
// $res = sql_query("SELECT id FROM users where enabled = 'yes' and status = 'confirmed'") or sqlerr(__FILE__, __LINE__);
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ return [
|
|||||||
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_CHANGE_USERNAME_CARD => 'Buy change username card',
|
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_CHANGE_USERNAME_CARD => 'Buy change username card',
|
||||||
\App\Models\BonusLogs::BUSINESS_TYPE_GIFT_MEDAL => 'Gift medal',
|
\App\Models\BonusLogs::BUSINESS_TYPE_GIFT_MEDAL => 'Gift medal',
|
||||||
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_TORRENT => 'Buy torrent',
|
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_TORRENT => 'Buy torrent',
|
||||||
|
\App\Models\BonusLogs::BUSINESS_TYPE_TASK_PASS_REWARD => 'Task finished reward',
|
||||||
|
\App\Models\BonusLogs::BUSINESS_TYPE_TASK_NOT_PASS_DEDUCT => 'Task unfinished deduct',
|
||||||
\App\Models\BonusLogs::BUSINESS_TYPE_REWARD_TORRENT => 'Reward torrent',
|
\App\Models\BonusLogs::BUSINESS_TYPE_REWARD_TORRENT => 'Reward torrent',
|
||||||
\App\Models\BonusLogs::BUSINESS_TYPE_CLAIMED_UNREACHED => 'Claimed torrent unreached',
|
\App\Models\BonusLogs::BUSINESS_TYPE_CLAIMED_UNREACHED => 'Claimed torrent unreached',
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ return [
|
|||||||
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_CHANGE_USERNAME_CARD => '購買改名卡',
|
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_CHANGE_USERNAME_CARD => '購買改名卡',
|
||||||
\App\Models\BonusLogs::BUSINESS_TYPE_GIFT_MEDAL => '贈送勛章',
|
\App\Models\BonusLogs::BUSINESS_TYPE_GIFT_MEDAL => '贈送勛章',
|
||||||
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_TORRENT => '購買種子',
|
\App\Models\BonusLogs::BUSINESS_TYPE_BUY_TORRENT => '購買種子',
|
||||||
|
\App\Models\BonusLogs::BUSINESS_TYPE_TASK_PASS_REWARD => '任務完成獎勵',
|
||||||
|
\App\Models\BonusLogs::BUSINESS_TYPE_TASK_NOT_PASS_DEDUCT => '任務未完成扣除',
|
||||||
\App\Models\BonusLogs::BUSINESS_TYPE_REWARD_TORRENT => '獎勵種子',
|
\App\Models\BonusLogs::BUSINESS_TYPE_REWARD_TORRENT => '獎勵種子',
|
||||||
\App\Models\BonusLogs::BUSINESS_TYPE_CLAIMED_UNREACHED => '認領種子未達標扣除',
|
\App\Models\BonusLogs::BUSINESS_TYPE_CLAIMED_UNREACHED => '認領種子未達標扣除',
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user