PushStatisticsInfoCommand.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Command;
  4. use App\Model\CollectionsModel;
  5. use App\Model\Mongo\RegisterModel;
  6. use App\Model\Mongo\StatisticsModel;
  7. use App\Model\VipOrderModel;
  8. use App\Repositories\StatisticsRepository;
  9. use App\Repositories\Utils\TelegramRepository;
  10. use Carbon\Carbon;
  11. use Hyperf\Command\Command as HyperfCommand;
  12. use Hyperf\Command\Annotation\Command;
  13. use Hyperf\Redis\Redis;
  14. use Symfony\Component\Console\Input\InputArgument;
  15. /**
  16. * @Command
  17. */
  18. class PushStatisticsInfoCommand extends HyperfCommand
  19. {
  20. public function __construct()
  21. {
  22. parent::__construct('push:statistics_info');
  23. }
  24. public function configure()
  25. {
  26. parent::configure();
  27. $this->setDescription('推送统计数据到tg群');
  28. $this->addArgument('date', InputArgument::OPTIONAL, '日期', '');
  29. }
  30. public function handle()
  31. {
  32. $date = $this->input->getArgument('date');
  33. if (empty($date)) {
  34. // 定义昨天
  35. $date = Carbon::now()->subDays(1)->toDateString();
  36. } else {
  37. $date = Carbon::parse($date)->toDateString();
  38. }
  39. /**
  40. * @var StatisticsRepository $repo
  41. */
  42. $repo = make(StatisticsRepository::class);
  43. $data = $repo->oneDayInfo($date);
  44. $vipMoney = $data['all_money'] - $data['coins_money'];
  45. /**
  46. * @var TelegramRepository $tgRepo
  47. */
  48. $tgRepo = make(TelegramRepository::class);
  49. $taskName = 'data_report';
  50. $nowDate = Carbon::now()->toDateTimeString();
  51. $appFlag = env('APP_NAME', '');
  52. $msgContent = <<<EOT
  53. 【主题】每日单个项目数据汇总({$date})
  54. 【项目标识】{$appFlag}
  55. 【统计日期】{$date}
  56. 【报告时间】{$nowDate}
  57. 【清单如下】
  58. 今日总充值:{$data['all_money']}
  59. 今日VIP充值:{$vipMoney}
  60. 今日金币充值:{$data['coins_money']}
  61. 今日新增:{$data['inc']}
  62. 今日日活:{$data['dua']}
  63. ------------------
  64. EOT;
  65. $tgRepo->sendCommonText($msgContent, $taskName);
  66. $this->info('success');
  67. }
  68. }