0, 'my_bonus' => 0, 'already_give' => 0, 'wait_give' => 0, 'in_user_num' => 0, ]; $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'); $data = LuckyGroupBonusPool::getOne([['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]]); $group_user_list = LuckyGroupUser::lists(['where' => [['user_id' => $user_id_arr], ['>=', 'win_num', $pool_win_num]], 'index' => 'user_id'], false); $user_wait_send_num = count($group_user_list); $res['in_user_num'] = $user_wait_send_num; //获取拼团用户 $group_user = LuckyGroupUser::getGroupUser($this->mall_id, $this->user_id); if ($group_user === false) return $this->error(LuckyGroupUser::getStaticError()); if ($data) { $res['total_bonus'] = $data->money; $res['my_bonus'] = $group_user->pool_commission; $res['wait_give'] = $group_user->frozen_commission; $res['already_give'] = bcsub($group_user->pool_commission, $group_user->frozen_commission, 2); } return $this->success('success', $res); } public function actionGetExpandNum() { $count1 = UserPartitionRelationship::getChildCounts($this->user_id, 1); $count2 = UserPartitionRelationship::getChildCounts($this->user_id, 2); return $this->success('success', ['level_one' => $count1, 'level_two' => $count2, 'all' => $count1 + $count2]); } /** * 我的推广 * User: wniu * Date: 2022/3/31 * Time: 3:36 下午 * */ public function actionExpand() { $get = \Yii::$app->request->get(); $res = \Yii::$app->services->validate->validate($get, [ [['level'], 'required'], ]); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['where'][] = ['=', 'status', StatusEnum::ENABLED]; $params['select'] = 'id,nickname,avatar_url,created_at'; if ($get['level'] == 1) { $children_id_arr = UserPartitionRelationship::getChildIdArr($this->user_id, 1); } else { $children_id_arr = UserPartitionRelationship::getChildIdArr($this->user_id, 2); } $params['where'][] = ['in', 'id', $children_id_arr]; $user_list = User::listPage($params); $group_list = []; if ($user_list['list']) { $group_ids = array_column($user_list['list'], 'id'); $group_list = LuckyGroupUser::lists(['where' => [['in', 'user_id', $group_ids]], 'select' => 'user_id,attend_money', 'index' => 'user_id']); foreach ($user_list['list'] as $k => &$v) { $v['attend_money'] = 0; if (isset($group_list[$v['id']])) { $v['attend_money'] = $group_list[$v['id']]['attend_money']; } } } return $this->success('success', $user_list); } /** * 分红池排行榜 * User: wniu * Date: 2022/3/31 * Time: 3:36 下午 * */ public function actionRankList() { $params = \Yii::$app->request->get(); $params['where'] = [ ['mall_id' => $this->mall_id] ]; $params['order'] = 'win_num desc ,user_id desc'; $params['select'] = 'pool_commission ,user_id,win_num'; $params['with'] = ['user']; $list = LuckyGroupUser::listPage($params); if ($list['list']) { $n = ($list['page'] - 1) * $list['page_size'] + 1; foreach ($list['list'] as $k => &$v) { $v['rank'] = $n; $n++; } } return $this->success('success', $list); } /** * 往期奖金列表 * User: wniu * Date: 2022/3/31 * Time: 3:37 下午 * */ public function actionHistoryList() { $params['where'] = [ ['mall_id' => $this->mall_id] ]; $params['order'] = 'created_at desc'; $params['select'] = 'created_at,user_num,money,user_price'; $list = LuckyGroupBonusLog::listPage($params); if(!empty($list['list'])){ foreach ($list['list'] as &$item){ if(empty($item['user_num'])) $item['user_price'] = 0; } } return $this->success('success', $list); } /** * 我的收益 * User: wniu * Date: 2022/3/31 * Time: 4:25 下午 * */ public function actionMyList() { $get = \Yii::$app->request->get(); $res = \Yii::$app->services->validate->validate($get, [ [['send_type', 'money_type'], 'required'], ]); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['where'] = [ ['mall_id' => $this->mall_id], ['change_type' => 'add'], ['user_id' => $this->user_id], ['from_type' => AddonsEnum::ADDONS_NAME_LUCKY_GROUP] ]; $params['select'] = 'desc,capital_type,change_num,created_at'; $params['order'] = 'created_at desc'; $award = AssetsType::REWARD_MAP; $frozen = ''; if ($get['send_type'] == 'wait') {//待结算 $frozen = '_frozen'; } if ($get['money_type'] == 'balance') { $capital_type = [ UserWalletEnum::FIRST, UserWalletEnum::SECOND, UserWalletEnum::ATTEND_REWARD, UserWalletEnum::WIN_REWARD, UserWalletEnum::POOL_REWARD, UserWalletEnum::INVITE_REWARD, ]; $params['where'][] = ['in','capital_type',$capital_type]; $wallet_type = 'balance' . $frozen; } elseif ($get['money_type'] == 'score') { $wallet_type = 'score' . $frozen; } elseif ($get['money_type'] == 'commission') { $wallet_type = 'commission' . $frozen; } CapitalLog::$capitalType = "{$wallet_type}"; $list = CapitalLog::listPage($params); if ($list['list']) { foreach ($list['list'] as $k => &$v) { $v['text'] = isset($award[$v['capital_type']]) ? $award[$v['capital_type']] : ''; $v['created_at'] = date('Y-m-d H:i:s', $v['created_at']); } } return $this->success('success', $list); } }