Data.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace Push\Lib;
  3. use Dever;
  4. class Data
  5. {
  6. public function get($key, $name, $total = 10, $page = false, $limit = false)
  7. {
  8. $info = Dever::db('push/info')->one(array('key' => $key));
  9. if (!$info) {
  10. $insert['key'] = $key;
  11. $insert['name'] = $name;
  12. $insert['num'] = $total;
  13. $insert['col'] = '1,3';
  14. $info['id'] = Dever::db('push/info')->insert($insert);
  15. $info['num'] = $insert['num'];
  16. }
  17. $data = array();
  18. if ($info) {
  19. if (!$info['num']) {
  20. $info['num'] = 20;
  21. }
  22. if ($limit > 0) {
  23. $info['num'] = $limit;
  24. }
  25. if ($page) {
  26. $data = Dever::db('push/data')->getAllPage(array('info_id' => $info['id'], 'page' => array($info['num'], 'list')));
  27. } else {
  28. $data = Dever::db('push/data')->getAll(array('info_id' => $info['id'], 'limit' => $info['num']));
  29. }
  30. if ($data) {
  31. foreach ($data as $k => $v) {
  32. $data[$k] = $this->getOne($v);
  33. }
  34. }
  35. }
  36. return $data;
  37. }
  38. private function getOne($info)
  39. {
  40. $info['id'] = 0;
  41. if ($info['type'] < 10) {
  42. $table = Dever::config('base')->type_table[$info['type']];
  43. if ($info['type'] == 1) {
  44. $id = $info['article_id'];
  45. } elseif ($info['type'] == 2) {
  46. $id = $info['vod_id'];
  47. } elseif ($info['type'] == 3) {
  48. $id = $info['live_id'];
  49. } elseif ($info['type'] == 4) {
  50. $id = $info['journal_id'];
  51. }
  52. unset($info['article_id']);
  53. unset($info['vod_id']);
  54. unset($info['live_id']);
  55. unset($info['journal_id']);
  56. if ($id > 0) {
  57. $info['id'] = $id;
  58. $data = Dever::db($table)->one($id);
  59. if (isset($data) && $data) {
  60. if (isset($data['name']) && $data['name'] && !$info['name']) {
  61. $info['name'] = $data['name'];
  62. }
  63. if (isset($data['pic_cover']) && $data['pic_cover'] && !$info['pic']) {
  64. $info['pic'] = $data['pic_cover'];
  65. }
  66. if (isset($data['pic_view_cover']) && $data['pic_view_cover'] && !$info['pic']) {
  67. $info['pic'] = $data['pic_view_cover'];
  68. }
  69. if (isset($data['num_ding'])) {
  70. $info['num_ding'] = $data['num_ding'] + $data['num_add_ding'];
  71. }
  72. if (isset($data['pdate']) && $data['pdate']) {
  73. $info['cdate'] = $data['pdate'];
  74. }
  75. }
  76. }
  77. } else {
  78. unset($info['article_id']);
  79. unset($info['vod_id']);
  80. unset($info['live_id']);
  81. unset($info['journal_id']);
  82. }
  83. $info['cdate'] = date('Y-m-d', $info['cdate']);
  84. return $info;
  85. }
  86. }