no message

This commit is contained in:
hellcat 2025-04-26 19:01:05 +08:00
parent 81cd2e8387
commit d8df166f55
2 changed files with 93 additions and 23 deletions

View File

@ -313,16 +313,18 @@ final class Cron
foreach ($paidUsers as $user) {
if (strtotime($user->class_expire) < time()) {
$text = '你好,系统发现你的账号等级已经过期了。';
$text = '您好,系统发现您的套餐已经过期了。';
$reset_traffic = $_ENV['class_expire_reset_traffic'];
if ($reset_traffic >= 0) {
$user->transfer_enable = Tools::toGB($reset_traffic);
$text .= '流量已经被重置为' . $reset_traffic . 'GB。';
$text .= '已转为免费体验帐户,赠送' . $reset_traffic . 'GB体验流量。';
}
// todo 反水
try {
Notification::notifyUser($user, $_ENV['appName'] . '-你的账号等级已经过期了', $text);
Notification::notifyUser($user, $_ENV['appName'] . '-您的套餐已经过期', $text);
} catch (GuzzleException|ClientExceptionInterface|TelegramSDKException $e) {
echo $e->getMessage() . PHP_EOL;
}
@ -333,6 +335,33 @@ final class Cron
$user->class = 0;
$user->save();
}
//// 流量到期处理
// 这里只重置付费用户不重置免费用户。那么假如免费用户领了60g流量他就真的能用到没。付费用户则会连带套餐一起重置掉。
// 应该问题不大,赠送流量有关时,区分免费付费用户,对付费大方(陷阱),对免费抠门。
// 其实压根就不叠加,套餐流量直接覆盖免费流量。
// 再者,免费流量
// 总之,免费流量就是零头,无所谓重置的。
$ud = $user->u + $user->d;
if ($ud >= $user->transfer_enable && $user->class > 0) {
$sText = "你好,系统发现您的流量已用完,已转为免费体验帐户,可用每日签到获取免费流量。";
try {
Notification::notifyUser($user, $_ENV['appName'] . '-您的流量已用完', $sText);
} catch (GuzzleException|ClientExceptionInterface|TelegramSDKException $e) {
echo $e->getMessage() . PHP_EOL;
}
$user->u = 0;
$user->d = 0;
$user->transfer_today = 0;
$user->class = 0;
$user->save();
}
//// end
}
echo Tools::toDateTime(time()) . ' 付费用户过期检测完成' . PHP_EOL;

View File

@ -9,8 +9,48 @@ use App\Models\User as ModelUser;
use App\Utils\Tools;
use App\Services\CountUser as ServiceCountUser;
final class User
final class User extends Base
{
private function format($aUser)
{
unset($aUser['pass']);
unset($aUser['passwd']);
unset($aUser['uuid']);
unset($aUser['method']);
unset($aUser['is_admin']);
unset($aUser['theme']);
unset($aUser['ga_token']);
unset($aUser['ga_enable']);
unset($aUser['api_token']);
unset($aUser['is_dark_mode']);
unset($aUser['locale']);
$aUser['transfer_today'] = Tools::flowToGB($aUser['transfer_today']).'GB';
$aUser['transfer_total'] = Tools::flowToGB($aUser['transfer_total']).'GB';
$aUser['transfer_enable'] = Tools::flowToGB($aUser['transfer_enable']).'GB';
$aUser['u'] = Tools::flowToGB($aUser['u']).'GB';
$aUser['d'] = Tools::flowToGB($aUser['d']).'GB';
$aUser['ud'] = $aUser['u'] + $aUser['d'];
$aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
return $aUser;
}
public function Limit($aParam)
{
// $sField = $aParam['aOption'][1];
$iLimit = $aParam['aArg'][1] ?? 5; // 默认五条
$aUser = ModelUser::where("class", '>', 0)->orderBy("id", "desc")->limit($iLimit)->get()->toArray();
foreach ($aUser as $row) {
$sMsg = json_encode($row, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
$this->oTGHttp->sendToTG($sMsg);
}
$this->oHttp::response(200, 'ok');
}
public function Find($aParam)
{
@ -23,25 +63,26 @@ final class User
if ($oUser) {
$aUser = $oUser->toArray();
unset($aUser['pass']);
unset($aUser['passwd']);
unset($aUser['uuid']);
unset($aUser['method']);
unset($aUser['is_admin']);
unset($aUser['theme']);
unset($aUser['ga_token']);
unset($aUser['ga_enable']);
unset($aUser['api_token']);
unset($aUser['is_dark_mode']);
unset($aUser['locale']);
$aUser['transfer_today'] = Tools::flowToGB($aUser['transfer_today']).'GB';
$aUser['transfer_total'] = Tools::flowToGB($aUser['transfer_total']).'GB';
$aUser['transfer_enable'] = Tools::flowToGB($aUser['transfer_enable']).'GB';
$aUser['u'] = Tools::flowToGB($aUser['u']).'GB';
$aUser['d'] = Tools::flowToGB($aUser['d']).'GB';
$aUser['ud'] = $aUser['u'] + $aUser['d'];
$aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
$aUser = $this->format($aUser);
// unset($aUser['pass']);
// unset($aUser['passwd']);
// unset($aUser['uuid']);
// unset($aUser['method']);
// unset($aUser['is_admin']);
// unset($aUser['theme']);
// unset($aUser['ga_token']);
// unset($aUser['ga_enable']);
// unset($aUser['api_token']);
// unset($aUser['is_dark_mode']);
// unset($aUser['locale']);
//
// $aUser['transfer_today'] = Tools::flowToGB($aUser['transfer_today']).'GB';
// $aUser['transfer_total'] = Tools::flowToGB($aUser['transfer_total']).'GB';
// $aUser['transfer_enable'] = Tools::flowToGB($aUser['transfer_enable']).'GB';
// $aUser['u'] = Tools::flowToGB($aUser['u']).'GB';
// $aUser['d'] = Tools::flowToGB($aUser['d']).'GB';
// $aUser['ud'] = $aUser['u'] + $aUser['d'];
// $aUser['last_use_time'] = date('Y-m-d H:i:s', $aUser['last_use_time']);
} else {
$aUser = ["not have id" => $iUserId];
}