Exemplo n.º 1
0
 public function actionCreateReport()
 {
     $txt = self::getParam('txt', 'no');
     $start_date = self::getParam('start_date', '');
     $end_date = self::getParam('end_date', '');
     $start_time = strtotime($start_date);
     $end_time = strtotime($end_date) + 86400;
     $mon = new PL_Db_Mongo(DbConfig::getMongodb('userlogin'));
     $mon->switchColl('gemorder');
     $condition = array('status' => StatusCode::payment_finished, 'action' => 'recharge_gem', 'finish_t' => array('$gte' => $start_time, '$lt' => $end_time), 'istest' => array('$ne' => 1));
     //die(var_export($condition,1));
     $rows = $mon->find($condition);
     $data = array();
     foreach ($rows as $row) {
         $day = date('Y-m-d', $row['finish_t']);
         if (!isset($data[$day])) {
             $data[$day] = array('day' => $day, 'count' => 0, 'cash' => 0, 'alipay_cash' => 0);
         }
         if ($row['source'] == 'internal') {
             $data[$day]['alipay_cash'] += $row['cash'];
         } else {
             $data[$day]['cash'] += $row['cash'];
         }
         $data[$day]['count'] += 1;
     }
     $mon2 = new PL_Db_Mongo(DbConfig::getMongodb('userlogin'));
     $mon2->switchColl('order_stat');
     foreach ($data as $day => $d) {
         $insert_data = array('_id' => $day, 'value' => $d);
         $mon2->update(array('_id' => $day), $insert_data, array('upsert' => true));
     }
     if ($txt != 'no') {
         header('content-type: text/plain; charset=utf8');
         foreach ($data as $key => $r) {
             echo "{$key}\t{$r['count']}\t{$r['alipay_cash']}\t{$r['cash']}\n";
         }
     } else {
         die(json_encode(array('s' => 'ok', 'data' => $data)));
     }
 }