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);
 }
Esempio n. 2
0
 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);
     }
 }