| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- <?php
- /**
- * Created by PhpStorm.
- * User: 王刚涛
- * Date: 2020/11/24
- * Time: 14:51
- */
- class Table_day_k extends Table {
- protected $base = ""; //分表的后缀日期,在进行数据库操作的时候"Table_day_k_".$base
- protected $table_name = "day_k";//表名,不带前缀,前缀在config中定义
- protected $table_id = "day_k_id";//指定ID字段名称,必须
- protected $table_status = '';//指定状态字段名称,如果有
- protected $table_order = '';//指定排序字段名称,如果有
- //数据库结构
- protected function struct(){
- $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';
- return $attr;
- }
- /****
- * @param $attr
- * @return mixed
- * 王刚涛
- */
- public function add($attr){
- $param = array (
- 'day_k_timestamp ' => array('number', $attr['timestamp']),
- 'day_k_date' => array('number', $attr['date']),
- 'day_k_code' => array('string', $attr['code']),
- 'day_k_name' => array('string', $attr['name']),
- 'day_k_open_price' => array('number', $attr['open_price']),
- 'day_k_close_price' => array('number', $attr['close_price']),
- 'day_k_highest_price' => array('number', $attr['highest_price']),
- 'day_k_lowest_price' => array('number', $attr['lowest_price']),
- 'day_k_amount' => array('number', $attr['amount']),
- 'day_k_value' => array('number', $attr['value']),
- 'day_k_increase_price' => array('number', $attr['increase_price']),// 涨跌价
- 'day_k_increase_ratio' => array('number', $attr['increase_ratio']),// 涨跌幅
- 'day_k_turnover' => array('number', $attr['turnover']),// 换手率
- 'day_k_pe_ttm' => array('number', $attr['pe_ttm']),
- 'day_k_tradable_value' => array('number', $attr['tradable_value']),
- 'day_k_total_value' => array('number', $attr['total_value']),
- 'day_k_pb' => array('number', $attr['pb']),
- 'day_k_pe_dynamic' => array('number', $attr['pe_dynamic']),
- 'day_k_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 (
- 'day_k_date' => array('number', strtotime($attr['date'])),
- 'day_k_code' => array('number', $attr['code']),
- 'day_k_name' => array('string', $attr['name']),
- 'day_k_open_price' => array('number', $attr['open_price']),
- 'day_k_highest_price' => array('number', $attr['highest_price']),
- 'day_k_lowest_price' => array('number', $attr['lowest_price']),
- 'day_k_value' => array('number', $attr['value']),
- 'day_k_amount' => array('number', $attr['amount']),
- 'day_k_close_price' => array('number', $attr['close_price']),
- 'day_k_close_price_qfq' => array('number', $attr['close_price_qfq']),
- 'day_k_increase_price' => array('number', $attr['increase_price']),
- 'day_k_increase_value' => array('number', $attr['increase_value']),
- 'day_k_turnover' => array('number', $attr['turnover']),
- );
- $msg=$this->pdo->sqlinsert($this->table_fullname, $param);
- return $msg;
- }
- /***
- * @param $attr
- * @return mixed
- * day_k的历史数据
- */
- public function HistoryDayK($attr){
- $param = array (
- 'day_k_timestamp ' => array('number', $attr['timestamp']),
- 'day_k_date' => array('number', $attr['date']),
- 'day_k_code' => array('string', $attr['code']),
- 'day_k_name' => array('string', $attr['name']),
- 'day_k_open_price' => array('number', $attr['open_price']),
- 'day_k_highest_price' => array('number', $attr['highest_price']),
- 'day_k_lowest_price' => array('number', $attr['lowest_price']),
- 'day_k_close_price' => array('number', $attr['close_price']),
- 'day_k_value' => array('number', $attr['value']),
- 'day_k_amount' => array('number', $attr['amount']),
- 'day_k_increase_price' => array('number', $attr['increase_price']),
- 'day_k_increase_ratio' => array('number', $attr['increase_ratio']),
- );
- $msg=$this->pdo->sqlinsert($this->table_fullname, $param);
- return $msg;
- }
- public function stock_recent_days($code,$start_date,$traceback_days,$order)
- {
- //查询语句必须用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 ;
- $sql.=$where;
- $orderInfo=" ORDER BY day_k_date desc";
- $sql.=$orderInfo;
- $limit=" limit ".$traceback_days;
- $sql.=$limit;
- if($order==1){
- $sql= " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_timestamp desc ";
- }else{
- $sql= " SELECT a.* FROM "."($sql) a ORDER BY a.day_k_timestamp asc";
- }
- $rs = $this->pdo->sqlQuery($sql);
- $r = array();
- if($rs){
- foreach($rs as $key => $val){
- $r[$key] = $this->dataToAttr($val);
- }
- return $r;
- }else{
- return $r;
- }
- }
- /***
- * @param $code
- * @param $start_date
- * @param $end_date
- * @return array
- *
- */
- public function get_day_k_info($code,$start_date,$end_date,$order_info)
- {
- //查询语句必须用sql_check_input检查参数
- $stock_code = $this->pdo->sql_check_input(array('string', $code));//类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
- $start_date= $this->pdo->sql_check_input(array('number', $start_date));
- $end_date = $this->pdo->sql_check_input(array('number', $end_date));
- $sql = "select * from ". $this->table_fullname ." where 1=1 ";
- $where =" and day_k_code=".$stock_code ." and day_k_timestamp between ".$start_date." and ".$end_date ;
- $sql.=$where;
- if($order_info==1)
- {
- $order=" order by day_k_timestamp desc";
- }
- else
- {
- $order=" order by day_k_timestamp asc";
- }
- $sql.=$order;
- $rs = $this->pdo->sqlQuery($sql);
- $r = array();
- if($rs){
- foreach($rs as $key => $val){
- $r[$key] = $this->dataToAttr($val);
- }
- return $r;
- }else{
- return $r;
- }
- }
- public function get_current_day_k($code,$date)
- {
- //查询语句必须用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 ;
- if($date==0){//获取的是当天的数据
- // $date = (int)(strtotime(date("Y-m-d",time())));
- $date=date("Ymd",time());
- $where.=" and day_k_date = ".$date;
- }else{//获取某一天的数据
- $date = $this->pdo->sql_check_input(array('number', $date));
- $where.=" and day_k_date =".$date;
- }
- $sql.=$where;
- $rs = $this->pdo->sqlQuery($sql);
- $r = array();
- if($rs){
- foreach($rs as $key => $val){
- $r[$key] = $this->dataToAttr($val);
- }
- return $r[0];
- }else{
- return $r;
- }
- }
- }
- ?>
|