public static function mergeUpdate($inData, $upData) { $inEnd = end($inData)['time']; $inpos = sizeof($inData); $merData = array(); //echo "loc1"; //print_r(end($inData)); //echo "<br/><br/><br/>"; //print_r(end($upData)); //echo "<br/>".sizeof($upData)."<br/>"; //判断最后几行数据能否对接 $j = 5; $k = sizeof($inData); for ($i = sizeof($upData) - 1; $i >= 0; $i--) { //echo "<br/>".$upData[$i]['time'] . "><". $inEnd ."<br/>"; if ($upData[$i]['time'] > $inEnd) { array_unshift($merData, $upData[$i]); } else { $k--; $j--; //echo $j; if ($j < 0) { break; } if ($inData[$k]['close'] != $upData[$i]['close']) { //print_r($inData[$k]); //print_r($upData[$i]); break; } } } if ($j >= 0) { return false; } if (empty($merData)) { return $merData; } //合并数据并计算指标数值 $merData = array_merge($inData, $merData); $merData = DayKeeper::handleQuota($merData, $inpos); return array_slice($merData, $inpos); }
public static function resetSingleDay($item, $type) { $end = strtotime("now -7 day") * 1000; $url = 'https://xueqiu.com/stock/forchartk/stocklist.json?symbol=' . $item['code'] . '&period=1day&type=' . $type . '&end=' . $end; self::$log->debugLog($item['name'], $item['code'], $type, $url); $json = DayKeeper::curlXueqiuJson($url, self::$tmp->getTmpFile('day.duty.cookie')); while (!($json = DayKeeper::parseXueqiuJson($json))) { $json = DayKeeper::curlXueqiuJson($url, self::$tmp->getTmpFile('day.duty.cookie')); sleep(1); } self::$log->debugLog($item['name'], $item['code'], $type, "Curl and Parse success"); //var_dump($json); //echo "<br/><br/><br/>"; //var_dump(end($json)); $json = DayKeeper::handleQuota($json); $dd = new DayData($item['code'], $type); if (DayKeeper::putDay($dd->getDataFile(), $json)) { self::$log->noticeLog($item['name'], $item['code'], $type, "Reset OK"); } else { self::$log->errorLog($item['name'], $item['code'], $type, "Reset Failed"); self::$tmp->putTmpContent('day.duty.failed', join(":", $item) . "|", FILE_APPEND); } }