Commit 61319a58 by Phạm Văn Đoan

cập nhật xử lý BXH ngày

parent e2802129
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace App\Console\Commands; namespace App\Console\Commands;
use App\Helpers\Constants; use App\Helpers\Constants;
use App\Models\CrawlerListenHistory;
use App\Models\Crontjob; use App\Models\Crontjob;
use App\Models\Report\DailyReport; use App\Models\Report\DailyReport;
use App\Models\Report\MonthlyReport; use App\Models\Report\MonthlyReport;
...@@ -58,76 +59,98 @@ class CalculateReportCommand extends Command ...@@ -58,76 +59,98 @@ class CalculateReportCommand extends Command
Crontjob::create(['message' => 'CalculateReportCommand is called (' . $type . ')']); Crontjob::create(['message' => 'CalculateReportCommand is called (' . $type . ')']);
// Xử lý di chuyển // Xử lý di chuyển
echo "\n Bắt đầu xử lý tính toán báo cáo: " . $type; echo "\n Bắt đầu xử lý tính toán BXH: " . $type;
switch ($type) { switch ($type) {
case 'daily': case 'daily':
// Lấy ngày tạo BXH ngày từ cấu hình, nếu xử lý BXH ngày hôm sau thì ngày của BXH là ngày hôm trước.
if (Constants::IS_CREATE_DAILY_RANKING_SAME_DAY) {
$date_daily_ranking = date('Y-m-d');
} else {
$date_daily_ranking = date('Y-m-d', time() - 86400);
}
// Check xem đã insert vào report_views_daily chưa // Check xem đã insert vào report_views_daily chưa
$check = DailyReport::where('date', date('Y-m-d'))->count(); $check = DailyReport::where('date', $date_daily_ranking)->count();
if($check >= 100){ if($check >= 100){
echo "\n Báo cáo đã được tổng hợp trước đó."; echo "\n - BXH Ngày đã được tạo trước đó.";
return false; } else {
echo "\n - Bắt đầu xử lý BXH Ngày...";
$daily_data = DailyReportView::select('*')->take(100)->get()->toArray();
if (count($daily_data) > 0) {
$daily_report = [];
foreach ($daily_data as $key => $daily) {
$daily_report[$key]['date'] = $date_daily_ranking;
$daily_report[$key]['track_id'] = $daily['track_id'];
$daily_report[$key]['views_zing'] = $daily['date_zing'];
$daily_report[$key]['views_nct'] =$daily['date_nct'];
$daily_report[$key]['views_keeng'] = $daily['date_keeng'];
$daily_report[$key]['point_zing'] = $daily['point_zing'];
$daily_report[$key]['point_nct'] = $daily['point_nct'];
$daily_report[$key]['point_keeng'] = $daily['point_keeng'];
$daily_report[$key]['total_point'] = $daily['total_point'];
$daily_report[$key]['ranking'] = $key + 1;
$daily_report[$key]['created_at'] = Carbon::now();
$daily_report[$key]['updated_at'] = Carbon::now();
}
if (count($daily_report) > 0) {
DB::table(Constants::TABLE_REPORT_VIEWS_DAILY)->insert($daily_report);
}
}
echo "\n - Xử lý xong BXH Ngày.";
} }
$daily_data = DailyReportView::select('*')->take(100)->get()->toArray(); // Lấy ngày ghi log từ cấu hình, nếu xử lý log ngày hôm sau thì ngày của log là ngày hôm trước.
if (count($daily_data) > 0) { if (Constants::IS_SAVE_LISTEN_LOG_SAME_DAY) {
$daily_report = []; $date_log = date('Y-m-d');
foreach ($daily_data as $key => $daily) { } else {
$daily_report[$key]['date'] = date('Y-m-d'); $date_log = date('Y-m-d', time() - 86400);
$daily_report[$key]['track_id'] = $daily['track_id']; }
$daily_report[$key]['views_zing'] = $daily['date_zing'];
$daily_report[$key]['views_nct'] =$daily['date_nct'];
$daily_report[$key]['views_keeng'] = $daily['date_keeng'];
$daily_report[$key]['point_zing'] = $daily['point_zing'];
$daily_report[$key]['point_nct'] = $daily['point_nct'];
$daily_report[$key]['point_keeng'] = $daily['point_keeng'];
$daily_report[$key]['total_point'] = $daily['total_point']; // Check xem đã insert vào report_views_daily chưa
$daily_report[$key]['ranking'] = $key + 1; $check_log = CrawlerListenHistory::where('date_log', $date_daily_ranking)->count();
$daily_report[$key]['created_at'] = Carbon::now(); if($check_log >= 100){
$daily_report[$key]['updated_at'] = Carbon::now(); echo "\n - Log ngày đã được tạo trước đó.";
} } else {
if (count($daily_report) > 0) { echo "\n - Bắt đầu xử lý Log ngày...";
DB::table(Constants::TABLE_REPORT_VIEWS_DAILY)->insert($daily_report); // Lưu log lượt nghe theo ngày
$daily_data_all = DailyReportView::select('*')->get()->toArray();
if (count($daily_data_all) > 0) {
$daily_report = [];
foreach ($daily_data_all as $key => $daily) {
$daily_report[$key]['date_log'] = $date_log;
$daily_report[$key]['track_id'] = $daily['track_id'];
// Lượt nghe cộng dồn đến ngày
$daily_report[$key]['alltime_zing'] = $daily['alltime_zing'];
$daily_report[$key]['alltime_nct'] = $daily['alltime_nct'];
$daily_report[$key]['alltime_nhacvn'] = 0;
$daily_report[$key]['alltime_keeng'] = $daily['alltime_keeng'];
// Lượt nghe so với ngày hôm qua
$daily_report[$key]['zing_count'] = $daily['date_zing'];
$daily_report[$key]['nct_count'] =$daily['date_nct'];
$daily_report[$key]['nhacvn_count'] = 0;
$daily_report[$key]['keeng_count'] = $daily['date_keeng'];
$daily_report[$key]['total_listen'] = $daily['total_listen'];
$daily_report[$key]['created_at'] = Carbon::now();
$daily_report[$key]['updated_at'] = Carbon::now();
}
if (count($daily_report) > 0) {
DB::table(Constants::TABLE_CRAWLER_LISTEN_HISTORIES)->insert($daily_report);
}
} }
echo "\n - Kết thúc xử lý Log ngày.";
} }
// Lưu log lượt nghe theo ngày
$daily_data_all = DailyReportView::select('*')->get()->toArray();
if (count($daily_data_all) > 0) {
$daily_report = [];
foreach ($daily_data_all as $key => $daily) {
$daily_report[$key]['track_id'] = $daily['track_id'];
$daily_report[$key]['alltime_zing'] = $daily['alltime_zing'];
$daily_report[$key]['alltime_nct'] = $daily['alltime_nct'];
$daily_report[$key]['alltime_nhacvn'] = 0;
$daily_report[$key]['alltime_keeng'] = $daily['alltime_keeng'];
$daily_report[$key]['zing_count'] = $daily['date_zing'];
$daily_report[$key]['nct_count'] =$daily['date_nct'];
$daily_report[$key]['nhacvn_count'] = 0;
$daily_report[$key]['keeng_count'] = $daily['date_keeng'];
$daily_report[$key]['total_listen'] = $daily['total_listen'];
$daily_report[$key]['point_zing'] = $daily['point_zing'];
$daily_report[$key]['point_nct'] = $daily['point_nct'];
$daily_report[$key]['point_nhacvn'] = 0;
$daily_report[$key]['point_keeng'] = $daily['point_keeng'];
$daily_report[$key]['total_point'] = $daily['total_point'];
$daily_report[$key]['created_at'] = Carbon::now();
$daily_report[$key]['updated_at'] = Carbon::now();
}
if (count($daily_report) > 0) {
DB::table(Constants::TABLE_CRAWLER_LISTEN_HISTORIES)->insert($daily_report);
}
}
break; break;
case 'weekly': case 'weekly':
// Check xem đã insert vào report_views_weekly chưa // Check xem đã insert vào report_views_weekly chưa
$check = WeeklyReport::where('week', date('W')) $check = WeeklyReport::where('week', date('W'))
...@@ -254,6 +277,6 @@ class CalculateReportCommand extends Command ...@@ -254,6 +277,6 @@ class CalculateReportCommand extends Command
break; break;
} }
echo "\n Kết thúc xử lý tính toán báo cáo: " . $type . "\n"; echo "\n Kết thúc xử lý tính toán BXH: " . $type . "\n";
} }
} }
...@@ -68,4 +68,10 @@ class Constants ...@@ -68,4 +68,10 @@ class Constants
const CRAWLER_LISTEN_LIMIT = 500; const CRAWLER_LISTEN_LIMIT = 500;
/* Sang ngày hôm sau mới tạo BXH ngày của lượt nghe của ngày hôm trước nên giá trị false */
const IS_CREATE_DAILY_RANKING_SAME_DAY = false;
/* Sang ngày hôm sau mới lưu log lượt nghe của ngày hôm trước nên giá trị false */
const IS_SAVE_LISTEN_LOG_SAME_DAY = false;
} }
\ No newline at end of file
...@@ -12,7 +12,9 @@ class CrawlerListenHistory extends Model ...@@ -12,7 +12,9 @@ class CrawlerListenHistory extends Model
public $timestamps = true; public $timestamps = true;
protected $fillable = [ protected $fillable = [
'date_log',
'track_id', 'track_id',
'alltime_zing','alltime_nct','alltime_nhacvn','alltime_keeng',
'zing_count', 'zing_count',
'nct_count', 'nct_count',
'nhacvn_count', 'nhacvn_count',
......
...@@ -13,6 +13,7 @@ class DailyReportView extends Model ...@@ -13,6 +13,7 @@ class DailyReportView extends Model
protected $fillable = [ protected $fillable = [
'track_id', 'track_id',
'alltime_zing', 'alltime_nct', 'alltime_keeng',
'date_zing', 'date_nct', 'date_keeng', 'total_listen', 'date_zing', 'date_nct', 'date_keeng', 'total_listen',
'point_zing', 'point_nct', 'point_keeng', 'total_point' 'point_zing', 'point_nct', 'point_keeng', 'total_point'
]; ];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment