GenerateBookUvRegisterStat.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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' => 'songdb@iqiyoo.com', 'name' => 'songdb'],
  48. ['address' => 'zhaojp@yqsd.net', 'name' => '赵君平'],
  49. ['address' => 'zhoulj@iqiyoo.com', 'name' => '周灵杰'],
  50. );
  51. $content ='';
  52. if ($inside_result) {
  53. $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>";
  54. foreach ($inside_result as $item) {
  55. $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>";
  56. }
  57. $content .= "</table>";
  58. }
  59. $content.='</hr>';
  60. if ($outside_result) {
  61. $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>";
  62. foreach ($outside_result as $item) {
  63. $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>";
  64. }
  65. $content .= "</table>";
  66. }
  67. SendStatsEmailService::SendHtmlEmailWithAcce($to_user, ['subject' => '网读云'.date("Y-m-d", time()) . "内外部派单按书统计数据", 'body' => $content]);
  68. }
  69. }