auth->getUser(); $resp = [ 'team_power' => $user['team_power'], 'team_num' => $user['team_num'], 'direct_num' => $user['direct_num'], 'yesterday_profit' => $this->getYesterdayProfit($user['id']), ]; $resp['list'] = (new UserModel()) ->field('id,address,team_power,team_num,create_time') ->where('parent_id', $user['id']) ->order('id desc') ->select(); foreach ($resp['list'] as $key => $item){ //统计团队人数 $resp['list'][$key]['user_power'] = (new OfflineRechargeRecordModel()) ->where('user_id', $item['id']) ->where('status', OfflineRechargeRecordModel::StatusSuccess) ->sum('power'); $resp['list'][$key]['address'] = substr($item['address'], 0, 4) . '****' . substr($item['address'], -4); unset($resp['list'][$key]['id']); } $this->success('', $resp); } /** * 获取用户昨日团队收益 * @param int $uid 用户ID * @return array */ private function getYesterdayProfit(int $uid): array { $yesterdayStart = Date::unixtime('day', -1); // 昨日0点0分0秒 $yesterdayEnd = Date::unixtime() - 1; // 昨日23点59分59秒 // 算力 $sumPoser = (new LedgerPowerChangeModel()) ->where('user_id', $uid) //->where('action', 'IN', $this->actionPower) ->where('create_time', ['>=', $yesterdayStart], ['<=', $yesterdayEnd], 'AND') ->where('change_amount', '>', 0) ->sum('change_amount'); // USDT // $sumUsdt = (new LedgerUsdtChangeModel()) // ->where('user_id', $uid) // ->where('action', 'IN', $this->actionUsdt) // ->where('create_time', ['>=', $yesterdayStart], ['<=', $yesterdayEnd], 'AND') // ->where('change_amount', '>', 0) // ->sum('change_amount'); // SMH $sumSmh = (new LedgerSmhChangeModel()) ->where('user_id', $uid) ->where('create_time', ['>=', $yesterdayStart], ['<=', $yesterdayEnd], 'AND') ->where('change_amount', '>', 0) ->sum('change_amount'); //昨日团队业绩 $yesterdayTeamPower = DB::table('team_rewards') ->where('user_id', $uid) ->where('date_time', date('Y-m-d', strtotime('-1 day'))) ->value('team_power'); // 转成字符串型 return [ 'power' => strval($sumPoser), //'usdt' => strval($sumUsdt), 'smh' => strval($sumSmh), 'team_power' => strval($yesterdayTeamPower) ? '' : 0, ]; } /** * 团队收益列表 * @return void */ public function profitList() { $type = $this->request->post('query.type'); // 资产类型 $model = new LedgerPowerChangeModel(); $action = []; switch ($type) { case 1: $model = new LedgerPowerChangeModel(); $action = $this->actionPower; break; case 2: $model = new LedgerUsdtChangeModel(); $action = $this->actionUsdt; break; case 3: $model = new LedgerTokenChangeModel(); $action = $this->actionToken; break; default: $this->error('资产类型错误'); break; } $where = [ 'user_id' => $this->auth->getTokenUserID(), 'action' => ['IN', $action], ]; $paginator = $model->where($where)->order('id DESC')->paginate($this->pageSize); $this->success('', $this->buildResp($paginator->total(), $paginator->currentPage(), $paginator->items())); } }