李璠涛 пре 4 година
родитељ
комит
2c53be3a43
3 измењених фајлова са 150 додато и 142 уклоњено
  1. 20 20
      lib/immediate_base.class.php
  2. 38 38
      lib/input_sina_immediate.class.php
  3. 92 84
      lib/table/table_immediate_base.class.php

+ 20 - 20
lib/immediate_base.class.php

@@ -18,8 +18,8 @@ class Immediate_base {
 
     static public function add($attrs)
     {
-        $date=date("Ym",time());
-        $Table_immediate_base = new Table_immediate_base($date);
+        //$date=date("Ym",time());
+        $Table_immediate_base = new Table_immediate_base();
         return $Table_immediate_base->add($attrs);
     }
 
@@ -29,24 +29,24 @@ class Immediate_base {
         return $Table_immediate_base->getList($filter, $count, $page, $pageSize);
     }
 
-    /***
-     * @param $attrs
-     * @param int $date
-     * @return mixed
-     * @throws Exception
-     * 添加某一直股票的历史数据
-     */
-    static public function insert($attrs,$date=0)
-    {
-        if (empty($attrs)) throw new Exception('参数不能为空', 102);
-        if($date===0)
-        {
-            $date=strtotime(date('Ymd'));
-        }
-        $Table_immediate_base = new Table_immediate_base($date);
-        $id = $Table_immediate_base->insert($attrs);
-        return $id;
-    }
+//    /***
+//     * @param $attrs
+//     * @param int $date
+//     * @return mixed
+//     * @throws Exception
+//     * 添加某一直股票的历史数据
+//     */
+//    static public function insert($attrs,$date=0)
+//    {
+//        if (empty($attrs)) throw new Exception('参数不能为空', 102);
+//        if($date===0)
+//        {
+//            $date=strtotime(date('Ymd'));
+//        }
+//        $Table_immediate_base = new Table_immediate_base($date);
+//        $id = $Table_immediate_base->insert($attrs);
+//        return $id;
+//    }
 
 }
 ?>

+ 38 - 38
lib/input_sina_immediate.class.php

@@ -9,28 +9,6 @@
 class Input_sina_immediate
 {
 
-    /****
-     * @param $url
-     * @return array|bool|string
-     * 对curl_setopt进行封装,消除代码冗余
-     */
-    static private function curl_get_data($url){
-        $curlHandle = curl_init();
-        curl_setopt($curlHandle, CURLOPT_URL, $url);
-        curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
-        curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
-        curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, false);
-        curl_setopt($curlHandle, CURLOPT_TIMEOUT, 10);
-        $content = curl_exec($curlHandle);
-        curl_close($curlHandle);//防止中文乱码
-        $content2 = iconv("gbk", "utf-8", $content);//子串
-        $content3 = substr($content2, stripos($content2, "=\"") + 2); //获取 var hq_str_sz000002="万 科A,30.780,30.800,30.510,  ="之后部分
-        $content4 = substr($content3, 0, strripos($content3, "\";")); //获取     万 科A,30.94,0.14,0.45,584039,178827";         ";之前部分
-        $content5 = explode(",", $content4);//分割
-        return $content5;
-    }
-
-
     /***
      * @param $code
      * @param $date
@@ -41,15 +19,14 @@ class Input_sina_immediate
      */
     static public function get_day_k($code, $exchange)
     {
-        $stock_code= $exchange.$code;
+        $stock_code = $exchange . $code;
         $url = "http://hq.sinajs.cn/list=" . $stock_code;
-        $content3=self::curl_get_data($url);//封装为函数,
-        if (empty($content3))
-        {
+        $content3 = self::curl_get_data($url);//封装为函数,
+        if (empty($content3)) {
             throw new Exception('抓取的数据不能为空', 102);
         }
         $data['timestamp'] = time();
-        $data['date'] = (int) date("Ymd",time());
+        $data['date'] = (int)date("Ymd", time());
         $data['code'] = $code;//股票代码此时去掉sh,sz
         $data['name'] = $content3[0];
         $data['open_price'] = floatval($content3[1]);//开盘价
@@ -59,23 +36,46 @@ class Input_sina_immediate
         $data['amount'] = floatval($content3[8]);//成交的股票数,以百为单位
         $data['value'] = floatval($content3[9]);//成交金额以万为单位
 
-//调用腾讯接口获取其他数据
-        $dataContent=InputTencentDay_k::get_stock_data($code, $exchange);
+        //调用腾讯接口获取其他数据
+        $dataContent = Input_tencent_day_k::get_stock_data($code, $exchange);
         if (!empty($dataContent)) {
-            $data["increase_price"]  =   empty($content1["increase_price"])?    0 : $content1["increase_price"];                    //  涨跌价
-            $data["increase_ratio"]  =   empty($content1["increase_ratio"])?    0 : $content1["increase_ratio"];                    //   涨跌幅
-            $data["turnover"]        =   empty($content1["turnover"])?          0 : $content1["turnover"];                          //    换手率
-            $data["pe_ttm"]          =   empty($dataContent["pe_ttm"])?         0 : $dataContent["pe_ttm"];                         //pe_ttm市盈率
-            $data["tradable_value"]  =   empty($dataContent["tradable_value"])? 0 : (int)($dataContent["tradable_value"]*100000000);//流通市值
-            $data["total_value"]     =   empty($dataContent["total_value"])?    0 : (int)($dataContent["total_value"]*100000000);   //总市值
-            $data["pb"]              =   empty($dataContent["pb"])?             0 : $dataContent["pb"];                             //市净率
-            $data["pe_dynamic"]      =   empty($dataContent["pe_dynamic"])?     0 : $dataContent["pe_dynamic"];                     //动态市盈率
-            $data["pe_static"]       =   empty($dataContent["pe_static"])?      0 : $dataContent["pe_static"];                      //静态市盈率
+            $data["increase_price"] = empty($content1["increase_price"]) ? 0 : $content1["increase_price"];                    //  涨跌价
+            $data["increase_ratio"] = empty($content1["increase_ratio"]) ? 0 : $content1["increase_ratio"];                    //   涨跌幅
+            $data["turnover"] = empty($content1["turnover"]) ? 0 : $content1["turnover"];                          //    换手率
+            $data["pe_ttm"] = empty($dataContent["pe_ttm"]) ? 0 : $dataContent["pe_ttm"];                         //pe_ttm市盈率
+            $data["tradable_value"] = empty($dataContent["tradable_value"]) ? 0 : (int)($dataContent["tradable_value"] * 100000000);//流通市值
+            $data["total_value"] = empty($dataContent["total_value"]) ? 0 : (int)($dataContent["total_value"] * 100000000);   //总市值
+            $data["pb"] = empty($dataContent["pb"]) ? 0 : $dataContent["pb"];                             //市净率
+            $data["pe_dynamic"] = empty($dataContent["pe_dynamic"]) ? 0 : $dataContent["pe_dynamic"];                     //动态市盈率
+            $data["pe_static"] = empty($dataContent["pe_static"]) ? 0 : $dataContent["pe_static"];                      //静态市盈率
         }
         return Immediate_base::add($data);
     }
 
 
+    /****
+     * @param $url
+     * @return array|bool|string
+     * 对curl_setopt进行封装,消除代码冗余
+     */
+    static private function curl_get_data($url)
+    {
+        $curlHandle = curl_init();
+        curl_setopt($curlHandle, CURLOPT_URL, $url);
+        curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
+        curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
+        curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, false);
+        curl_setopt($curlHandle, CURLOPT_TIMEOUT, 10);
+        $content = curl_exec($curlHandle);
+        curl_close($curlHandle);//防止中文乱码
+        $content2 = iconv("gbk", "utf-8", $content);//子串
+        $content3 = substr($content2, stripos($content2, "=\"") + 2); //获取 var hq_str_sz000002="万 科A,30.780,30.800,30.510,  ="之后部分
+        $content4 = substr($content3, 0, strripos($content3, "\";")); //获取     万 科A,30.94,0.14,0.45,584039,178827";         ";之前部分
+        $content5 = explode(",", $content4);//分割
+        return $content5;
+    }
+
+
 }
 
 ?>

+ 92 - 84
lib/table/table_immediate_base.class.php

@@ -7,123 +7,131 @@
  * Time: 14:51
  */
 
-class Table_immediate_base extends Table {
+class Table_immediate_base extends Table
+{
 
-    protected $base  = "";              //分表的后缀日期,在进行数据库操作的时候"Table_immediate_".$base
-    protected $table_name       = "immediate_";//表名,不带前缀,前缀在config中定义
-    protected $table_id         = "immediate_id";//指定ID字段名称,必须
-    protected $table_status     = '';//指定状态字段名称,如果有
-    protected $table_order      = '';//指定排序字段名称,如果有
-    protected $table_fullname    = "immediate_";//拼接好后表名  后面拼接日期  immediate_202011
+    protected $base = "";              //分表的后缀日期,在进行数据库操作的时候"Table_immediate_".$base
+    protected $table_name = "immediate_";//表名,不带前缀,前缀在config中定义
+    protected $table_id = "immediate_id";//指定ID字段名称,必须
+    protected $table_status = '';//指定状态字段名称,如果有
+    protected $table_order = '';//指定排序字段名称,如果有
+    protected $table_fullname = "immediate_";//拼接好后表名  后面拼接日期  immediate_202011
 
-	//数据库结构
-	protected function struct(){
-		$attr = array();
-		$attr['id']                 = 'immediate_id';
-		$attr['date']               = 'immediate_date';
-		$attr['code']               = 'immediate_code';
-        $attr['name']               = 'immediate_name';
-        $attr['open_price']         = 'immediate_open_price';
-        $attr['close_price']        = 'immediate_close_price';
-        $attr['highest_price']     = 'immediate_highest_price';
-        $attr['lowest_price']       = 'immediate_lowest_price';
-        $attr['increase_price']     = 'immediate_increase_price';
-        $attr['increase_value']     = 'immediate_increase_value';
-        $attr['turnover']           = 'immediate_turnover';
-        $attr['amount']             = 'immediate_amount';
-        $attr['value']              = 'immediate_value';
-        $attr['tradable_amount']    = 'immediate_tradable_amount';
-        $attr['tradable_value']     = 'immediate_tradable_value';
-        $attr['total_amount']       = 'immediate_total_amount';
-        $attr['total_value']        = 'immediate_total_value';
-        $attr['profitable']         = 'immediate_profitable';
-        $attr['pb']                 = 'immediate_pb';
-        $attr['pe_static']          = 'immediate_pe_static';
-        $attr['pe_dynamic']         = 'immediate_pe_dynamic';
-        $attr['pe_ttm']             = 'immediate_pe_ttm';
+    //数据库结构
+    protected function struct()
+    {
+        $attr = array();
+        $attr['id'] = 'immediate_id';
+        $attr['date'] = 'immediate_date';
+        $attr['code'] = 'immediate_code';
+        $attr['name'] = 'immediate_name';
+        $attr['open_price'] = 'immediate_open_price';
+        $attr['close_price'] = 'immediate_close_price';
+        $attr['highest_price'] = 'immediate_highest_price';
+        $attr['lowest_price'] = 'immediate_lowest_price';
+        $attr['increase_price'] = 'immediate_increase_price';
+        $attr['increase_value'] = 'immediate_increase_value';
+        $attr['turnover'] = 'immediate_turnover';
+        $attr['amount'] = 'immediate_amount';
+        $attr['value'] = 'immediate_value';
+        $attr['tradable_amount'] = 'immediate_tradable_amount';
+        $attr['tradable_value'] = 'immediate_tradable_value';
+        $attr['total_amount'] = 'immediate_total_amount';
+        $attr['total_value'] = 'immediate_total_value';
+        $attr['profitable'] = 'immediate_profitable';
+        $attr['pb'] = 'immediate_pb';
+        $attr['pe_static'] = 'immediate_pe_static';
+        $attr['pe_dynamic'] = 'immediate_pe_dynamic';
+        $attr['pe_ttm'] = 'immediate_pe_ttm';
 
 
-		return $attr;
-	}
+        return $attr;
+    }
 
     /***
      * Table_immediate_base constructor.
      * 构造函数,动态获取表的后缀年月
      * 王刚涛
      */
-    public function __construct($date) {
+    public function __construct()
+    {
         parent::__construct();
+        $date=date("Ym",time());
         $this->table_name .= $date;//表名不代前缀
         $this->table_fullname .= $date;//表名代前缀
-        $this ->createBaseTable();
+        $this->createBaseTable();
     }
 
     /****
      *在构造函数中调用该函数,自动创建表
      * 王刚涛
      */
-     public function createBaseTable(){
-         global $mypdo;
-         $sql = " CREATE TABLE IF NOT EXISTS `". $this->table_fullname."` LIKE  boniu_immediate_base";
-         $mypdo->pdo->exec($sql);
-     }
+    public function createBaseTable()
+    {
+        global $mypdo;
+        $sql = " CREATE TABLE IF NOT EXISTS `" . $this->table_fullname . "` LIKE  boniu_immediate_base";
+        $mypdo->pdo->exec($sql);
+    }
 
     /****
      * @param $attr
      * @return mixed
      * 王刚涛
      */
-    public function add($attr){
-        $param = array (
+    public function add($attr)
+    {
+        $param = array(
             'immediate_timestamp '    => array('number', $attr['timestamp']),
-            'immediate_date'    => array('number', $attr['date']),
-            'immediate_code'    => array('string', $attr['code']),
-            'immediate_name'    => array('string', $attr['name']),
+            'immediate_date'          => array('number', $attr['date']),
+            'immediate_code'          => array('string', $attr['code']),
+            'immediate_name'          => array('string', $attr['name']),
             'immediate_open_price'    => array('number', $attr['open_price']),
-            'immediate_close_price'    => array('number', $attr['close_price']),
-            'immediate_highest_price'    => array('number', $attr['highest_price']),
-            'immediate_lowest_price'    => array('number', $attr['lowest_price']),
-            'immediate_amount'    => array('number', $attr['amount']),
-            'immediate_value'    => array('number', $attr['value']),
+            'immediate_close_price'   => array('number', $attr['close_price']),
+            'immediate_highest_price' => array('number', $attr['highest_price']),
+            'immediate_lowest_price'  => array('number', $attr['lowest_price']),
+            'immediate_amount'        => array('number', $attr['amount']),
+            'immediate_value'         => array('number', $attr['value']),
 
-            'immediate_increase_price'    => array('number', $attr['increase_price']),//  涨跌价
-            'immediate_increase_ratio'    => array('number', $attr['increase_ratio']),//   涨跌幅
-            'immediate_turnover'    => array('number', $attr['turnover']),//    换手率
-            'immediate_pe_ttm'    => array('number', $attr['pe_ttm']),
-            'immediate_tradable_value'    => array('number', $attr['tradable_value']),
+            'immediate_increase_price' => array('number', $attr['increase_price']),//  涨跌价
+            'immediate_increase_ratio' => array('number', $attr['increase_ratio']),//   涨跌幅
+            'immediate_turnover'       => array('number', $attr['turnover']),//    换手率
+            'immediate_pe_ttm'         => array('number', $attr['pe_ttm']),
+            'immediate_tradable_value' => array('number', $attr['tradable_value']),
             'immediate_total_value'    => array('number', $attr['total_value']),
-            'immediate_pb'    => array('number', $attr['pb']),
-            'immediate_pe_dynamic'    => array('number', $attr['pe_dynamic']),
-            'immediate_pe_static'    => array('number', $attr['pe_static']),
+            'immediate_pb'             => array('number', $attr['pb']),
+            'immediate_pe_dynamic'     => array('number', $attr['pe_dynamic']),
+            'immediate_pe_static'      => array('number', $attr['pe_static']),
         );
         return $this->pdo->sqlinsert($this->table_fullname, $param);
     }
 
-    /****
-     * @param $attr
-     * @return mixed
-     *
-     */
-    public function insert($attr){
-        $param = array (
-            'immediate_date'    => array('number', strtotime($attr['date'])),
-            'immediate_code'    => array('number', $attr['code']),
-            'immediate_name'    => array('string', $attr['name']),
-            'immediate_open_price'    => array('number', $attr['open_price']),
-            'immediate_highest_price'    => array('number', $attr['highest_price']),
-            'immediate_lowest_price'    => array('number', $attr['lowest_price']),
-            'immediate_value'    => array('number', $attr['value']),
-            'immediate_amount'    => array('number', $attr['amount']),
-            'immediate_close_price'    => array('number', $attr['close_price']),
-            'immediate_close_price_qfq'    => array('number', $attr['close_price_qfq']),
-            'immediate_increase_price'    => array('number', $attr['increase_price']),
-            'immediate_increase_value'    => array('number', $attr['increase_value']),
-            'immediate_turnover'    => array('number', $attr['turnover']),
-
-        );
-        $msg=$this->pdo->sqlinsert($this->table_fullname, $param);
-        return $msg;
-    }
+//    /****
+//     * @param $attr
+//     * @return mixed
+//     *
+//     */
+//    public function insert($attr)
+//    {
+//        $param = array(
+//            'immediate_date'            => array('number', strtotime($attr['date'])),
+//            'immediate_code'            => array('number', $attr['code']),
+//            'immediate_name'            => array('string', $attr['name']),
+//            'immediate_open_price'      => array('number', $attr['open_price']),
+//            'immediate_highest_price'   => array('number', $attr['highest_price']),
+//            'immediate_lowest_price'    => array('number', $attr['lowest_price']),
+//            'immediate_value'           => array('number', $attr['value']),
+//            'immediate_amount'          => array('number', $attr['amount']),
+//            'immediate_close_price'     => array('number', $attr['close_price']),
+//            'immediate_close_price_qfq' => array('number', $attr['close_price_qfq']),
+//            'immediate_increase_price'  => array('number', $attr['increase_price']),
+//            'immediate_increase_value'  => array('number', $attr['increase_value']),
+//            'immediate_turnover'        => array('number', $attr['turnover']),
+//
+//        );
+//        $msg = $this->pdo->sqlinsert($this->table_fullname, $param);
+//        return $msg;
+//    }
 
 }
+
 ?>