1
0
Fork 0
mirror of https://github.com/janickiy/yii2-nomer synced 2025-03-09 15:39:59 +00:00
yii2-nomer/controllers/ReferralsController.php
2020-02-05 06:34:26 +03:00

68 lines
No EOL
2.2 KiB
PHP

<?php
namespace app\controllers;
use app\models\Checkout;
use app\models\User;
use yii\data\ActiveDataProvider;
use yii\db\Expression;
use yii\helpers\ArrayHelper;
use yii\helpers\Url;
use yii\web\Controller;
use yii\web\ForbiddenHttpException;
class ReferralsController extends Controller {
public function actionIndex() {
if(\Yii::$app->getUser()->isGuest) return $this->goHome();
$dataProvider = new ActiveDataProvider([
'query' => User::find()->where(["ref_id" => \Yii::$app->getUser()->getId()])
]);
$todayUsers = User::find()->where(["ref_id" => \Yii::$app->getUser()->id])->andWhere([">=", "tm_create", date("Y-m-d 00:00:00")])->count(1);
$totalUsers = User::find()->where(["ref_id" => \Yii::$app->getUser()->id])->count(1);
$users = User::find()->where(["ref_id" => \Yii::$app->getUser()->id])->with(["payments"])->all();
$payments = ArrayHelper::getColumn($users, "payments.sum");
$sum = array_sum($payments);
return $this->render("index", [
"dataProvider" => $dataProvider,
"todayUsers" => $todayUsers,
"totalUsers" => $totalUsers,
"sum" => $sum * 0.3
]);
}
public function actionCheckout() {
if(\Yii::$app->getUser()->isGuest) {
return $this->goHome();
}
$wallet = \Yii::$app->request->get("wallet");
/* @var $user \app\models\User */
$user = \Yii::$app->getUser()->getIdentity();
if($user->ref_balance < 5000) {
return $this->redirect(["referrals/index"]);
}
$checkout = new Checkout();
$checkout->user_id = $user->id;
$checkout->wallet = $wallet;
$checkout->sum = $user->ref_balance;
$checkout->tm_create = new Expression('NOW()');
if($checkout->save()) {
$user->ref_balance = 0;
$user->save();
}
return $this->redirect(["referrals/index"]);
}
public function actionNew($id) {
\Yii::$app->session->set("ref_id", join("~", [$id, time()]));
if(!\Yii::$app->getUser()->isGuest) {
return $this->goHome();
}
return $this->redirect(["/", '#' => 'signup']);
}
}