HomePage.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. namespace app\frontend\modules\home;
  3. class HomePage
  4. {
  5. protected $designer = [
  6. 'livestreaming', //带货直播
  7. 'business', //商家优惠券
  8. 'article', //文章
  9. 'store', //附近门店
  10. ];
  11. /**
  12. * 处理首页页面数据
  13. *@param $data 组件详细信息
  14. */
  15. public function getList($data)
  16. {
  17. foreach ($data as $key => $value)
  18. {
  19. if (in_array($value['temp'],$this->designer))
  20. {
  21. $data[$key] = $this->{$value['temp']}($value);
  22. }
  23. }
  24. return $data;
  25. }
  26. /**
  27. * 首页带货直播
  28. *@param $value 组件详细信息
  29. */
  30. protected function livestreaming($value)
  31. {
  32. //插件是否启用
  33. if (!\YunShop::plugin()->get('room'))
  34. {
  35. return $value;
  36. }
  37. $params = [];
  38. if ($value['params']['number']) //页面显示数量
  39. {
  40. $params['page_size'] = $value['params']['number'];
  41. }
  42. $LiveListController = new \Yunshop\Room\frontend\LiveListController();
  43. switch ($value['params']['type']) //类型
  44. {
  45. case '0':
  46. $result = $LiveListController->getAllLiveList(request(),$params); //全部直播
  47. break;
  48. case '1':
  49. $result = $LiveListController->getLiveRecommend(request(),$params); //推荐直播
  50. //
  51. break;
  52. case '2':
  53. $result = $LiveListController->getLiveList(request(),$params); //直播中
  54. break;
  55. case '3':
  56. $result = $LiveListController->getLiveList(request(),$params); //直播预告
  57. break;
  58. case '4':
  59. $result = $LiveListController->playBack(request(),$params); //精彩回放
  60. break;
  61. default:
  62. return $value;
  63. break;
  64. }
  65. if (is_object($result)) {
  66. $result = $result->getData(true);
  67. }
  68. if ($result['data']['data'])
  69. {
  70. $value['data'] = $result['data']['data'];
  71. }elseif($result['data'] && !isset($result['data']['data'])){
  72. $value['data'] = $result['data'];
  73. }
  74. return $value;
  75. }
  76. /**
  77. * 首页文章
  78. *@param $value 组件详细信息
  79. */
  80. protected function article($value)
  81. {
  82. //文章插件没有启用 或者 文章不是自动获取
  83. if (!\YunShop::plugin()->get('article') || $value['params']['addmethod'] == 1)
  84. {
  85. return $value;
  86. }
  87. request()->pageSize = isset($value['params']['shownum'])?$value['params']['shownum']:0; //文章首页显示条数
  88. $ArticlePageController = new \Yunshop\Article\api\ArticlePageController();
  89. $result = $ArticlePageController->page()->getData(true);
  90. //文章数据
  91. if ($result['data']['data'])
  92. {
  93. $value['data'] = $result['data']['data'];
  94. }
  95. return $value;
  96. }
  97. /**
  98. * 门店优惠券(暂时不优化)
  99. *@param $value 组件详细信息
  100. */
  101. protected function business($value)
  102. {
  103. return $value;
  104. }
  105. /**
  106. * 门店(暂时不优化)
  107. *@param $value 组件详细信息
  108. */
  109. protected function store($value)
  110. {
  111. return $value;
  112. }
  113. }