123 lines
4.1 KiB
PHP
123 lines
4.1 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: zn
|
|
* Date: 2017/7/12
|
|
* Time: 11:05
|
|
*/
|
|
|
|
namespace app\controllers;
|
|
|
|
|
|
use app\utils\InfoUtil;
|
|
use common\modules\rebate\Rebate;
|
|
use common\modules\rebate\UserRebate;
|
|
use Yii;
|
|
use yii\data\Pagination;
|
|
use yii\web\Controller;
|
|
|
|
/**推广
|
|
* Class RebateController
|
|
* @package app\controllers
|
|
*/
|
|
class RebateController extends Controller
|
|
{
|
|
/**
|
|
* 推广盈利
|
|
* @return string
|
|
*/
|
|
public function actionRebateList()
|
|
{
|
|
$userID = Yii::$app->request->get('user_id');
|
|
$level = Yii::$app->request->get('level');
|
|
|
|
if (!isset($userID) && !isset($level)) return $this->render('rebate_list');
|
|
|
|
if (!isset($userID)) return InfoUtil::Info($this, '未填写用户ID');
|
|
if (!isset($level)) return InfoUtil::Info($this, '未填写几级分销');
|
|
|
|
$page = Yii::$app->request->get('page');
|
|
|
|
if (empty($page)) $page = 1;
|
|
$page--;
|
|
|
|
$pageSize = 20;
|
|
|
|
$offset = $page * $pageSize;
|
|
|
|
$find = Rebate::find()->where(['be_user_id' => $userID, 'level' => $level])->orderBy(['updated_at' => SORT_DESC]);
|
|
$totalCount = $find->count();
|
|
$totalGold = $find->sum('rebate_gold');
|
|
|
|
$dbList = $find->offset($offset)->limit($pageSize)->all();
|
|
|
|
$pages = new Pagination(['totalCount' => $totalCount, 'pageSize' => $pageSize]);
|
|
|
|
$returnData['totalCount'] = $totalCount;
|
|
$returnData['totalGold'] = $totalGold;
|
|
$returnData['list'] = $dbList;
|
|
$returnData['pages'] = $pages;
|
|
return $this->render('rebate_list', $returnData);
|
|
}
|
|
|
|
public function actionRebateUserList()
|
|
{
|
|
$userID = Yii::$app->request->get('user_id');
|
|
$startDate = Yii::$app->request->get('startDate');
|
|
$endDate = Yii::$app->request->get('endDate');
|
|
$level = Yii::$app->request->get('level');
|
|
|
|
if (!isset($userID)) return $this->render('rebate_user_list');
|
|
|
|
if (!isset($userID)) return InfoUtil::Info($this, '玩家ID错误');
|
|
|
|
$page = Yii::$app->request->get('page');
|
|
|
|
if (empty($page)) $page = 1;
|
|
$page--;
|
|
|
|
$pageSize = 20;
|
|
|
|
$offset = $page * $pageSize;
|
|
|
|
if (empty($startDate)) $startDate = 0;
|
|
if (empty($endDate)) $endDate = time();
|
|
if (empty($level)) $level = '1,2,3';
|
|
|
|
$sql = 'SELECT ur.* ,user.phone,user.nickname,user.realname FROM farm.farm_user_rebate ur left join farm.farm_user user on child_user_id=user.id
|
|
where parent_user_id=:parent_user_id AND ur.created_at>=:startDate AND ur.created_at<=:endDate AND ur.level in(:level) ORDER BY ur.created_at DESC ';
|
|
$find = Yii::$app->db->createCommand($sql)
|
|
->bindValue(':parent_user_id', $userID)
|
|
->bindValue(':startDate', $startDate)
|
|
->bindValue(':endDate', $endDate);
|
|
|
|
$sql = $find->getRawSql();
|
|
$countSql = sprintf('select count(*) count from (%s) u', $sql);
|
|
$totalCount = Yii::$app->db->createCommand(str_replace(':level', $level, $countSql))
|
|
->queryOne()['count'];
|
|
|
|
$findSql = sprintf('%s LIMIT :offset,:count', $sql);
|
|
$dbList = Yii::$app->db->createCommand(str_replace(':level', $level, $findSql))
|
|
->bindValue(':offset', $offset)
|
|
->bindValue(':count', $pageSize)
|
|
->queryAll();
|
|
|
|
$pages = new Pagination(['totalCount' => $totalCount, 'pageSize' => $pageSize]);
|
|
|
|
$parentUserIDList = UserRebate::find()->andWhere(['child_user_id' => $userID])->orderBy(['level' => SORT_DESC])->all();
|
|
$str = '';
|
|
for ($i = 0; $i < count($parentUserIDList); $i++) {
|
|
if ($i == count($parentUserIDList) - 1)
|
|
$str .= sprintf('%s', $parentUserIDList[$i]->parent_user_id);
|
|
else
|
|
$str .= sprintf('%s=>', $parentUserIDList[$i]->parent_user_id);
|
|
}
|
|
if (empty($str)) $str = "无";
|
|
|
|
$returnData['totalCount'] = $totalCount;
|
|
$returnData['list'] = $dbList;
|
|
$returnData['pages'] = $pages;
|
|
$returnData['parentUser'] = $str;
|
|
return $this->render('rebate_user_list', $returnData);
|
|
}
|
|
} |