index_day_k.class.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * Class Day_k_base
  4. * @author 王刚涛
  5. * 日线数据
  6. */
  7. class Index_day_k {
  8. static public function getInfoById($id)
  9. {
  10. $Table_index_day_k = new Table_index_day_k();
  11. return $Table_index_day_k->getInfoById($id);
  12. }
  13. static public function getInfoByCodeAndDate($code, $date)
  14. {
  15. $Table_index_day_k = new Table_index_day_k();
  16. return $Table_index_day_k->getInfoByCodeAndDate($code, $date);
  17. }
  18. static public function getList($filter = array(), $count=0, $page=0, $pagesize=0, $order=0)
  19. {
  20. $Table_index_day_k = new Table_index_day_k();
  21. return $Table_index_day_k->getList($filter, $count, $page, $pagesize, $order);
  22. }
  23. static public function getAllList()
  24. {
  25. $Table_index_day_k = new Table_index_day_k();
  26. return $Table_index_day_k->getList();
  27. }
  28. static public function getListOrderByDate($filter = array(), $count=0, $page=0, $pagesize=0, $order=0)
  29. {
  30. $Table_index_day_k = new Table_index_day_k();
  31. return $Table_index_day_k->getListOrderByDate($filter, $count, $page, $pagesize, $order);
  32. }
  33. static public function addOrUpdateByCodeDate($attrs)
  34. {
  35. if (empty($attrs)) throw new Exception('参数不能为空', 101);
  36. if (empty($attrs['code'])) throw new Exception('股票代码不能为空', 102);
  37. if (empty($attrs['date'])) throw new Exception('日期不能为空', 103);
  38. $Table_index_day_k = new Table_index_day_k();
  39. $id = $Table_index_day_k->addOrUpdateByCodeDate($attrs);
  40. return $id;
  41. }
  42. //找到某个指数指定某天之前有指定个数记录的前一天
  43. static public function getRecentDateByCode($code, $date, $dayCount)
  44. {
  45. //循环找到最近天数的起始日期
  46. $count = 0;
  47. $recent_date = AddOrSubDate($date, -$dayCount);
  48. do {
  49. $filter = array(
  50. 'code' => array($code, '=s'),
  51. 'date' => array($date, 'date_between', $recent_date),
  52. );
  53. $count = self::getList($filter, 1);
  54. $recent_date = AddOrSubDate($recent_date, -1);
  55. }while(($count < $dayCount) and ($recent_date >= AddOrSubDate(GLOBAL_BEGIN_DATE, -1)));
  56. return AddOrSubDate($recent_date, 1);
  57. }
  58. }
  59. ?>