GenerateBookUvRegisterStat.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sogndb
  5. * Date: 2018/02/05
  6. * Time: 下午5:26
  7. */
  8. namespace App\Console\Commands\SendOrder;
  9. use App\Modules\Statistic\Services\SendStatsEmailService;
  10. use DB;
  11. use Illuminate\Console\Command;
  12. use Log;
  13. class GenerateBookUvRegisterStat extends Command
  14. {
  15. /**
  16. * 执行命令 php artisan send_order:generate_day_stat
  17. *
  18. * The name and signature of the console command.
  19. *
  20. * @var string
  21. */
  22. protected $signature = 'sendOrder_book_uv_register_stat';
  23. /**
  24. * The console command description.
  25. *
  26. * @var string
  27. */
  28. protected $description = '内外部派单按书累计数据';
  29. /**
  30. * Execute the console command.
  31. *
  32. * @return mixed
  33. */
  34. public function handle()
  35. {
  36. $date_end = date("Y-m-d");
  37. $date_begin = date("Y-m-d", strtotime(' -1 day'));
  38. $base_sql = "SELECT book_name,bid,sum(uv) as total_uv, sum(register_user_num) total_register_user_num
  39. FROM send_orders_stats WHERE send_time BETWEEN '%s' AND '%s'";
  40. //内部
  41. $inside_sql = $base_sql . "AND force_user_num<20 GROUP BY bid ORDER BY total_uv desc LIMIT 10";
  42. $inside_result = DB::select(sprintf($inside_sql, $date_begin, $date_end));
  43. //外部
  44. $outside_sql = $base_sql . "AND force_user_num>=20 GROUP BY bid ORDER BY total_register_user_num desc LIMIT 10";
  45. $outside_result = DB::select(sprintf($outside_sql, $date_begin, $date_end));
  46. $to_user = array(
  47. ['address' => 'zhangzg@iqiyoo.com', 'name' => '张总'],
  48. ['address' => 'songdb@iqiyoo.com', 'name' => 'songdb'],
  49. ['address' => 'zhaojp@yqsd.net', 'name' => '赵君平'],
  50. ['address' => 'huangrr@yqsd.net', 'name' => '黄蓉蓉'],
  51. ['address' => 'wankw@zw88.net', 'name' => '万开伟'],
  52. ['address' => 'liur@iqiyoo.com', 'name' => '刘嵘'],
  53. ['address' => 'chensj@zw88.net', 'name' => '陈帅君'],
  54. ['address' => 'yuyy@yqsd.net', 'name' => '俞焰艳'],
  55. ['address' => 'sijj@yqsd.net', 'name' => 'sijj@yqsd.net'],
  56. );
  57. $content ='';
  58. if ($inside_result) {
  59. $content .= "<table border='1' cellpadding='10' cellspacing='0'><tr><td align='center'>类型</td><td align='center'>书本id</td><td align='center'>书名</td><td align='center'>总UV</td><td align='center'>总注册用户数</td></tr>";
  60. foreach ($inside_result as $item) {
  61. $content .= "<tr><td align='center'>内部派单</td><td align='center'>{$item->bid}</td><td align='center'>{$item->book_name}</td><td align='center'>{$item->total_uv}</td><td align='center'>{$item->total_register_user_num}</td></tr>";
  62. }
  63. $content .= "</table>";
  64. }
  65. $content.='</hr>';
  66. if ($outside_result) {
  67. $content .= "<table border='1' cellpadding='10' cellspacing='0'><tr><td align='center'>类型</td><td align='center'>书本id</td><td align='center'>书名</td><td align='center'>总UV</td><td align='center'>总注册用户数</td></tr>";
  68. foreach ($outside_result as $item) {
  69. $content .= "<tr><td align='center'>外部派单</td><td align='center'>{$item->bid}</td><td align='center'>{$item->book_name}</td><td align='center'>{$item->total_uv}</td><td align='center'>{$item->total_register_user_num}</td></tr>";
  70. }
  71. $content .= "</table>";
  72. }
  73. SendStatsEmailService::SendHtmlEmailWithAcce($to_user, ['subject' => date("Y-m-d", time()) . "内外部派单按书统计数据", 'body' => $content]);
  74. }
  75. }