Commit fb424b28 by Phạm Văn Đoan

fixbug tổng hợp BXH tuần

parent 0feea417
...@@ -55,14 +55,14 @@ class CalculateReportCommand extends Command ...@@ -55,14 +55,14 @@ class CalculateReportCommand extends Command
$type = $this->choice('Chọn loại báo cáo ', ['daily', 'weekly', 'monthly']); $type = $this->choice('Chọn loại báo cáo ', ['daily', 'weekly', 'monthly']);
} }
// Ghi log xem có gọi không
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 BXH: " . $type; echo "\n Bắt đầu xử lý tính toán BXH: " . $type;
switch ($type) { switch ($type) {
case 'daily': case 'daily':
// Ghi log xem có gọi không
Crontjob::create(['message' => 'CalculateReportCommand is called (' . $type . ')']);
// 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. // 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) { if (Constants::IS_CREATE_DAILY_RANKING_SAME_DAY) {
$date_daily_ranking = date('Y-m-d'); $date_daily_ranking = date('Y-m-d');
...@@ -152,83 +152,90 @@ class CalculateReportCommand extends Command ...@@ -152,83 +152,90 @@ class CalculateReportCommand extends Command
break; break;
case 'weekly': case 'weekly':
// Check xem đã insert vào report_views_weekly chưa if (strtoupper(date('D')) == 'SUN' && date('H') >= 4) {
$check = WeeklyReport::where('week', date('W')) // Ghi log xem có gọi không
->where('month', date('m')) Crontjob::create(['message' => 'CalculateReportCommand is called (' . $type . ')']);
->where('year', date('Y'))
->count(); // Check xem đã insert vào report_views_weekly_new chưa
$check = WeeklyReport::where('week', date('W'))
if($check >= 100){ ->where('month', date('m'))
echo "\n Báo cáo đã được tổng hợp trước đó."; ->where('year', date('Y'))
return false; ->count();
}
if($check >= 100){
if (strtoupper(date('D')) == 'SUN') { echo "\n - BXH Tuần đã được tổng hợp trước đó.";
$weekly_data = WeeklyReportView::select('*')->take(100)->get()->toArray(); } else {
if (count($weekly_data) > 0) { $weekly_data = WeeklyReportView::select('*')->take(100)->get()->toArray();
$weekly_report = []; if (count($weekly_data) > 0 && $weekly_data[0]['total_point'] > 0) {
foreach ($weekly_data as $key => $weekly) { echo "\n - Bắt đầu xử lý BXH Tuần...";
$weekly_report[$key]['week'] = date('W'); $weekly_report = [];
$weekly_report[$key]['month'] = date('m'); foreach ($weekly_data as $key => $weekly) {
$weekly_report[$key]['year'] = date('Y'); $weekly_report[$key]['week'] = date('W');
$weekly_report[$key]['track_id'] = $weekly['track_id']; $weekly_report[$key]['month'] = date('m');
$weekly_report[$key]['year'] = date('Y');
$weekly_report[$key]['views_zing'] = $weekly['week_zing']; $weekly_report[$key]['track_id'] = $weekly['track_id'];
$weekly_report[$key]['views_nct'] =$weekly['week_nct'];
$weekly_report[$key]['views_keeng'] = $weekly['week_keeng']; $weekly_report[$key]['views_zing'] = $weekly['week_zing'];
$weekly_report[$key]['views_nct'] =$weekly['week_nct'];
$weekly_report[$key]['point_zing'] = $weekly['point_zing']; $weekly_report[$key]['views_keeng'] = $weekly['week_keeng'];
$weekly_report[$key]['point_nct'] = $weekly['point_nct'];
$weekly_report[$key]['point_keeng'] = $weekly['point_keeng']; $weekly_report[$key]['point_zing'] = $weekly['point_zing'];
$weekly_report[$key]['point_nct'] = $weekly['point_nct'];
$weekly_report[$key]['total_point'] = $weekly['total_point']; $weekly_report[$key]['point_keeng'] = $weekly['point_keeng'];
$weekly_report[$key]['order'] = $key + 1;
$weekly_report[$key]['total_point'] = $weekly['total_point'];
$weekly_report[$key]['created_at'] = Carbon::now(); $weekly_report[$key]['order'] = $key + 1;
$weekly_report[$key]['updated_at'] = Carbon::now();
} $weekly_report[$key]['created_at'] = Carbon::now();
$weekly_report[$key]['updated_at'] = Carbon::now();
if (count($weekly_report) > 0) { }
DB::table(Constants::TABLE_REPORT_VIEWS_WEEKLY)->insert($weekly_report);
} if (count($weekly_report) > 0) {
DB::table(Constants::TABLE_REPORT_VIEWS_WEEKLY_NEW)->insert($weekly_report);
// Check xem đã insert chưa }
$check_again = WeeklyReport::where('week', date('W'))
->where('month', date('m')) // Check xem đã insert chưa
->where('year', date('Y')) $check_again = WeeklyReport::where('week', date('W'))
->count(); ->where('month', date('m'))
->where('year', date('Y'))
if ($check_again >= 100) { ->count();
echo "\n Đã lưu dữ liệu báo cáo và bắt đầu reset lượt nghe tuần.";
// Reset số lượt nghe tháng về 0 trong bảng crawler_listens if ($check_again >= 100) {
DB::table(Constants::TABLE_CRAWLER_LISTENS)->update([ echo "\n - Đã lưu dữ liệu BXH Tuần và bắt đầu Reset lượt nghe tuần.";
'week_zing' => 0, // Reset số lượt nghe tháng về 0 trong bảng crawler_listens
'week_nct' => 0, DB::table(Constants::TABLE_CRAWLER_LISTENS)->update([
'week_nhacvn' => 0, 'week_zing' => 0,
'week_keeng' => 0 'week_nct' => 0,
]); 'week_nhacvn' => 0,
echo "\n Đã reset lượt nghe tuần."; 'week_keeng' => 0
]);
echo "\n - Đã reset lượt nghe tuần.";
}
} else {
echo "\n - Dữ liệu lượt nghe Tuần đã bị Reset nên không tổng hợp được BXH.";
} }
} }
} else { } else {
echo "\n Ngày thực hiện báo cáo tuần phải là Chủ nhật."; echo "\n - Ngày thực hiện báo cáo tuần phải là Chủ nhật.";
return false;
} }
break; break;
case 'monthly': case 'monthly':
// Check xem đã insert vào reports_views_monthly chưa
$check = MonthlyReport::where('month', date('m'))
->where('year', date('Y'))
->count();
if($check >= 100){
echo "\n Báo cáo đã được tổng hợp trước đó.";
return false;
}
// Chỉ thực hiện nếu là ngày 21 hàng tháng, phải thực hiện trước 21h // Chỉ thực hiện nếu là ngày 21 hàng tháng, phải thực hiện trước 21h
if (date('d') == 21) { if (date('d') == 21) {
// Ghi log xem có gọi không
Crontjob::create(['message' => 'CalculateReportCommand is called (' . $type . ')']);
// Check xem đã insert vào reports_views_monthly chưa
$check = MonthlyReport::where('month', date('m'))
->where('year', date('Y'))
->count();
if($check >= 100){
echo "\n - Báo cáo đã được tổng hợp trước đó.";
return false;
}
$monthly_data = MonthlyReportView::select('*')->take(100)->get()->toArray(); $monthly_data = MonthlyReportView::select('*')->take(100)->get()->toArray();
if (count($monthly_data) > 0) { if (count($monthly_data) > 0) {
$monthly_report = []; $monthly_report = [];
...@@ -259,7 +266,7 @@ class CalculateReportCommand extends Command ...@@ -259,7 +266,7 @@ class CalculateReportCommand extends Command
->where('year', date('Y')) ->where('year', date('Y'))
->count(); ->count();
if ($check_again >= 100) { if ($check_again >= 100) {
echo "\n Đã lưu dữ liệu báo cáo và bắt đầu reset lượt nghe tháng."; echo "\n - Đã lưu dữ liệu báo cáo và bắt đầu reset lượt nghe tháng.";
// Reset số lượt nghe tháng về 0 trong bảng crawler_listens // Reset số lượt nghe tháng về 0 trong bảng crawler_listens
DB::table(Constants::TABLE_CRAWLER_LISTENS)->update([ DB::table(Constants::TABLE_CRAWLER_LISTENS)->update([
'month_zing' => 0, 'month_zing' => 0,
...@@ -267,11 +274,11 @@ class CalculateReportCommand extends Command ...@@ -267,11 +274,11 @@ class CalculateReportCommand extends Command
'month_nhacvn' => 0, 'month_nhacvn' => 0,
'month_keeng' => 0 'month_keeng' => 0
]); ]);
echo "\n Đã reset lượt nghe tháng."; echo "\n - Đã reset lượt nghe tháng.";
} }
} }
} else { } else {
echo "\n Ngày thực hiện báo cáo tháng phải là ngày 21."; echo "\n - Ngày thực hiện báo cáo tháng phải là ngày 21.";
return false; return false;
} }
break; break;
......
...@@ -84,12 +84,12 @@ class Kernel extends ConsoleKernel ...@@ -84,12 +84,12 @@ class Kernel extends ConsoleKernel
$schedule->command('crawler:get-listen zing')->dailyAt('22:45'); $schedule->command('crawler:get-listen zing')->dailyAt('22:45');
$schedule->command('crawler:get-listen zing --limit=-1')->dailyAt('22:50'); $schedule->command('crawler:get-listen zing --limit=-1')->dailyAt('22:50');
$schedule->command('calculate:daily-listen')->dailyAt('5:00'); $schedule->command('calculate:daily-listen')->dailyAt('2:00');
$schedule->command('calculate:daily-listen')->dailyAt('5:10'); $schedule->command('calculate:daily-listen')->dailyAt('2:10');
$schedule->command('calculate:report daily')->dailyAt('5:30'); $schedule->command('calculate:report daily')->dailyAt('3:05');
$schedule->command('calculate:report weekly')->sundays(); $schedule->command('calculate:report weekly')->dailyAt('4:05');
$schedule->command('calculate:report monthly')->monthlyOn(21, '6:10'); $schedule->command('calculate:report monthly')->monthlyOn(21, '5:05');
$schedule->command('queue:work --once --timeout=120')->everyMinute()->withoutOverlapping(); $schedule->command('queue:work --once --timeout=120')->everyMinute()->withoutOverlapping();
} }
......
...@@ -24,7 +24,9 @@ class Constants ...@@ -24,7 +24,9 @@ class Constants
const TABLE_PERMISSIONS = 'permissions'; const TABLE_PERMISSIONS = 'permissions';
const TABLE_REPORT_VIEWS_DAILY = 'report_views_daily'; const TABLE_REPORT_VIEWS_DAILY = 'report_views_daily';
const TABLE_REPORT_VIEWS_MONTHLY_NEW = 'report_views_monthly_new';
const TABLE_REPORT_VIEWS_WEEKLY = 'report_views_weekly'; const TABLE_REPORT_VIEWS_WEEKLY = 'report_views_weekly';
const TABLE_REPORT_VIEWS_WEEKLY_NEW = 'report_views_weekly_new';
const TABLE_REPORTS_VIEWS_MONTHLY = 'reports_views_monthly'; const TABLE_REPORTS_VIEWS_MONTHLY = 'reports_views_monthly';
const TABLE_ROLE_USER = 'role_user'; const TABLE_ROLE_USER = 'role_user';
......
...@@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model; ...@@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model;
class MonthlyReport extends Model class MonthlyReport extends Model
{ {
protected $table = Constants::TABLE_REPORTS_VIEWS_MONTHLY; protected $table = Constants::TABLE_REPORT_VIEWS_MONTHLY_NEW;
public $timestamps = true; public $timestamps = true;
......
...@@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model; ...@@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model;
class WeeklyReport extends Model class WeeklyReport extends Model
{ {
protected $table = Constants::TABLE_REPORT_VIEWS_WEEKLY; protected $table = Constants::TABLE_REPORT_VIEWS_WEEKLY_NEW;
public $timestamps = true; public $timestamps = true;
......
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