error('您输入的信息有误!');
}
if($step == 60){
$type = 1;
}elseif($step == 300){
$type = 5;
}elseif($step == 900){
$type = 15;
}elseif($step == 1800){
$type = 30;
}elseif($step == 1600){
$type = 60;
}elseif($step == 14400){
$type = 240;
}elseif($step == 86400){
$type = 1440;
}
$market = "ukb_usdt";
$list = M("trade_json")->where(array('type'=>$type))->field('data')->limit(100)->select();
foreach($list as $key=>$vo){
$vd = json_decode($vo['data']);
$data[$key]['time'] = intval($vd[0]);
$data[$key]['volume'] = $vd[1];
$data[$key]['open'] = $vd[2];
$data[$key]['high'] = $vd[3];
$data[$key]['low'] = $vd[4];
$data[$key]['close'] = $vd[5];
}
//时间,成交量,成交价,最高价,最低价,收盘价
header("Content-type:application/json");
header('X-Frame-Options: SAMEORIGIN');
exit(json_encode($data));
}
public function getMarketSpecialtyJsonAitclast($market = NULL, $step=null){
$market = "ukb_usdt";
if($step == 60){
$type = 1;
}elseif($step == 300){
$type = 5;
}elseif($step == 900){
$type = 15;
}elseif($step == 1800){
$type = 30;
}elseif($step == 1600){
$type = 60;
}elseif($step == 14400){
$type = 240;
}elseif($step == 86400){
$type = 1440;
}
$list = M("trade_json")->where(array('type'=>1,'data'=>['neq','']))->order('id desc')->field('data')->limit(1)->select();
//$num = 0.001 * rand(1,9);
foreach($list as $key=>$vo){
$vd = json_decode($vo['data']);
$data[$key]['time'] = intval($vd[0]);
$data[$key]['open'] = $vd[2];
$data[$key]['high'] = $vd[3];
$data[$key]['low'] = $vd[4];
$data[$key]['close'] = session('close')?:$vd[5];// + $num;
$data[$key]['volume'] = $vd[1];
$data[$key]['aa'] = session('close');
}
header("Content-type:application/json");
header('X-Frame-Options: SAMEORIGIN');
exit(json_encode($data));
}
public function getJsonData($market = NULL, $ajax = 'json')
{
// 过滤非法字符----------------S
if (checkstr($market)) {
$this->error('您输入的信息有误!');
}
// 过滤非法字符----------------E
if ($market) {
$data = (APP_DEBUG ? null : S('ChartgetJsonData' . $market));
if (!$data) {
$data[0] = $this->getTradeBuy($market);
$data[1] = $this->getTradeSell($market);
$data[2] = $this->getTradeLog($market);
S('ChartgetJsonData' . $market, $data);
}
header("Content-type:application/json");
header('X-Frame-Options: SAMEORIGIN');
exit(json_encode($data));
}
}
protected function getTradeBuy($market)
{
// 过滤非法字符----------------S
if (checkstr($market)) {
$this->error('您输入的信息有误!');
}
// 过滤非法字符----------------E
$mo = M();
$buy = $mo->query('select id,price,sum(num-deal)as nums from tw_trade where status=0 and type=1 and market =\'' . $market . '\' group by price order by price desc limit 100;');
$data = '';
if ($buy) {
$maxNums = maxArrayKey($buy, 'nums') / 2;
foreach ($buy as $k => $v) {
$data .= '
买' . ($k + 1) . ' | ' . floatval($v['price']) . ' | ' . floatval($v['nums']) . ' | |
';
}
}
Vendor("XssFilter.XssFilter","",".php");
$data=\XssFilter::xss_clean($data);
return $data;
}
protected function getTradeSell($market)
{
// 过滤非法字符----------------S
if (checkstr($market)) {
$this->error('您输入的信息有误!');
}
// 过滤非法字符----------------E
$mo = M();
$sell = $mo->query('select id,price,sum(num-deal)as nums from tw_trade where status=0 and type=2 and market =\'' . $market . '\' group by price order by price asc limit 100;');
$data = '';
if ($sell) {
$maxNums = maxArrayKey($sell, 'nums') / 2;
foreach ($sell as $k => $v) {
$data .= '卖' . ($k + 1) . ' | ' . floatval($v['price']) . ' | ' . floatval($v['nums']) . ' | |
';
}
}
Vendor("XssFilter.XssFilter","",".php");
$data=\XssFilter::xss_clean($data);
return $data;
}
protected function getTradeLog($market)
{
// 过滤非法字符----------------S
if (checkstr($market)) {
$this->error('您输入的信息有误!');
}
// 过滤非法字符----------------E
$log = M('TradeLog')->where(array('status' => 1, 'market' => $market))->order('id desc')->limit(100)->select();
$data = '';
if ($log) {
foreach ($log as $k => $v) {
if ($v['type'] == 1) {
$type = 'buy';
} else {
$type = 'sell';
}
$data .= '' . date('H:i:s', $v['addtime']) . ' | ' . floatval($v['price']) . ' | ' . floatval($v['num']) . ' | ' . floatval($v['mum']) . ' |
';
}
}
Vendor("XssFilter.XssFilter","",".php");
$data=\XssFilter::xss_clean($data);
return $data;
}
public function trend()
{
// TODO: SEPARATE
$input = I('get.');
$market = (is_array(C('market')[$input['market']]) ? trim($input['market']) : C('market_mr'));
$this->assign('market', $market);
$this->display();
}
public function getMarketTrendJson()
{
// TODO: SEPARATE
$input = I('get.');
$market = (is_array(C('market')[$input['market']]) ? trim($input['market']) : C('market_mr'));
$data = (APP_DEBUG ? null : S('ChartgetMarketTrendJson' . $market));
if (!$data) {
$data = M('TradeLog')->where(array(
'market' => $market,
'addtime' => array('gt', time() - (60 * 60 * 24 * 30 * 2))
))->select();
S('ChartgetMarketTrendJson' . $market, $data);
}
$json_data=array();
foreach ($data as $k => $v) {
$json_data[$k][0] = intval($v['addtime']);
$json_data[$k][1] = floatval($v['price']);
}
header("Content-type:application/json");
header('X-Frame-Options: SAMEORIGIN');
exit(json_encode($json_data));
}
public function ordinary()
{
// TODO: SEPARATE
$input = I('get.');
$market = (is_array(C('market')[$input['market']]) ? trim($input['market']) : C('market_mr'));
$this->assign('market', $market);
$this->display();
}
public function getMarketOrdinaryJson()
{
// TODO: SEPARATE
$input = I("get.");
$market = (is_array(C("market")[$input["market"]]) ? trim($input["market"]) : C("market_mr"));
$timearr = array(1, 3, 5, 10, 15, 30, 60, 120, 240, 360, 720, 1440, 10080);
if (in_array($input["time"], $timearr)) {
$time = $input["time"];
} else {
$time = 5;
}
$timeaa = (APP_DEBUG ? null : S("ChartgetMarketOrdinaryJsontime" . $market . $time));
if (($timeaa + 60) < time()) {
S("ChartgetMarketOrdinaryJson" . $market . $time, null);
S("ChartgetMarketOrdinaryJsontime" . $market . $time, time());
}
$tradeJson = (APP_DEBUG ? null : S("ChartgetMarketOrdinaryJson" . $market . $time));
if (!$tradeJson) {
$tradeJson = M("TradeJson")->where(array(
"market" => $market,
"type" => $time,
"data" => array("neq", "")
))->order("id desc")->limit(100)->select();
S("ChartgetMarketOrdinaryJson" . $market . $time, $tradeJson);
}
krsort($tradeJson);
foreach ($tradeJson as $k => $v) {
$json_data[] = json_decode($v["data"], true);
}
exit(json_encode($json_data));
}
public function specialty()
{
// TODO: SEPARATE
$input = I('get.');
$market = (is_array(C('market')[$input['market']]) ? trim($input['market']) : C('market_mr'));
$this->assign('market', $market);
$this->display();
}
public function getMarketSpecialtyJson()
{
// TODO: SEPARATE
$input = I('get.');
$market = (is_array(C('market')[$input['market']]) ? trim($input['market']) : C('market_mr'));
$timearr = array(1, 3, 5, 10, 15, 30, 60, 120, 240, 360, 720, 1440, 10080);
if (in_array($input['step'] / 60, $timearr)) {
$time = floatval($input['step'] / 60);
} else {
$time = 5;
}
$timeaa = (APP_DEBUG ? null : S('ChartgetMarketSpecialtyJsontime' . $market . $time));
if (($timeaa + 60) < time()) {
S('ChartgetMarketSpecialtyJson' . $market . $time, null);
S('ChartgetMarketSpecialtyJsontime' . $market . $time, time());
}
$tradeJson = (APP_DEBUG ? null : S('ChartgetMarketSpecialtyJson' . $market . $time));
if (!$tradeJson) {
$tradeJson = M('TradeJson')->where(array('type' => $time, 'market' => $market))->order('id asc')->limit(1000)->select();
S('ChartgetMarketSpecialtyJson' . $market . $time, $tradeJson);
}
$json_data=array();
Vendor("XssFilter.XssFilter","",".php");
foreach ($tradeJson as $k => $v) {
$v['data']=\XssFilter::xss_clean($v['data']);
$json_data[] = json_decode($v['data'], true);
}
foreach ($json_data as $k => $v) {
$data[$k][0] = $v[0];
$data[$k][1] = 0;
$data[$k][2] = 0;
$data[$k][3] = $v[2];
$data[$k][4] = $v[5];
$data[$k][5] = $v[3];
$data[$k][6] = $v[4];
$data[$k][7] = $v[1];
}
header("Content-type:application/json");
header('X-Frame-Options: SAMEORIGIN');
exit(json_encode($data));
}
public function getSpecialtyTrades()
{
$input = I('get.');
// 过滤非法字符----------------S
if (checkstr($input['since']) || checkstr($input['market'])) {
$this->error('您输入的信息有误!');
}
// 过滤非法字符----------------E
$json_data=array();
if (!$input['since']) {
$tradeLog = M('TradeLog')->where(array('market' => $input['market']))->order('id desc')->find();
$json_data[] = array('tid' => intval($tradeLog['id']), 'date' => intval($tradeLog['addtime']), 'price' => floatval($tradeLog['price']), 'amount' => floatval($tradeLog['num']), 'trade_type' => $tradeLog['type'] == 1 ? 'bid' : 'ask');
header("Content-type:application/json");
header('X-Frame-Options: SAMEORIGIN');
exit(json_encode($json_data));
} else {
$tradeLog = M('TradeLog')->where(array(
'market' => $input['market'],
'id' => array('gt', $input['since'])
))->order('id desc')->select();
foreach ($tradeLog as $k => $v) {
$json_data[] = array('tid' => intval($v['id']), 'date' => intval($v['addtime']), 'price' => floatval($v['price']), 'amount' => floatval($v['num']), 'trade_type' => $v['type'] == 1 ? 'bid' : 'ask');
}
header("Content-type:application/json");
header('X-Frame-Options: SAMEORIGIN');
exit(json_encode($json_data));
}
}
/* public function getSpecialtyTrades()
{
$input = I('get.');
// 过滤非法字符----------------S
if (checkstr($input['since']) || checkstr($input['market'])) {
$this->error('您输入的信息有误!');
}
// 过滤非法字符----------------E
$json_data=array();
if (!$input['since']) {
$tradeLog = M('TradeLog')->where(array('market' => $input['market']))->order('id desc')->find();
$json_data[] = array('tid' => intval($tradeLog['id']), 'date' => intval($tradeLog['addtime']), 'price' => floatval($tradeLog['price']), 'amount' => floatval($tradeLog['num']), 'trade_type' => $tradeLog['type'] == 1 ? 'bid' : 'ask');
header("Content-type:application/json");
header('X-Frame-Options: SAMEORIGIN');
exit(json_encode($json_data));
}
else {
$tradeLog = M('TradeLog')->where(array(
'market' => $input['market'],
'id' => array('gt', $input['since'])
))->order('id desc')->select();
foreach ($tradeLog as $k => $v) {
$json_data[] = array('tid' => intval($v['id']), 'date' => intval($v['addtime']), 'price' => floatval($v['price']), 'amount' => floatval($v['num']), 'trade_type' => $v['type'] == 1 ? 'bid' : 'ask');
}
header("Content-type:application/json");
header('X-Frame-Options: SAMEORIGIN');
exit(json_encode($json_data));
}
}*/
}
?>