hy-farm/muchang/backend/controllers/RebateController.php
2026-05-29 19:54:56 +08:00

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);
}
}