Browse Source

平台币

master
453530270@qq.com 2 years ago
parent
commit
98970b13e2
  1. 8
      app/Models/DataAasz.php
  2. 8
      app/Models/DataBbwl.php
  3. 8
      app/Models/DataBgt.php
  4. 8
      app/Models/DataClp.php
  5. 8
      app/Models/DataDws.php
  6. 8
      app/Models/DataLyh.php
  7. 124
      app/Models/DataRute.php
  8. 124
      app/Models/DataSwts.php

8
app/Models/DataAeef.php → app/Models/DataAasz.php

@ -12,17 +12,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class DataAeef extends Model
class DataAasz extends Model
{
protected $primaryKey = 'id';
protected $table = 'data_aeef';
protected $table = 'data_aasz';
protected $guarded = [];
public $timestamps = false;
public $attributes = [
'pid' => 0,
'Symbol' => 'AEEF',
'Name' => 'AEEF',
'Symbol' => 'AASZ',
'Name' => 'AASZ',
'Price2' => 0,
'Price3' => 0,
'Open_Int' => 0,

8
app/Models/DataMpob.php → app/Models/DataBbwl.php

@ -12,17 +12,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class DataMpob extends Model
class DataBbwl extends Model
{
protected $primaryKey = 'id';
protected $table = 'data_mpob';
protected $table = 'data_bbwl';
protected $guarded = [];
public $timestamps = false;
public $attributes = [
'pid' => 0,
'Symbol' => 'MPOB',
'Name' => 'MPOB',
'Symbol' => 'BBWL',
'Name' => 'BBWL',
'Price2' => 0,
'Price3' => 0,
'Open_Int' => 0,

8
app/Models/DataNec.php → app/Models/DataBgt.php

@ -12,17 +12,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class DataNec extends Model
class DataBgt extends Model
{
protected $primaryKey = 'id';
protected $table = 'data_nec';
protected $table = 'data_bgt';
protected $guarded = [];
public $timestamps = false;
public $attributes = [
'pid' => 0,
'Symbol' => 'NEC',
'Name' => 'NEC',
'Symbol' => 'BGT',
'Name' => 'BGT',
'Price2' => 0,
'Price3' => 0,
'Open_Int' => 0,

8
app/Models/DataBgv.php → app/Models/DataClp.php

@ -12,17 +12,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class DataBgv extends Model
class DataClp extends Model
{
protected $primaryKey = 'id';
protected $table = 'data_bgv';
protected $table = 'data_clp';
protected $guarded = [];
public $timestamps = false;
public $attributes = [
'pid' => 0,
'Symbol' => 'BGV',
'Name' => 'BGV',
'Symbol' => 'CLP',
'Name' => 'CLP',
'Price2' => 0,
'Price3' => 0,
'Open_Int' => 0,

8
app/Models/DataKye.php → app/Models/DataDws.php

@ -12,17 +12,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class DataKye extends Model
class DataDws extends Model
{
protected $primaryKey = 'id';
protected $table = 'data_kye';
protected $table = 'data_dws';
protected $guarded = [];
public $timestamps = false;
public $attributes = [
'pid' => 0,
'Symbol' => 'KYE',
'Name' => 'KYE',
'Symbol' => 'DWS',
'Name' => 'DWS',
'Price2' => 0,
'Price3' => 0,
'Open_Int' => 0,

8
app/Models/DataRvm.php → app/Models/DataLyh.php

@ -12,17 +12,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class DataRvm extends Model
class DataLyh extends Model
{
protected $primaryKey = 'id';
protected $table = 'data_rvm';
protected $table = 'data_lyh';
protected $guarded = [];
public $timestamps = false;
public $attributes = [
'pid' => 0,
'Symbol' => 'RVM',
'Name' => 'RVM',
'Symbol' => 'LYH',
'Name' => 'LYH',
'Price2' => 0,
'Price3' => 0,
'Open_Int' => 0,

124
app/Models/DataRute.php

@ -1,124 +0,0 @@
<?php
/*
* @Descripttion:
* @version:
* @Author: GuaPi
* @Date: 2021-07-29 10:40:49
* @LastEditors: GuaPi
* @LastEditTime: 2021-08-09 17:41:16
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class DataRute extends Model
{
protected $primaryKey = 'id';
protected $table = 'data_rute';
protected $guarded = [];
public $timestamps = false;
public $attributes = [
'pid' => 0,
'Symbol' => 'RUTE',
'Name' => 'RUTE',
'Price2' => 0,
'Price3' => 0,
'Open_Int' => 0,
'is_1min' => 0,
'is_5min' => 0,
'is_15min' => 0,
'is_30min' => 0,
'is_1h' => 0,
'is_2h' => 0,
'is_4h' => 0,
'is_6h' => 0,
'is_12h' => 0,
'is_day' => 0,
'is_week' => 0,
'is_month' => 0,
];
public static function getKlineData($symbol, $period, $size)
{
$builder = self::query();
$wheres = [
'1min' => 'is_1min',
'5min' => 'is_5min',
'15min' => 'is_15min',
'30min' => 'is_30min',
'60min' => 'is_1h',
'4hour' => 'is_4hour',
'1day' => 'is_day',
'1week' => 'is_week',
'1mon' => 'is_month',
];
$where = $wheres[$period] ?? 'is_1min';
$builder->where($where, 1);
$data = $builder->where('Date', '<', time())->limit($size)->orderByDesc('Date')->get();
if (blank($data)) return [];
$data = $data->sortBy('Date')->values()->map(function ($kline) {
$item = [
"id" => $kline['Date'],
"amount" => $kline['Amount'],
"count" => $kline['Amount'],
"open" => $kline['Open'],
"close" => $kline['Close'],
"low" => $kline['Low'],
"high" => $kline['High'],
"vol" => $kline['Volume']
];
$item['price'] = $item['close'];
return $item;
})->toArray();
// 重设数组最后一组数据的值
$time = time();
$data = self::getlastData($data, $period, $time);
return $data;
}
/**
* @description: 获取最新5分钟线 十五分钟线 30分钟线 1小时线 4小时线 1天线 1周线 一月线
* @param {*}
* @return {*}
*/
public static function getlastData($data, $period, $time)
{
$periodMap = [
'1min' => ['column' => 'is_1min', 'seconds' => 60],
'5min' => ['column' => 'is_5min', 'seconds' => 300],
'15min' => ['column' => 'is_15min', 'seconds' => 900],
'30min' => ['column' => 'is_30min', 'seconds' => 1800],
'60min' => ['column' => 'is_1h', 'seconds' => 3600],
'4hour' => ['column' => 'is_4hour', 'seconds' => 14400],
'1day' => ['column' => 'is_day', 'seconds' => 86400],
'1week' => ['column' => 'is_week', 'seconds' => 604800],
'1mon' => ['column' => 'is_month', 'seconds' => 2592000],
];
$tmp = $data[array_key_last($data)];
if ($period == '1mon') {
$res = self::query()
->whereBetween('Date', [\Carbon\Carbon::now()->firstOfMonth()->timestamp, $time])
->where('is_1min', 1)
->get();
} else {
$res = self::query()
->whereBetween('Date', [$time - $time % $periodMap[$period]['seconds'], $time])
->where('is_1min', 1)
->get();
}
$data[array_key_last($data)] = [
"id" => $tmp['id'],
"amount" => $res->sum('Amount'),
"count" => $res->sum('Amount'),
"open" => $res->first()->Open,
"close" => $res->last()->Close, //最新价
"low" => $res->min('Low'),
"high" => $res->max('High'),
"vol" => $res->sum('Volume'),
"price" => $res->last()->Close
];
return $data;
}
}

124
app/Models/DataSwts.php

@ -0,0 +1,124 @@
<?php
/*
* @Descripttion:
* @version:
* @Author: GuaPi
* @Date: 2021-07-29 10:40:49
* @LastEditors: GuaPi
* @LastEditTime: 2021-08-09 17:41:16
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class DataSwts extends Model
{
protected $primaryKey = 'id';
protected $table = 'data_swts';
protected $guarded = [];
public $timestamps = false;
public $attributes = [
'pid' => 0,
'Symbol' => 'SWTS',
'Name' => 'SWTS',
'Price2' => 0,
'Price3' => 0,
'Open_Int' => 0,
'is_1min' => 0,
'is_5min' => 0,
'is_15min' => 0,
'is_30min' => 0,
'is_1h' => 0,
'is_2h' => 0,
'is_4h' => 0,
'is_6h' => 0,
'is_12h' => 0,
'is_day' => 0,
'is_week' => 0,
'is_month' => 0,
];
public static function getKlineData($symbol, $period, $size)
{
$builder = self::query();
$wheres = [
'1min' => 'is_1min',
'5min' => 'is_5min',
'15min' => 'is_15min',
'30min' => 'is_30min',
'60min' => 'is_1h',
'4hour' => 'is_4hour',
'1day' => 'is_day',
'1week' => 'is_week',
'1mon' => 'is_month',
];
$where = $wheres[$period] ?? 'is_1min';
$builder->where($where, 1);
$data = $builder->where('Date', '<', time())->limit($size)->orderByDesc('Date')->get();
if (blank($data)) return [];
$data = $data->sortBy('Date')->values()->map(function ($kline) {
$item = [
"id" => $kline['Date'],
"amount" => $kline['Amount'],
"count" => $kline['Amount'],
"open" => $kline['Open'],
"close" => $kline['Close'],
"low" => $kline['Low'],
"high" => $kline['High'],
"vol" => $kline['Volume']
];
$item['price'] = $item['close'];
return $item;
})->toArray();
// 重设数组最后一组数据的值
$time = time();
$data = self::getlastData($data, $period, $time);
return $data;
}
/**
* @description: 获取最新5分钟线 十五分钟线 30分钟线 1小时线 4小时线 1天线 1周线 一月线
* @param {*}
* @return {*}
*/
public static function getlastData($data, $period, $time)
{
$periodMap = [
'1min' => ['column' => 'is_1min', 'seconds' => 60],
'5min' => ['column' => 'is_5min', 'seconds' => 300],
'15min' => ['column' => 'is_15min', 'seconds' => 900],
'30min' => ['column' => 'is_30min', 'seconds' => 1800],
'60min' => ['column' => 'is_1h', 'seconds' => 3600],
'4hour' => ['column' => 'is_4hour', 'seconds' => 14400],
'1day' => ['column' => 'is_day', 'seconds' => 86400],
'1week' => ['column' => 'is_week', 'seconds' => 604800],
'1mon' => ['column' => 'is_month', 'seconds' => 2592000],
];
$tmp = $data[array_key_last($data)];
if ($period == '1mon') {
$res = self::query()
->whereBetween('Date', [\Carbon\Carbon::now()->firstOfMonth()->timestamp, $time])
->where('is_1min', 1)
->get();
} else {
$res = self::query()
->whereBetween('Date', [$time - $time % $periodMap[$period]['seconds'], $time])
->where('is_1min', 1)
->get();
}
$data[array_key_last($data)] = [
"id" => $tmp['id'],
"amount" => $res->sum('Amount'),
"count" => $res->sum('Amount'),
"open" => $res->first()->Open,
"close" => $res->last()->Close, //最新价
"low" => $res->min('Low'),
"high" => $res->max('High'),
"vol" => $res->sum('Volume'),
"price" => $res->last()->Close
];
return $data;
}
}
Loading…
Cancel
Save