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))); } }