StatisticsRepository.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. /**
  3. * 系统消息.
  4. *
  5. * @author jim <jim458734573@gmail.com>
  6. * @date 2020-01-31 10:39:38
  7. */
  8. declare(strict_types=1);
  9. namespace App\Repositories;
  10. use App\Model\CollectionsModel;
  11. use Carbon\Carbon;
  12. use Psr\SimpleCache\CacheInterface;
  13. use App\Model\Mongo\StatisticsModel;
  14. class StatisticsRepository
  15. {
  16. public function oneDayInfo($date)
  17. {
  18. $dua = $inc = $allMoney = $coinsMoney = 0;
  19. $newDate = Carbon::parse($date)->toDateString();
  20. $options = [
  21. 'limit' => 1,
  22. 'sort' => ['date' => -1],
  23. ];
  24. $where = [
  25. 'date' => [
  26. '$eq' => $newDate,
  27. ]
  28. ];
  29. $items = make(StatisticsModel::class)->db()
  30. ->find($where, $options)->toArray();
  31. if (!empty($items[0])) {
  32. $dua = $items[0]['all_active']; // 日活
  33. $inc = $items[0]['all_register']; // 新增
  34. $allMoney = $items[0]['true_price']; // 所有充值
  35. $coinsMoney = $this->totalOneDayCoinsMoney($date); // 金币充值
  36. }
  37. $result = [
  38. 'dua' => $dua,
  39. 'inc' => $inc,
  40. 'all_money' => $allMoney,
  41. 'coins_money' => $coinsMoney,
  42. ];
  43. return $result;
  44. }
  45. /**
  46. * 统计某一天的金币金额
  47. */
  48. public function totalOneDayCoinsMoney($date)
  49. {
  50. $dateObj = Carbon::parse($date);
  51. $startObj = (clone $dateObj)->startOfDay();
  52. $endObj = (clone $dateObj)->endOfDay();
  53. $money = CollectionsModel::query()->whereBetween('created_at', [$startObj, $endObj])->where('type', 2)->sum('real_amount');
  54. return $money;
  55. }
  56. }