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,20 +152,22 @@ class CalculateReportCommand extends Command ...@@ -152,20 +152,22 @@ 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) {
// Ghi log xem có gọi không
Crontjob::create(['message' => 'CalculateReportCommand is called (' . $type . ')']);
// Check xem đã insert vào report_views_weekly_new chưa
$check = WeeklyReport::where('week', date('W')) $check = WeeklyReport::where('week', date('W'))
->where('month', date('m')) ->where('month', date('m'))
->where('year', date('Y')) ->where('year', date('Y'))
->count(); ->count();
if($check >= 100){ if($check >= 100){
echo "\n Báo cáo đã được tổng hợp trước đó."; echo "\n - BXH Tuần đã được tổng hợp trước đó.";
return false; } else {
}
if (strtoupper(date('D')) == 'SUN') {
$weekly_data = WeeklyReportView::select('*')->take(100)->get()->toArray(); $weekly_data = WeeklyReportView::select('*')->take(100)->get()->toArray();
if (count($weekly_data) > 0) { if (count($weekly_data) > 0 && $weekly_data[0]['total_point'] > 0) {
echo "\n - Bắt đầu xử lý BXH Tuần...";
$weekly_report = []; $weekly_report = [];
foreach ($weekly_data as $key => $weekly) { foreach ($weekly_data as $key => $weekly) {
$weekly_report[$key]['week'] = date('W'); $weekly_report[$key]['week'] = date('W');
...@@ -189,7 +191,7 @@ class CalculateReportCommand extends Command ...@@ -189,7 +191,7 @@ class CalculateReportCommand extends Command
} }
if (count($weekly_report) > 0) { if (count($weekly_report) > 0) {
DB::table(Constants::TABLE_REPORT_VIEWS_WEEKLY)->insert($weekly_report); DB::table(Constants::TABLE_REPORT_VIEWS_WEEKLY_NEW)->insert($weekly_report);
} }
// Check xem đã insert chưa // Check xem đã insert chưa
...@@ -199,7 +201,7 @@ class CalculateReportCommand extends Command ...@@ -199,7 +201,7 @@ class CalculateReportCommand extends Command
->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 tuần."; echo "\n - Đã lưu dữ liệu BXH Tuần và bắt đầu Reset lượt nghe tuần.";
// 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([
'week_zing' => 0, 'week_zing' => 0,
...@@ -207,28 +209,33 @@ class CalculateReportCommand extends Command ...@@ -207,28 +209,33 @@ class CalculateReportCommand extends Command
'week_nhacvn' => 0, 'week_nhacvn' => 0,
'week_keeng' => 0 'week_keeng' => 0
]); ]);
echo "\n Đã reset lượt nghe tuần."; 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':
// 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) {
// 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 xem đã insert vào reports_views_monthly chưa
$check = MonthlyReport::where('month', date('m')) $check = MonthlyReport::where('month', date('m'))
->where('year', date('Y')) ->where('year', date('Y'))
->count(); ->count();
if($check >= 100){ if($check >= 100){
echo "\n Báo cáo đã được tổng hợp trước đó."; echo "\n - Báo cáo đã được tổng hợp trước đó.";
return false; 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
if (date('d') == 21) {
$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