新的代码

来源:互联网 发布:巫师3优化好 编辑:程序博客网 时间:2024/05/21 17:57
<?phpclass api extends base{  function __construct()  {    $GLOBALS['sid'] = 'demo';  }  function index($apistr = ''){    $q = load('m/entity_m');    $q->filter = ' 1 ';  //start filter,start security    var_dump($q);    die();    //test code    $p = _decode($apistr);    var_dump($p);    $type= $p['type']?$p['type']:'deal';    $order_by = $p['order_by']?$p['order_by']:'investDate';    $desc = $p['desc']?$p['desc']:'desc';    $field = $p['field']?$p['field']:false;    $val = $p['val']?$p['val']:false;    $page = $p['page']?$p['page']:1;    $page_size = $p['page_size']?$p['page_size']:20;    //$this->data = $data = load('m/config_m')->key($this->mod);    $q = load('m/entity_m');    $q->filter = ' 1 ';    if($field){      $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid      where i.type= '$type' and  i.field = '$field' and i.val = '$val'";    }    else{      $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid      where i.type= '$type' and  i.field = '$order_by' order by i.val $desc limit $page,$page_size";    }    $ret = $q->db->query($query);    var_dump($ret);      $this->display('v/api/index',$param);    die();  }  //在数据库中得到列表  function glist($data_type,$page){    switch ($data_type) {      case 'value':        # code...        break;      default:        # code...        break;    }    //deal  }  //得到单个的信息  function ginfo(){      switch ($variable) {        case 'value':          # code...          break;        default:          # code...          break;      }       //company       }  function get( $apistr = '')  {    $p = _decode($apistr);    $type= $p['type']?$p['type']:'deal';    $order_by = $p['order_by']?$p['order_by']:'investDate';    $desc = $p['desc']?$p['desc']:'desc';    $field = $p['field']?$p['field']:false;    $val = $p['val']?$p['val']:false;    $page = $p['page']?$p['page']:1;    $page_size = $p['page_size']?$p['page_size']:20;    //$this->data = $data = load('m/config_m')->key($this->mod);    $q = load('m/entity_m');    $q->filter = ' 1 ';    if($field){      $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid      where i.type= '$type' and  i.field = '$field' and i.val = '$val'";    }    else{      $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid      where i.type= '$type' and  i.field = '$order_by' order by i.val $desc limit $page,$page_size";    }    $this->display('v/api/get',$param);    die();    $ret = $q->db->query($query);    var_dump($ret);    die(_encode($ret));  }  function data($data_type,$page)  {    return $this->$data_type($page);  }  function deal( $page = 1)  {    $p = _decode($apistr);    $type= $p['type']?$p['type']:'deal';    $order_by = $p['order_by']?$p['order_by']:'investDate';    $desc = $p['desc']?$p['desc']:'desc';    $field = $p['field']?$p['field']:false;    $val = $p['val']?$p['val']:false;  //  $page = $p['page']?$p['page']:1;    $page_size = $p['page_size']?$p['page_size']:20;    //$this->data = $data = load('m/config_m')->key($this->mod);    $q = load('m/entity_m');    $q->filter = ' 1 ';    $starid =  ($page-1)*$page_size;    $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid    where i.type= '$type' and  i.field = '$order_by' order by i.val $desc limit $starid,$page_size";    $ret = $q->db->query($query);    die(_encode($ret));  }  function announcement( $page = 1)  {    //todo: 小亮子 获取 公告数据    $p = _decode($apistr);    $type= $p['type']?$p['type']:'announcement';    $order_by = $p['order_by']?$p['order_by']:'atype';    $desc = $p['desc']?$p['desc']:'desc';    $field = $p['field']?$p['field']:false;    $val = $p['val']?$p['val']:false;  //  $page = $p['page']?$p['page']:1;    $page_size = $p['page_size']?$p['page_size']:20;    //$this->data = $data = load('m/config_m')->key($this->mod);    $q = load('m/entity_m');    $q->filter = ' 1 ';    $starid =  ($page-1)*$page_size;    //$query = "select e.* from entity e where type ='announcement'";    $query = " select count(*) as a from entity_index i where i.type= '$type' and i.field = '$order_by' and i.val = '定增'";    //" $desc limit $starid,$page_size";    $count = $q->db->query($query);    $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid    where i.type= '$type' and  i.field = '$order_by'  and i.val = '定增' order by e.id desc limit $starid,$page_size";    //print_r($query);die;    //select e.* from entity e inner join entity_index i on e.uuid = i.eid    //where i.type= 'announcement' and i.field = 'atype' order by i.val desc limit 0,20    $ret = $q->db->query($query);    $ret['total'] = $count[0][a];    die(_encode($ret));  }  function company( $page = 1)  {    $p = _decode($apistr);    $type= $p['type']?$p['type']:'company';    $order_by = $p['order_by']?$p['order_by']:'id';    $desc = $p['desc']?$p['desc']:'desc';    $field = $p['field']?$p['field']:false;    $val = $p['val']?$p['val']:false;  //  $page = $p['page']?$p['page']:1;    $page_size = $p['page_size']?$p['page_size']:20;    //$this->data = $data = load('m/config_m')->key($this->mod);    $q = load('m/entity_m');    $q->filter = ' 1 ';    $starid =  ($page-1)*$page_size;    $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid    where i.type= '$type' and  i.field = '$order_by' order by i.val $desc limit $starid,$page_size";    $ret = $q->db->query($query);    die(_encode($ret));  }  function name($type='company',$name = 'Homer')  {    $q = load('m/entity_m');    $query = "SELECT *FROM  `entity`WHERE  `type`='company' and `name` = 'Homer'LIMIT 0 , 30";    $param = $q->db->query($query);    //get(" and `name`='$name' ");    print_r($q);    print_r($param);    //die(_encode($param));  }  function b2data()  {    foreach($this->structure as $k => $s){      if($s['listed'] && $s['id']!=$u['field'] && $s['id']!= $filter['field'] )$param['structure'][$k] = $s;    }    //$filtersql = "and uuid in( select eid from entity_index where field = '$filter[field]' and val = '$filter[val]')";    foreach($_POST['filter'] as $k=>$v){      $filtersql = "and uuid in( select eid from entity_index where field = '$k' and val = '$v')";    }    $param['divid'] = $_POST['divid'];    $param['data'] = load('m/entity_m')->get(" and type = '$this->mod' $filtersql and del=0 ");    $this->display('v/entity/data',$param);  }  function about($uuid)  {    $r = load('m/entity_m')->get($uuid);    $data = _decode($r['data']);    $param['uuid'] = $uuid;    $param['title'] = $r['name'];    $param['fields'] = $this->build_view( $this->structure, $data);    $this->display('v/entity/view',$param);  }  function update_deal()  {    //set_time_limit(0);    //$subdir = array('deal');    //$dir  = '../36kr/';//    $config =    $c = load('m/config_m');    $c->filter = " 1 ";    $config = $c->get(" and sid='demo' and `key`='deal' ");    $data = _decode($config[0]['data']);    $structure = $data['item'];    //print_r($structure);//      for($i=1;$i<2;$i++){    $file =file_get_contents('https://rong.36kr.com/n/api/index/fund-express?pageSize=60');//.$i);    $json = _decode($file);    $data =  $json['data'];    echo '<ol>';    foreach($data as $d){      echo '<li>'.$d['name'];      $d['type'] = 'deal';      $d['data'] = $d;    //  print_r($d);      $investDate = $d['investDate'];      echo date('Y-m-d',substr($investDate,0,10));      $id = $d['id'];      // 判断是否存在      //$dates = load('m/entity_m')->db->query("select eid from entity_index where type='deal' and field = 'investDate' and val='$investDate'");      $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid        where i.type= 'deal' and  i.field = 'ID' and i.val = '$id'";      $deals = load('m/entity_m')->db->query($query);      //"select eid from entity_index where type='deal' and field = 'ID' and val='$id'");      //print_r($dates);      $this->getCompanyById($id);      $addflag = true;      foreach($deals as $de){        $deal = _decode($de['data']);        if($deal['investDate'] == $investDate){          $addflag =false;          break;        }      }     if($addflag)load('m/entity_m')->add($d,'deal', $structure , $script = false );  }    echo '</ol>';  }  function update_announcement()  {  //   for($i=0;$i<1000;$i++){     $i = 0;     $file = 'http://data.eastmoney.com/notices/getdata.ashx?=&FirstNodeType=2&CodeType=1&SecNodeType=3&PageIndex='.$i.'&PageSize=50';     //print_r($file);die;     $content = file_get_contents($file);     $content = iconv("GB2312//IGNORE", "utf-8", $content);    // print_r($content);die;    //$rule = '^[var =].*[;]$';     preg_match('/\{(.*)\}/',$content,$mateches);// /\(\[(.*)\]\)/is     //print_r($mateches[0]);die;     $data = _decode($mateches[0]);     //print_r($data);continue;     echo '<ol>';     foreach ($data['data'] as $d) {       foreach($d['ANN_RELCOLUMNS'] as $a){         if($a['COLUMNNAME'] == '增发预案'){            echo '<li>'.$d['NOTICETITLE'];            $d['name'] = $d['NOTICETITLE'];            $d['type'] = 'announcement';            $d+=$d['CDSY_SECUCODES'][0];            $d['data'] = $d;            $d['sid'] = 'demo';            // 验证重复并插入数据库            //print_r($d);            $id = $d['INFOCODE'];            $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid              where i.type= 'announcement' and  i.field = 'INFOCODE' and i.val = '$id'";            $olds = load('m/entity_m')->db->query($query);            if(empty($olds))load('m/entity_m')->add($d,'announcement');         }       }     }   //}  }  function getAnnouncementById($uuid)  {    //to do小亮子    //先找结构    $c = load('m/config_m');    $c->filter = " 1 ";    $config = $c->get(" and sid='demo' and `key`='announcement' ");    $data = _decode($config[0]['data']);    $structure = $data['item'];    //上市公司公告数据    $ann_m = load('m/entity_m');    $ann = $ann_m->get($uuid);    //print_r($ann);    // 上市公司数据    $anndata = _decode($ann['data']);    $stockid = $anndata['SECURITYCODE'];    $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid      where i.type= 'stock' and  i.field = 'stockcode' and i.val = '$stockid'";    $company = $ann_m->db->query($query);    $dt = $anndata + _decode($company[0][data]);    //应该是个空数据    //die(_encode($ret));    echo _encode($dt);  }  function getCompanyById($id)  {    //找结构    $c = load('m/config_m');    $c->filter = " 1 ";    $config = $c->get(" and sid='demo' and `key`='company' ");    $data = _decode($config[0]['data']);    $structure = $data['item'];    $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid      where i.type= 'company' and  i.field = 'id' and i.val = '$id'";    $company = load('m/entity_m')->db->query($query);   //print_r($company);die;    if(empty($company)){      //print_r(sdsd);die;      $file =file_get_contents('http://rong.36kr.com/n/api/company/'.$id);//.$i);      $c = _decode($file);      $d = $dt = $c['data'];      $d['type'] = 'company';      $d['data'] = $d;      load('m/entity_m')->add($d,'company', $structure , $script = false );    }    else {      $dt = _decode($company[0][data]);    }    // get deal by ID(companyid)    //print_r($dt);die;    //空数据    $query = " select e.* from entity e inner join entity_index i on e.uuid = i.eid    where i.type= 'deal' and  i.field = 'ID' and i.val='$id' limit 20";    $ret = load('m/entity_m')->db->query($query);    $dt['deals']  = $ret;    //print_r($dt);die;    //die(_encode($ret));    //$dt数据是data和外部数据    echo _encode($dt);  }   //通过id取新闻  function getNewsById($id)  {    $n = load('m/config_m');    $n->filter = '1';    $config = $n->get("and sid ='demo' and 'key'= 'news'");    // 对json 格式的进行编码,json转化成数组    $data=_decode($config[0]['data']);    $structure = $data['item'];    //关联entity表uuid和entity_index表的eid相同数据,返回单行数据    $sql = "select e.* from entity e inner join entity_index i on e.uuid = i.eid            where i.type= 'news' and  i.field = 'cid' and i.val = '$id'";    $news = load('m/entity_m')->db->query($sql);    //若news为空,抓取news数据并且解析    if (empty($news)) {      # code...      $file =file_get_contents('http://rong.36kr.com/n/api/news/'.$id);//.$i);      $c = _decode($file);      $d = $dt = $c['data'];      $d['type'] = 'news';      $d['data'] = $d;      //print_r($d);      load('m/entity_m')->add($d,'news', $structure , $script = false );    }    //若不为空,在转华为数组    else{      $dt = _decode($news[0][data]);    }     $sql = "select e.* from entity e inner join entity_index i on e.uuid = i.eid             where i.type = 'deal' and i.fields = 'cid' and i.val= '$id'limit 20";     $res = load('m/entity_m')->db->query($sql);     $dt['deals'] = $res ;     //数组或对象转化成json格式,参数2是常量     echo _encode($dt);  }  //通过id取项目数据  function getProductById($id)  {    $n = load('m/config_m');    $n->filter = '1';    $config = $n->get("and sid ='demo' and 'key'= 'product'");    $data=_decode($config[0]['data']);    $structure = $data['item'];    $sql = "select e.* from entity e inner join entity_index i on e.uuid = i.eid            where i.type= 'product' and  i.field = 'cid' and i.val = '$id'";    $product = load('m/entity_m')->db->query($sql);    if (empty($product)) {      # code...      $file =file_get_contents('http://rong.36kr.com/n/api/product/'.$id);//.$i);      $c = _decode($file);      $d = $dt = $c['data'];      $d['type'] = 'product';      $d['data'] = $d;      //print_r($d);      load('m/entity_m')->add($d,'product', $structure , $script = false );    }else{      $dt = _decode($product[0][data]);    }     $sql = "select e.* from entity e inner join entity_index i on e.uuid = i.eid             where i.type = 'deal' and i.fields = 'cid' and i.val= '$id'limit 20";     $res = load('m/entity_m')->db->query($sql);     $dt['deals'] = $res ;     echo _encode($dt);  }  //通过id取成员  function getMemberById($id)  {    $n = load('m/config_m');    $n->filter = '1';    $config = $n->get("and sid ='demo' and 'key'= 'member'");    $data=_decode($config[0]['data']);    $structure = $data['item'];    $sql = "select e.* from entity e inner join entity_index i on e.uuid = i.eid            where i.type= 'member' and  i.field = 'cid' and i.val = '$id'";    $member = load('m/entity_m')->db->query($sql);    if (empty($member)) {      # code...      $file =file_get_contents('http://rong.36kr.com/n/api/member/'.$id);//.$i);      $c = _decode($file);      $d = $dt = $c['data'];      $d['type'] = 'member';      $d['data'] = $d;      //print_r($d);      load('m/entity_m')->add($d,'member', $structure , $script = false );    }else{      $dt = _decode($member[0][data]);    }     $sql = "select e.* from entity e inner join entity_index i on e.uuid = i.eid             where i.type = 'deal' and i.fields = 'cid' and i.val= '$id'limit 20";     $res = load('m/entity_m')->db->query($sql);     $dt['deals'] = $res ;     echo _encode($dt);  }}
0 0
原创粉丝点击