/**
  * random data generation
  */
 public function actionRandomData()
 {
     echo "generate random data!\n";
     RandomAu::deleteAll();
     // 30day
     $day = 30;
     do {
         $date = date('Y-m-d', strtotime("-{$day} day"));
         // 5 channels
         $ch_num = 0;
         do {
             ++$ch_num;
             //record
             $rec = new RandomAu();
             $rec->date = $date;
             $rec->channel = 'ch' . $ch_num;
             $dau = rand(100, 10000);
             $dnu = rand(100, $dau);
             $rec->dau = $dau;
             $rec->dnu = $dnu;
             $rec->save();
         } while ($ch_num < 5);
         --$day;
     } while ($day > 0);
     echo "30 days 5 channels!\n";
 }
 public function actionV2()
 {
     //fetch data from db
     $recs = RandomAu::find()->limit(150)->asArray()->all();
     $x_y = $this->_transRecs($recs, 'dau');
     $y = $x_y['y'];
     $opt = $this->_getOptLineFromData('dau', $x_y['x'], $y);
     $total = 0;
     foreach ($y as $k => $i) {
         $s = array_sum($i);
         $pie_sum[$k] = $s;
         $total += $s;
     }
     if (isset($pie_sum)) {
         foreach ($pie_sum as $k => $i) {
             $pie_data[$k] = $i * 100 / $total;
         }
     }
     $opt_pie = $this->_getOptPieFromData(isset($pie_data) ? $pie_data : []);
     return $this->render('v2', ['opt_pie' => $opt_pie, 'opt_line' => $opt]);
 }