ListHouse.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: xiaofeng
  5. * Date: 2018/3/4
  6. * Time: 上午9:41
  7. */
  8. namespace common\models;
  9. //use yii\db\ActiveRecord;
  10. class ListHouse extends Common
  11. {
  12. public function rules()
  13. {
  14. return [
  15. ['list_id', 'in', 'range' => [10, 11, 12,13, 101, 102, 103]],
  16. ['hid', 'required', 'message' => '楼盘不能为空'],
  17. [['sort', 'state', 'information'], 'safe']
  18. ];
  19. /**
  20. * list_id:[
  21. * 10:pc端首页VR全景看房推送
  22. * 11:pc端首页航拍视频看房推送
  23. * 12:M端首页热榜楼盘推送位
  24. * 13:M端首页热门楼盘推送位
  25. * 101,102,103:国庆中秋专题
  26. * ]
  27. */
  28. }
  29. /***********************************后台数据*******************************************/
  30. //获取品质新房数据
  31. public function GetCharachterForm($input)
  32. {
  33. $query = self::find();
  34. $query->select(['pfg_list_house.*', 'pfg_house.name']);
  35. $query->where(['pfg_list_house.list_id' => $input['type_id']]);
  36. $count = $query->count();
  37. $query->leftJoin('pfg_house', 'pfg_house.id = pfg_list_house.hid');
  38. if (!empty($input['page'])) {
  39. $query->offset(--$input['page'] * $input['limit']);
  40. }
  41. if (!empty($input['limit'])) {
  42. $query->limit($input['limit']);
  43. }
  44. $data = $query->orderBy(['pfg_list_house.state' => SORT_ASC, 'pfg_list_house.sort' => SORT_DESC])->asArray()->all();
  45. foreach ($data as &$val) {
  46. $val['create_at'] = date('Y-m-d H:i:s', $val['create_at']);
  47. }
  48. return ['msg' => '获取数据完成', 'count' => $count, 'data' => $data];
  49. }
  50. //获取数据列表
  51. public function getList($input)
  52. {
  53. $query = self::find();
  54. $query->select(['pfg_list_house.*', 'pfg_house.name']);
  55. $query->where(['pfg_list_house.list_id' => $input['list_id']]);
  56. $count = $query->count();
  57. $query->leftJoin('pfg_house', 'pfg_house.id = pfg_list_house.hid');
  58. if (!empty($input['page'])) {
  59. $query->offset(--$input['page'] * $input['limit']);
  60. }
  61. if (!empty($input['limit'])) {
  62. $query->limit($input['limit']);
  63. }
  64. $data = $query->orderBy(['pfg_list_house.state' => SORT_ASC, 'pfg_list_house.sort' => SORT_DESC])->asArray()->all();
  65. foreach ($data as &$val) {
  66. $val['create_at'] = date('Y-m-d H:i:s', $val['create_at']);
  67. }
  68. return ['msg' => '获取数据完成', 'count' => $count, 'data' => $data];
  69. }
  70. /**
  71. * 获取一条数据
  72. * */
  73. public function getFindOne($id)
  74. {
  75. $query = self::find();
  76. $query->select(['pfg_list_house.*', 'pfg_house.name']);
  77. $query->where(['pfg_list_house.id' => $id]);
  78. $query->leftJoin('pfg_house', 'pfg_house.id = pfg_list_house.hid');
  79. return $query->asArray()->one();
  80. }
  81. /*
  82. * 检测数据是否存在
  83. * */
  84. public function listExists($where)
  85. {
  86. return self::find()->where($where)->exists();
  87. }
  88. /***************************************** pc端数据 ********************************************/
  89. //获取中秋专题数据
  90. public function zhongQiuGuoQing($list_id, $limit = null)
  91. {
  92. $select = [
  93. 'pfg_house.id',
  94. 'pfg_house.name',
  95. 'pfg_house.thumb',
  96. 'pfg_house.city',
  97. 'pfg_house.sale_price',
  98. 'pfg_house_detail.price_unit',
  99. 'pfg_house_detail.address',
  100. 'pfg_house_detail.preferential',
  101. 'pfg_category_city.city_name'
  102. ];
  103. $query = self::find();
  104. $query->select($select);
  105. $query->where(['pfg_list_house.list_id' => $list_id, 'pfg_list_house.state' => 1, 'pfg_house.del' => 1, 'pfg_house.is_view' => 1]);
  106. $query->leftJoin('pfg_house', 'pfg_house.id = pfg_list_house.hid');
  107. $query->leftJoin('pfg_house_detail', 'pfg_house.id = pfg_house_detail.hid');
  108. $query->leftJoin('pfg_category_city', 'pfg_category_city.id = pfg_house.city');
  109. if (!empty($limit)) {
  110. $query->limit($limit);
  111. }
  112. return $query->orderBy(['pfg_list_house.sort' => SORT_DESC])->asArray()->all();
  113. }
  114. //获取指定楼盘推送数据列表
  115. public function getIndexPushHouse($list_id, $limit = null)
  116. {
  117. $select = [
  118. 'pfg_house.id',
  119. 'pfg_house.name',
  120. 'pfg_house.thumb',
  121. 'pfg_category_city.city_name',
  122. 'pfg_house_detail.panorama_img',
  123. 'pfg_house_detail.video_img'
  124. ];
  125. $query = self::find();
  126. $query->select($select);
  127. $query->where(['pfg_list_house.list_id' => $list_id, 'pfg_list_house.state' => 1, 'pfg_house.del' => 1, 'pfg_house.is_view' => 1]);
  128. $query->leftJoin('pfg_house', 'pfg_house.id = pfg_list_house.hid');
  129. $query->leftJoin('pfg_house_detail', 'pfg_house.id = pfg_house_detail.hid');
  130. $query->leftJoin('pfg_category_city', 'pfg_category_city.id = pfg_house.city');
  131. if (!empty($limit)) {
  132. $query->limit($limit);
  133. }
  134. return $query->orderBy(['pfg_list_house.sort' => SORT_DESC])->asArray()->all();
  135. }
  136. //获取指定楼盘推送数据列表详细信息
  137. public function getIndexPushHouseDetail($list_id, $limit = null)
  138. {
  139. $select = [
  140. 'pfg_house.id',
  141. 'pfg_house.name',
  142. 'pfg_house.thumb',
  143. 'pfg_house.state',
  144. 'pfg_house.sale_price',
  145. 'pfg_house.is_tel',
  146. 'pfg_house.city',
  147. 'pfg_house_detail.price_unit',
  148. 'pfg_house_detail.preferential',
  149. 'pfg_house_detail.video_url',
  150. 'pfg_category_city.city_name'
  151. ];
  152. $query = self::find();
  153. $query->select($select);
  154. $query->where(['pfg_list_house.list_id' => $list_id, 'pfg_list_house.state' => 1, 'pfg_house.del' => 1, 'pfg_house.is_view' => 1]);
  155. $query->leftJoin('pfg_house', 'pfg_house.id = pfg_list_house.hid');
  156. $query->leftJoin('pfg_house_detail', 'pfg_house.id = pfg_house_detail.hid');
  157. $query->leftJoin('pfg_category_city', 'pfg_category_city.id = pfg_house.city');
  158. if (!empty($limit)) {
  159. $query->limit($limit);
  160. }
  161. return $query->orderBy(['pfg_list_house.sort' => SORT_DESC])->asArray()->all();
  162. }
  163. }