| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- <?php
- namespace addons\Boss\backend\controllers;
- use addons\Boss\common\models\AddonsBoss;
- use addons\Boss\common\models\AddonsBossLevel;
- use addons\Boss\common\models\BossPoolPrizeCommissionLog;
- use addons\Boss\common\models\BossPoolPrizeJob;
- use addons\Boss\common\models\BossPoolPrizeOrderLog;
- use Yii;
- use common\controllers\AddonsController;
- use common\enums\StatusEnum;
- use common\models\order\OrderDetail;
- use common\models\user\User;
- /**
- *
- * Class PoolPrizeController
- * @package addons\Boss\backend\controllers
- */
- class PoolPrizeController extends AddonsController
- {
- /**
- * @var string
- */
- public $enableCsrfValidation = false;
- public function actionIndex()
- {
- if (Yii::$app->request->isAjax) {
- if (Yii::$app->request->isGet) {
- $get = Yii::$app->request->get();
- $where = $list = [];
- $where[] = ['=', 'status', StatusEnum::ENABLED];
- $where[] = ['=', 'mall_id', $this->mall_id];
- $with = ['user'];
- $order = 'created_at desc';
- $params = array('where' => $where, 'order' => $order, 'with' => $with, 'limit' => $get['limit'] ?? 15);
- $list = BossPoolPrizeOrderLog::listPage($params, false, true);
- if ($list === false) return $this->error(BossPoolPrizeOrderLog::getStaticError());
- $order_detail = OrderDetail::lists([
- 'where' => [
- ['order_id' => array_column($list['list'], 'order_id')]
- ],
- 'select' => 'order_id, goods_name',
- 'index' => 'order_id'
- ]);
- foreach ($list['list'] as &$v) {
- $v['goods_name'] = isset($order_detail[$v['order_id']]) ? $order_detail[$v['order_id']]['goods_name'] : '--';
- }
- unset($v);
- return $this->success('获取成功', compact('list'));
- }
- }
- return $this->render($this->action->id);
- }
- public function actionUser()
- {
- if (Yii::$app->request->isAjax) {
- $get = Yii::$app->request->get();
- // 检查提交的参数
- $res = Yii::$app->services->validate->validate($get, [
- [['id', 'level', 'user_id'], 'integer'],
- [['id', 'keyword'], 'safe'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- // 获取股东等级
- $level_list = AddonsBossLevel::getBossLevel([['mall_id' => $this->mall_id]], [], true, 'level,name');
- $where = $list = [];
- $where[] = ['=', 'status', StatusEnum::ENABLED];
- $where[] = ['=', 'mall_id', $this->mall_id];
- $where[] = ['>', 'bonus_pool_commission', 0];
- !empty($get['user_id']) && $where[] = ['=', 'user_id', $get['user_id']];
- // 根据搜索手机号查询用户id
- if (!empty($get['keyword'])) {
- $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'mobile', $get['keyword'] . '%', false])->asArray()->column();
- if (empty($user_ids)) $this->success('获取成功', compact('list', 'level_list', 'upgrade_type', 'parents'));
- $where[] = ['in', 'user_id', $user_ids];
- }
- $with = ['user'];
- $order = 'created_at desc';
- $params = array('where' => $where, 'order' => $order, 'with' => $with, 'limit' => $get['limit']);
- $list = AddonsBoss::listPage($params, false, true);
- if ($list === false) return $this->error(AddonsBoss::getStaticError());
- return $this->success('获取成功', compact('list', 'level_list'));
- }
- return $this->render($this->action->id);
- }
- public function actionCommissionLog()
- {
- if (Yii::$app->request->isAjax) {
- $get = Yii::$app->request->get();
- $where = $list = [];
- $where[] = ['=', 'status', StatusEnum::ENABLED];
- $where[] = ['=', 'mall_id', $this->mall_id];
- $where[] = ['=', 'boss_id', $get['boss_id']];
- $with = [];
- $order = 'created_at desc';
- $params = array('where' => $where, 'order' => $order, 'with' => $with, 'limit' => $get['limit'] ?? 15);
- $list = BossPoolPrizeCommissionLog::listPage($params, false, true);
- if ($list === false) return $this->error(BossPoolPrizeCommissionLog::getStaticError());
- $user = User::getOne([['id' => $get['user_id']]], true, [], false, 'id, nickname, avatar_url, mobile');
- foreach ($list['list'] as &$v) {
- $v['created_at'] = date('Y-m-d H:i:s', $v['created_at']);
- $v['start_at'] = date('Y-m-d', strtotime($v['start_at']));
- $v['end_at'] = date('Y-m-d', strtotime($v['end_at']));
- $v['billing_cycle'] = $v['billing_cycle'] == 1 ? '天' : ($v['billing_cycle'] == 2 ? '周' : '月');
- }
- return $this->success('获取成功', compact('list', 'user'));
- }
- }
- public function actionSettlementList()
- {
- if (Yii::$app->request->isAjax) {
- if (Yii::$app->request->isGet) {
- $get = Yii::$app->request->get();
- $where = $list = [];
- $where[] = ['=', 'status', StatusEnum::ENABLED];
- $where[] = ['=', 'mall_id', $this->mall_id];
- if (isset($get['start_at']) && !empty($get['start_at'])) {
- $where[] = ['>=', 'created_at', strtotime($get['start_at'])];
- }
- if (isset($get['end_at']) && !empty($get['end_at'])) {
- $where[] = ['<=', 'created_at', strtotime($get['end_at'])];
- }
- $order = 'created_at desc';
- $params = array('where' => $where, 'order' => $order, 'limit' => $get['limit'] ?? 15);
- $list = BossPoolPrizeJob::listPage($params, false, true);
- if ($list === false) return $this->error(BossPoolPrizeJob::getStaticError());
- foreach ($list['list'] as &$val) {
- $date_limit = explode('-', $val['date_limit']);
- $val['date_limit'] = date('Y-m-d', strtotime($date_limit[0])) . '至' . date('Y-m-d', strtotime($date_limit[1]));
- }
- unset($val);
- return $this->success('获取成功', compact('list'));
- }
- }
- return $this->render($this->action->id);
- }
- public function actionSettlementDetail()
- {
- if (Yii::$app->request->isAjax) {
- $get = Yii::$app->request->get();
- $where = $list = [];
- $where[] = ['=', 'status', StatusEnum::ENABLED];
- $where[] = ['=', 'mall_id', $this->mall_id];
- $where[] = ['=', 'job_id', $get['job_id']];
- if (isset($get['user_id']) && !empty($get['user_id'])) {
- $where[] = ['user_id' => $get['user_id']];
- }
- if (isset($get['keyword']) && !empty($get['keyword'])) {
- $user_list = User::lists([
- 'where' => [
- ['mall_id' => $this->mall_id],
- ['like', 'nickname', $get['keyword']]
- ],
- 'select' => 'id'
- ]);
- $where[] = ['user_id' => array_column($user_list, 'id') ?? []];
- }
- $with = [
- 'user' => function ($query) {
- return $query->select('id, nickname, avatar_url, mobile');
- }
- ];
- $order = 'id desc';
- $params = array('where' => $where, 'order' => $order, 'with' => $with, 'limit' => $get['limit'] ?? 15);
- $list = BossPoolPrizeCommissionLog::listPage($params, false, true);
- if ($list === false) return $this->error(BossPoolPrizeCommissionLog::getStaticError());
- return $this->success('获取成功', compact('list'));
- }
- return $this->render($this->action->id);
- }
- public function actionGetTopData()
- {
- if (Yii::$app->request->isAjax) {
- if (Yii::$app->request->isGet) {
- $prize_pool_amount = BossPoolPrizeOrderLog::find()
- ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'settlement_status' => StatusEnum::DISABLED])
- ->sum('amount');
- $prize_pool_amount = $prize_pool_amount ? $prize_pool_amount : 0;
- $data = [
- 'prize_pool_amount' => $prize_pool_amount,
- ];
- return $this->success('获取成功', $data);
- }
- }
- }
- }
|