108 lines
3.3 KiB
PHP
Executable File
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,
|
|
],
|
|
]);
|
|
}
|
|
}
|