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