| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?php
- namespace addons\LuckyGroup\backend\controllers;
- use addons\LuckyGroup\common\enums\LuckyGroupEnum;
- use addons\LuckyGroup\common\models\LuckyGroupBonusPool;
- use addons\LuckyGroup\common\models\LuckyGroupFrozenLog;
- use addons\LuckyGroup\common\models\LuckyGroupLevel;
- use addons\LuckyGroup\common\models\LuckyGroupUser;
- use common\enums\StatusEnum;
- use common\enums\UserWalletEnum;
- use common\models\common\MallSetting;
- use common\models\user\User;
- class RewardPoolController extends BaseController
- {
- public function actionIndex()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $params = \Yii::$app->request->get();
- $where = [];
- $where[] = ['mall_id' => $this->mall_id];
- $where[] = ['status' =>StatusEnum::ENABLED];
- if (!empty($params['bonus_log_id'])) $where[] = ['bonus_log_id' => trim($params['bonus_log_id'])];
- if (!empty($params['user_id'])) $where[] = ['user_id' => trim($params['user_id'])];
- if (!empty($params['level'])) $where[] = ['level' => trim($params['level'])];
- if (isset($params['is_send'])&&$params['is_send']!=='') $where[] = ['is_send' => trim($params['is_send'])];
- if (!empty($params['nickname'])) {
- $user_list = User::lists(['where' => [['like', 'nickname', trim($params['nickname']) . '%', false], ['mall_id' => $this->mall_id],], 'select' => 'id']);
- $user_id_arr = array_column($user_list, 'id');
- $where[] = ['user_id' => $user_id_arr];
- }
- $params['where'] = $where;
- $params['order'] = 'id desc';
- $list = LuckyGroupFrozenLog::listPage($params);
- $level_list = LuckyGroupLevel::lists(['where' => [['mall_id' => $this->mall_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]],
- 'select' => 'level,name', 'index' => 'level', 'order' => 'level asc']);
- $list['level_list'] = $level_list;
- if (!empty($list['list'])) {
- $user_id_arr = array_column($list['list'], 'user_id');
- $user_list = User::lists(['where' => [['id' => $user_id_arr], ['status' => StatusEnum::ENABLED]], 'index' => 'id', 'select' => 'id,nickname,username,avatar_url']);
- foreach ($list['list'] as &$item) {
- $item['nickname'] = $item['username'] = $item['avatar_url'] = $item['activity_title'] = $item['goods_name'] = $item['level_name'] = MallSetting::getDefaultLevelName($this->mall_id);
- if (isset($user_list[$item['user_id']])) {
- $item['nickname'] = $user_list[$item['user_id']]['nickname'];
- $item['username'] = $user_list[$item['user_id']]['username'];
- $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url'] ?: \Yii::$app->request->hostInfo . '/resources/img/common/default-avatar.png';
- }
- if (isset($level_list[$item['level']])) $item['level_name'] = $level_list[$item['level']]['name'] ?? MallSetting::getDefaultLevelName($this->mall_id);
- }
- }
- $page = \Yii::$app->request->get('page');
- if ($page == 1) {
- $params['group']='is_send';
- $params['select'] = 'sum(money) as money,is_send';
- $params['index'] = 'is_send';
- $static_list = LuckyGroupFrozenLog::lists($params);
- $total_money = array_sum(array_column($static_list,'money'));
- $static_arr =[
- 'total_money'=>$total_money,
- 'is_send0'=>$static_list[0]['money']??0,
- 'is_send1'=>$static_list[1]['money']??0,
- 'is_send2'=>$static_list[2]['money']??0,
- ];
- $list['static_arr'] = $static_arr;
- //首次请求统计
- $countPoolMoney = LuckyGroupFrozenLog::find()
- ->select('sum(money) as user_total_money,sum(has_money) as total_has_money')
- ->where(array('mall_id' => $this->mall_id))
- ->andWhere(array('in', 'prize_type', [UserWalletEnum::POOL_REWARD]))
- ->asArray()
- ->one(); //待发放金额(元)
- $user_total_money = $countPoolMoney['user_total_money'] ?? 0;
- $user_has_send_money = $countPoolMoney['total_has_money'] ?? 0;
- $BonusPool = LuckyGroupBonusPool::findOne(['mall_id' => $this->mall_id]);
- $table_data['pool_total_money'] = $BonusPool['total_money'] ?? 0; //奖金池总额(元)
- $table_data['pool_money'] = $BonusPool['money'] ?? 0; //奖金余额总计(元)
- $table_data['pool_total_send_money'] = $table_data['pool_total_money'] - $table_data['pool_money']; //累计发放奖金总计(元)
- $table_data['pool_virtual_send_money'] = $BonusPool['virtual_send_money']??0; //累计虚拟发放奖金总计(元)
- $table_data['user_total_money'] = $user_total_money; // 用户总金额
- $table_data['user_has_send_money'] = $user_has_send_money; //用户已发放金额
- $table_data['user_wait_send_money'] = $user_total_money - $user_has_send_money; // 用户待发放金额
- $frozen_log_list = LuckyGroupFrozenLog::lists(['where' => [
- ['<>', 'is_send', 1],
- ['=', 'prize_type', UserWalletEnum::POOL_REWARD],
- ['=', 'mall_id', $this->mall_id],
- ],
- 'order' => 'created_at asc'
- ], false);
- $bonus_pool_conf = \Yii::$app->services->setting->addons->get($this->mall_id, LuckyGroupEnum::ADDONS_NAME, 'bonus_pool');
- $pool_win_num = $bonus_pool_conf['cond_complete_num'] ?? 0; //奖金池分红拼中次数条件
- $user_id_arr = array_column($frozen_log_list, 'user_id');
- $group_user_list = LuckyGroupUser::lists(['where' => [['user_id' => $user_id_arr], ['>=', 'win_num', $pool_win_num]], 'index' => 'user_id'], false);
- $table_data['user_wait_send_num'] = count($group_user_list);
- $list['table_data'] = $table_data;
- }
- return $this->success('success', $list);
- }
- } else {
- return $this->render('index');
- }
- }
- }
|