chenbo пре 4 година
родитељ
комит
728595f30c
2 измењених фајлова са 22 додато и 12 уклоњено
  1. 5 12
      api/v1.0/index_recent_days.php
  2. 17 0
      lib/index_day_k.class.php

+ 5 - 12
api/v1.0/index_recent_days.php

@@ -33,19 +33,12 @@ try {
         return ;
     }
 
-    //循环找到最近天数的起始日期
-    $count = 0;
-    $recent_date = AddOrSubDate($start_date, -$traceback_days);
-    do {
-        $filter = array(
-            'code' => array($code, '=s'),
-            'date' => array($start_date, 'date_between', $recent_date),
-        );
-        $count = Index_day_k::getList($filter, 1);
-        $recent_date = AddOrSubDate($recent_date, -1);
-    }while(($count < $traceback_days) and ($recent_date >= AddOrSubDate(GLOBAL_BEGIN_DATE, -1)));
-
     //获取列表
+    $recent_date = Index_day_k::getRecentDateByCode($code, $start_date, $traceback_days);
+    $filter = array(
+        'code' => array($code, '=s'),
+        'date' => array($start_date, 'date_between', $recent_date),
+    );
     $stock_info = Index_day_k::getListOrderByDate($filter, 0, 0, 0, $order);
 
     if(!empty($stock_info)){

+ 17 - 0
lib/index_day_k.class.php

@@ -48,6 +48,23 @@ class Index_day_k {
         return $id;
     }
 
+    //找到某个指数指定某天之前有指定个数记录的前一天
+    static public function getRecentDateByCode($code, $date, $dayCount)
+    {
+        //循环找到最近天数的起始日期
+        $count = 0;
+        $recent_date = AddOrSubDate($date, -$dayCount);
+        do {
+            $filter = array(
+                'code' => array($code, '=s'),
+                'date' => array($date, 'date_between', $recent_date),
+            );
+            $count = self::getList($filter, 1);
+            $recent_date = AddOrSubDate($recent_date, -1);
+        }while(($count < $dayCount) and ($recent_date >= AddOrSubDate(GLOBAL_BEGIN_DATE, -1)));
+        return AddOrSubDate($recent_date, 1);
+    }
+
 
 
     //----------------------------------------