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