Completed
Push — master ( 4f00d5...2afce4 )
by John
29s queued 13s
created

UpdateGroupElo   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 22
c 1
b 0
f 1
dl 0
loc 58
rs 10
wmc 7

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A handle() 0 27 6
1
<?php
2
3
namespace App\Console\Commands\Scheduling;
4
5
use Illuminate\Console\Command;
6
use App\Models\GroupModel;
7
use Carbon;
8
use Log;
9
10
class UpdateGroupElo extends Command
11
{
12
    /**
13
     * The name and signature of the console command.
14
     *
15
     * @var string
16
     */
17
    protected $signature='scheduling:updateGroupElo';
18
19
    /**
20
     * The console command description.
21
     *
22
     * @var string
23
     */
24
    protected $description='Scheduling for group elo update';
25
26
    /**
27
     * Create a new command instance.
28
     *
29
     * @return void
30
     */
31
    public function __construct()
32
    {
33
        parent::__construct();
34
    }
35
36
    /**
37
     * Execute the console command.
38
     *
39
     * @return mixed
40
     */
41
    public function handle()
42
    {
43
        $time=Carbon::now();
44
        $this->line("<fg=yellow>[$time] Processing:  </>Update Group Elo");
45
46
        $groupModel=new GroupModel();
47
        $ret=$groupModel->refreshAllElo();
48
        foreach ($ret as $gid => $group) {
49
            if (empty($group['result'])) {
50
                Log::channel('group_elo')->info('Refreshed Group Elo (Empty) : ('.$gid.')'.$group['name']);
51
            } else {
52
                Log::channel('group_elo')->info('Refreshing Group Elo: ('.$gid.')'.$group['name']);
53
                foreach ($group['result'] as $contest) {
54
                    if ($contest['ret']=='success') {
55
                        Log::channel('group_elo')->info('    Elo Clac Successfully : ('.$contest['cid'].')'.$contest['name']);
56
                    } else {
57
                        Log::channel('group_elo')->info('    Elo Clac Faild (Judge Not Over) : ('.$contest['cid'].')'.$contest['name'].'  sids:');
58
                        foreach ($contest['submissions'] as $sid) {
59
                            Log::channel('group_elo')->info('        '.$sid['sid']);
60
                        }
61
                    }
62
                }
63
            }
64
        }
65
66
        $time=Carbon::now();
67
        $this->line("<fg=green>[$time] Processed:   </>Successfully Updated Group Elo");
68
    }
69
}
70