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

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

parent e2802129
......@@ -3,6 +3,7 @@
namespace App\Console\Commands;
use App\Helpers\Constants;
use App\Models\CrawlerListenHistory;
use App\Models\Crontjob;
use App\Models\Report\DailyReport;
use App\Models\Report\MonthlyReport;
......@@ -58,23 +59,29 @@ class CalculateReportCommand extends Command
Crontjob::create(['message' => 'CalculateReportCommand is called (' . $type . ')']);
// 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) {
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 = DailyReport::where('date', date('Y-m-d'))->count();
$check = DailyReport::where('date', $date_daily_ranking)->count();
if($check >= 100){
echo "\n Báo cáo đã được tổng hợp trước đó.";
return false;
}
echo "\n - BXH Ngày đã được tạo trước đó.";
} 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('Y-m-d');
$daily_report[$key]['date'] = $date_daily_ranking;
$daily_report[$key]['track_id'] = $daily['track_id'];
$daily_report[$key]['views_zing'] = $daily['date_zing'];
......@@ -95,30 +102,42 @@ class CalculateReportCommand extends Command
DB::table(Constants::TABLE_REPORT_VIEWS_DAILY)->insert($daily_report);
}
}
echo "\n - Xử lý xong BXH Ngày.";
}
// 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 (Constants::IS_SAVE_LISTEN_LOG_SAME_DAY) {
$date_log = date('Y-m-d');
} else {
$date_log = date('Y-m-d', time() - 86400);
}
// Check xem đã insert vào report_views_daily chưa
$check_log = CrawlerListenHistory::where('date_log', $date_daily_ranking)->count();
if($check_log >= 100){
echo "\n - Log ngày đã được tạo trước đó.";
} else {
echo "\n - Bắt đầu 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]['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]['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]['total_listen'] = $daily['total_listen'];
$daily_report[$key]['created_at'] = Carbon::now();
$daily_report[$key]['updated_at'] = Carbon::now();
......@@ -127,7 +146,11 @@ class CalculateReportCommand extends Command
DB::table(Constants::TABLE_CRAWLER_LISTEN_HISTORIES)->insert($daily_report);
}
}
echo "\n - Kết thúc xử lý Log ngày.";
}
break;
case 'weekly':
// Check xem đã insert vào report_views_weekly chưa
$check = WeeklyReport::where('week', date('W'))
......@@ -254,6 +277,6 @@ class CalculateReportCommand extends Command
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
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
public $timestamps = true;
protected $fillable = [
'date_log',
'track_id',
'alltime_zing','alltime_nct','alltime_nhacvn','alltime_keeng',
'zing_count',
'nct_count',
'nhacvn_count',
......
......@@ -13,6 +13,7 @@ class DailyReportView extends Model
protected $fillable = [
'track_id',
'alltime_zing', 'alltime_nct', 'alltime_keeng',
'date_zing', 'date_nct', 'date_keeng', 'total_listen',
'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