Data.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace Push\Lib;
  3. use Dever;
  4. class Data
  5. {
  6. public function get($key, $name, $num = 10)
  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'] = $num;
  13. $insert['col'] = '1,3';
  14. $info['id'] = Dever::db('push/info')->insert($insert);
  15. }
  16. $data = array();
  17. if ($info) {
  18. $data = Dever::db('push/data')->getAll(array('info_id' => $info['id']));
  19. if ($data) {
  20. foreach ($data as $k => $v) {
  21. $data[$k] = $this->getOne($v);
  22. }
  23. }
  24. }
  25. return $data;
  26. }
  27. private function getOne($info)
  28. {
  29. $info['id'] = 0;
  30. if ($info['type'] < 10) {
  31. $table = Dever::config('base')->type_table[$info['type']];
  32. if ($info['type'] == 1) {
  33. $id = $info['article_id'];
  34. } elseif ($info['type'] == 2) {
  35. $id = $info['vod_id'];
  36. } elseif ($info['type'] == 3) {
  37. $id = $info['live_id'];
  38. } elseif ($info['type'] == 4) {
  39. $id = $info['journal_id'];
  40. }
  41. if ($id > 0) {
  42. $info['id'] = $id;
  43. $data = Dever::db($table)->one($id);
  44. if (isset($data) && $data) {
  45. if (isset($data['name']) && $data['name'] && !$info['name']) {
  46. $info['name'] = $data['name'];
  47. }
  48. if (isset($data['pic_cover']) && $data['pic_cover'] && !$info['pic']) {
  49. $info['pic'] = $data['pic_cover'];
  50. }
  51. if (isset($data['pic_view_cover']) && $data['pic_view_cover'] && !$info['pic']) {
  52. $info['pic'] = $data['pic_view_cover'];
  53. }
  54. if (isset($data['pdate']) && $data['pdate']) {
  55. $info['cdate'] = $data['pdate'];
  56. }
  57. }
  58. }
  59. }
  60. $info['cdate'] = date('Y-m-d', $info['cdate']);
  61. return $info;
  62. }
  63. }