fuc-new/src/Controllers/User/InviteController.php
hellcat 1fe8673f62 1
2025-10-01 13:34:29 +08:00

108 lines
3.3 KiB
PHP
Executable File

<?php
declare(strict_types=1);
namespace App\Controllers\User;
use App\Controllers\BaseController;
use App\Models\Config;
use App\Models\InviteCode;
use App\Models\Payback;
use App\Models\UserMoneyLog;
use App\Models\Draw;
use App\Utils\Tools;
use Exception;
use Psr\Http\Message\ResponseInterface;
use Slim\Http\Response;
use Slim\Http\ServerRequest;
use voku\helper\AntiXSS;
use App\Services\TomTool\PageBar;
final class InviteController extends BaseController
{
/**
* @throws Exception
*/
public function index(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$code = (new InviteCode())->where('user_id', $this->user->id)->first()?->code;
if ($code === null) {
$code = (new InviteCode())->add($this->user->id, $this->user->is_admin);
}
$invite_url = $_ENV['baseUrl'] . '/code/' . $code;
$invite_reward_rate = Config::obtain('invite_reward_rate') * 100;
// 已提交申请
$waitDrawCount = (new Draw())->where('user_id', $this->user->id)->where('status', 0)->count();
$waitDrawHave = $waitDrawCount >= 1 ? true : false;
return $response->write(
$this->view()
->assign('wait_draw_have', $waitDrawHave)
->assign('aff_draw_need', $_ENV['aff_draw_need'])
->assign('aff_reward_gb', $_ENV['aff_reward_gb'])
->assign('aff_draw_fee_rate', $_ENV['aff_draw_fee_rate'])
->assign('invite_url', $invite_url)
->assign('invite_reward_rate', $invite_reward_rate)
->fetch('user/invite.tpl')
);
}
public function aJaxAffMoneyLog(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$iPage = $args['page'] ?? 1;
$paybacks = (new Payback())->where('ref_by', $this->user->id)
->orderBy('id', 'desc')
->paginate(9, ['*'], 'page', $iPage);
foreach ($paybacks as $payback) {
$payback->datetime = Tools::toDateTime($payback->datetime);
}
$sPageBar = PageBar::cool($paybacks->lastPage(), $paybacks->currentPage(), "/user/invate/");
$sView = $this->view()
->assign('oAffMoneyLogList', $paybacks)
->assign('pageBar', $sPageBar)
->fetch('user/invite/ajax_affMoneyLog.tpl');
return $response->withJson([
'ret' => 1,
'view' => $sView,
]);
}
public function usdtAddrSave(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$oAntiXss = new AntiXSS();
$sUsdtAddr = $oAntiXss->xss_clean($request->getParam('usdt'));
$this->user->usdt_addr = $sUsdtAddr;
$this->user->save();
return $response->withJson([
'ret' => 1,
'msg' => '设置成功'
]);
}
public function reset(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$user = $this->user;
$user->removeInvite();
$code = (new InviteCode())->add($user->id);
return $response->withJson([
'ret' => 1,
'msg' => '重置成功',
'data' => [
'invite-url' => $_ENV['baseUrl'] . '/code/' . $code,
],
]);
}
}