You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.7 KiB
69 lines
1.7 KiB
<?php
|
|
|
|
namespace app\model;
|
|
|
|
/**
|
|
*
|
|
* // 美股列表
|
|
* @property int id
|
|
* @property string stock_name
|
|
* @property string stock_code
|
|
* @property string status
|
|
* @property int tape
|
|
* @property string info
|
|
* @property string create_time
|
|
* @property string update_time
|
|
* @property float forced_closure
|
|
* @property float keep_decimal
|
|
* @property float up_limit
|
|
* @property float down_limit
|
|
*/
|
|
class StockListModel extends BaseModel
|
|
{
|
|
|
|
// 美股列表 数据表
|
|
protected $name = 'stock_list';
|
|
protected $pk = 'id';
|
|
|
|
|
|
const TAPE_NYSE = '1';
|
|
const TAPE_NYSE_ARCA = '2';
|
|
const TAPE_NASDAQ = '3';
|
|
public static $tapeList = [
|
|
self::TAPE_NYSE => 'NYSE',
|
|
self::TAPE_NYSE_ARCA => 'NYSEARCA',
|
|
self::TAPE_NASDAQ => 'NASDAQ',
|
|
];
|
|
|
|
|
|
public static function getMarketList($data): array
|
|
{
|
|
$where='status=1';
|
|
if(!empty($data['trade_name'])){
|
|
$where.=" and (trade_name like '".strtoupper($data['trade_name'])."%' or stock_code like '".strtoupper($data['trade_name'])."%')";
|
|
}
|
|
if($data['page']<1){
|
|
$data['page']=1;
|
|
}
|
|
if($data['page_size']<1){
|
|
$data['page_size']=10;
|
|
}
|
|
|
|
$count=self::where($where)->count();
|
|
|
|
$list = self::where($where)->field('trade_name as name,stock_code as code')->page($data['page'],$data['page_size'])->select();
|
|
if(empty($list)){
|
|
return [];
|
|
}
|
|
return [
|
|
'total'=>$count,
|
|
'list'=>$list->toArray(),
|
|
];
|
|
}
|
|
public static function existMarket($trade_name):bool
|
|
{
|
|
$id=self::where('stock_code',$trade_name)->value('id');
|
|
return $id >0;
|
|
}
|
|
|
|
}
|