<?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()]); } } }