* @date 2020-01-31 10:39:38 */ declare(strict_types=1); namespace App\Repositories; use App\Model\CollectionsModel; use Carbon\Carbon; use Psr\SimpleCache\CacheInterface; use App\Model\Mongo\StatisticsModel; class StatisticsRepository { public function oneDayInfo($date) { $dua = $inc = $allMoney = $coinsMoney = 0; $newDate = Carbon::parse($date)->toDateString(); $options = [ 'limit' => 1, 'sort' => ['date' => -1], ]; $where = [ 'date' => [ '$eq' => $newDate, ] ]; $items = make(StatisticsModel::class)->db() ->find($where, $options)->toArray(); if (!empty($items[0])) { $dua = $items[0]['all_active']; // 日活 $inc = $items[0]['all_register']; // 新增 $allMoney = $items[0]['true_price']; // 所有充值 $coinsMoney = $this->totalOneDayCoinsMoney($date); // 金币充值 } $result = [ 'dua' => $dua, 'inc' => $inc, 'all_money' => $allMoney, 'coins_money' => $coinsMoney, ]; return $result; } /** * 统计某一天的金币金额 */ public function totalOneDayCoinsMoney($date) { $dateObj = Carbon::parse($date); $startObj = (clone $dateObj)->startOfDay(); $endObj = (clone $dateObj)->endOfDay(); $money = CollectionsModel::query()->whereBetween('created_at', [$startObj, $endObj])->where('type', 2)->sum('real_amount'); return $money; } }