bourse stock
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.

67 lines
2.8 KiB

<?php
namespace app\home\service;
use app\model\StockMarketModel;
class StockService extends BaseHomeService
{
// 校验股票市场状态
public function checkMarketStatus($param): array
{
try {
if(empty($param['type']) || !is_numeric($param['type'])){
return $this->toData('0', 'SUCCESS', ['status' => '2']);
}
// 1 开启 2 关闭
$market = StockMarketModel::where('stock_market_type', $param['type'])->find();
if(empty($market)){
return $this->toData('0', 'SUCCESS', ['status' => '2']);
}
if($market->status == StockMarketModel::STATUS_OFF){
return $this->toData('0', 'SUCCESS', ['status' => '2', 'market' => $market->toArray()]);
}
// 如果是开启 则判断是否在开盘时间段
$date = date('H:i');
$dateTime = \DateTime::createFromFormat('H:i', $date);
$amOpenTime = \DateTime::createFromFormat('H:i', $market->am_open_time);
$pmOpenTime = \DateTime::createFromFormat('H:i', $market->pm_open_time);
$amCloseTime = \DateTime::createFromFormat('H:i', $market->am_close_time);
$pmCloseTime = \DateTime::createFromFormat('H:i', $market->pm_close_time);
// 判断 上午盘
if($amOpenTime > $amCloseTime){
// 开盘时间 大于 闭盘时间 跨天
if($dateTime >= $amOpenTime || $dateTime <= $amCloseTime){
return $this->toData('0', 'SUCCESS', ['status' => '1','market' => $market->toArray(),$dateTime,$amOpenTime,$amCloseTime,1]);
}
} else {
if($dateTime >= $amOpenTime && $dateTime <= $amCloseTime){
return $this->toData('0', 'SUCCESS', ['status' => '1','market' => $market->toArray(),$dateTime,$amOpenTime,$amCloseTime,2]);
}
}
// 下午盘
if($pmOpenTime > $pmCloseTime){
// 开盘时间 大于 闭盘时间 跨天
if($dateTime >= $pmOpenTime || $dateTime <= $pmCloseTime){
return $this->toData('0', 'SUCCESS', ['status' => '1','market' => $market->toArray(),$dateTime,$pmOpenTime,$pmCloseTime,3]);
}
} else {
if($dateTime >= $pmOpenTime && $dateTime <= $pmCloseTime){
return $this->toData('0', 'SUCCESS', ['status' => '1','market' => $market->toArray(),$dateTime,$pmOpenTime,$pmCloseTime,4]);
}
}
return $this->toData('0', 'SUCCESS', ['status' => '2','market' => $market->toArray()]);
}catch (\Exception $exception){
return $this->toData('400','System error',[$exception->getMessage()]);
}
}
}