wanggangtao 5 år sedan
förälder
incheckning
64d103126c

+ 2 - 0
api/v1.0/api.php

@@ -9,8 +9,10 @@ if(isset($_REQUEST["source"]))
 }
 $timestamp     = safeCheck($_REQUEST['timestamp'],0);//来源
 $sign_raw = md5($method.$timestamp);
+
 if($sign_raw != $sign){
     echo action_msg(API::SIGN, API::SIGN_MSG);
+    return ;
 }
 require_once($method.".php");
 

+ 2 - 2
api/v1.0/demo/stock_recent_days.html

@@ -85,7 +85,7 @@
 
             <p>
                 <span>start_date:</span>
-                <input type="text" class="input-text"  name="start_date" value="20201101"/>
+                <input type="text" class="input-text"  name="start_date" value=20201101 />
             </p>
 
             <p>
@@ -99,7 +99,7 @@
             </p>
             <p>
                 <span>fq_price:0:不复权 1:前复权</span>
-                <input type="text" class="input-text"  name="fq_price" value="1"/>
+                <input type="text" class="input-text"  name="fq_price" value=1 />
             </p>
             <p>
                 <span>校验码:</span><input type="text" class="input-text" id="sign" readonly/></p>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
api/v1.0/stock_day_k.php


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
api/v1.0/stock_recent_days.php


+ 109 - 14
lib/table/table_day_k.class.php

@@ -50,6 +50,66 @@ class Table_day_k extends Table {
 		return $attr;
 	}
 
+//用于连表查询之后的结(前复权表和日k表)
+    protected function struct1(){
+        $attr = array();
+        $attr['id']                              = 'day_k_id';
+        $attr['timestamp']                       = 'day_k_timestamp';
+        $attr['date']                            = 'day_k_date';
+        $attr['code']                            = 'day_k_code';
+        $attr['name']                            = 'day_k_name';
+        $attr['open_price']                      = 'day_k_open_price';
+        $attr['close_price']                     = 'day_k_close_price';
+        $attr['highest_price']                   = 'day_k_highest_price';
+        $attr['lowest_price']                    = 'day_k_lowest_price';
+        $attr['increase_price']                  = 'day_k_increase_price';
+        $attr['increase_ratio']                  = 'day_k_increase_ratio';
+        $attr['turnover']                        = 'day_k_turnover';
+        $attr['amount']                          = 'day_k_amount';
+        $attr['value']                           = 'day_k_value';
+        $attr['m5']                              = 'day_k_m5';
+        $attr['m10']                             = 'day_k_m10';
+        $attr['m20']                             = 'day_k_m20';
+        $attr['m30']                             = 'day_k_m30';
+        $attr['m60']                             = 'day_k_m60';
+        $attr['m233']                            = 'day_k_m233';
+        $attr['tradable_amount']                 = 'day_k_tradable_amount';
+        $attr['tradable_value']                  = 'day_k_tradable_value';
+        $attr['total_amount']                    = 'day_k_total_amount';
+        $attr['total_value']                     = 'day_k_total_amount';
+        $attr['profitable']                      = 'day_k_profitable';
+        $attr['pb']                              = 'day_k_pb';
+        $attr['pe_static']                       = 'day_k_pe_static';
+        $attr['pe_dynamic']                      = 'day_k_pe_dynamic';
+        $attr['pe_ttm']                          = 'day_k_pe_ttm';
+//前复权表
+        $attr['qfq_id']                              = 'day_k_qfq_id';
+        $attr['qfq_timestamp']                       = 'day_k_qfq_timestamp';
+        $attr['qfq_date']                            = 'day_k_qfq_date';
+        $attr['qfq_code']                            = 'day_k_qfq_code';
+        $attr['qfq_name']                            = 'day_k_qfq_name';
+        $attr['qfq_open_price']                      = 'day_k_qfq_open_price';
+        $attr['qfq_close_price']                     = 'day_k_qfq_close_price';
+        $attr['qfq_highest_price']                   = 'day_k_qfq_highest_price';
+        $attr['qfq_lowest_price']                    = 'day_k_qfq_lowest_price';
+        $attr['qfq_turnover']                        = 'day_k_qfq_turnover';
+        $attr['qfq_amount']                          = 'day_k_qfq_amount';
+
+        return $attr;
+    }
+
+
+    //从数据库取出的数据转化键值后输出
+    protected function dataToAttr2($data){
+        $r = array();
+        foreach($this->struct1() as $k => $v){
+
+            $r[$k] = $data[$v];
+        }
+        return $r;
+    }
+
+
 
     /****
      * @param $attr
@@ -145,40 +205,75 @@ class Table_day_k extends Table {
      * wanggangtao
      * 获取最近n天的数据
      */
-    public function stock_recent_days($code,$start_date,$traceback_days,$order,$fq_price)
+    public function stock_recent_days($code,$start_date,$traceback_days,$order_info,$fq_price)
     {
+        $stock_code = $this->pdo->sql_check_input(array('string', $code));//类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
+        $start_date= $this->pdo->sql_check_input(array('number', $start_date));
+        $traceback_days = $this->pdo->sql_check_input(array('number', $traceback_days));
+        $fq_price = $this->pdo->sql_check_input(array('number', $fq_price));
+        var_dump($fq_price);
 
         if($fq_price==1){//前复权
+            $sql = " select * from ". $this->table_fullname ." where 1=1 ";
+            $where =" and day_k_code=".$stock_code." and day_k_date <=".$start_date  ;
+            $sql.=$where;
+            $orderInfo=" ORDER BY day_k_date desc";
+            $sql.=$orderInfo;
+            $limit=" limit ".$traceback_days;
+            $sql.=$limit;
+            $sql=" select* from(".$sql.")a left join boniu_day_k_qfq b on a.day_k_code=b.day_k_qfq_code and b.day_k_qfq_date=a.day_k_date ";
+            if($order_info==1){
+                $sql=  $sql. " ORDER BY a.day_k_date desc ";
 
-        }else{//不复权
+            }else{
+                $sql=  $sql. " ORDER BY a.day_k_date asc";
+            }
+            $rs = $this->pdo->sqlQuery($sql);
+            $r  = array();
+            if($rs){
+                foreach($rs as $key => $val){
+
+                    $r[$key] = $this->dataToAttr2($val);
+                }
+                return $r;
+            }else{
+                return $r;
+            }
+
+        }
+        else if($fq_price==0)
+        {//不复权
             //查询语句必须用sql_check_input检查参数
             $stock_code = $this->pdo->sql_check_input(array('string', $code));
             $sql = "select * from ". $this->table_fullname ." where 1=1 ";
-            $where =" and day_k_code=".$stock_code." and day_k_timestamp <=".$start_date  ;
+            $where =" and day_k_code=".$stock_code." and day_k_date <=".$start_date  ;
             $sql.=$where;
             $orderInfo=" ORDER BY day_k_date desc";
             $sql.=$orderInfo;
             $limit=" limit ".$traceback_days;
             $sql.=$limit;
-            if($order==1){
+            if($order_info==1){
                 $sql=   " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_date desc ";
 
             }else{
                 $sql=   " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_date asc";
             }
-        }
+            var_dump($sql);
 
-        $rs = $this->pdo->sqlQuery($sql);
-        $r  = array();
-        if($rs){
-            foreach($rs as $key => $val){
+            $rs = $this->pdo->sqlQuery($sql);
+            $r  = array();
+            if($rs){
+                foreach($rs as $key => $val){
 
-                $r[$key] = $this->dataToAttr($val);
+                    $r[$key] = $this->dataToAttr($val);
+                }
+                return $r;
+            }else{
+                return $r;
             }
-            return $r;
-        }else{
-            return $r;
         }
+//var_dump($sql);
+
     }
 
 
@@ -217,7 +312,7 @@ class Table_day_k extends Table {
 
             $sql.=$order;
         }
-        else
+        else if($fq_price==0)
         {
             $sql = "select * from ". $this->table_fullname ." where 1=1 ";
             $where =" and day_k_code=".$stock_code ." and day_k_date>= ".$start_date." and day_k_date<= ".$end_date ;