index(); $_data['room'] = $this->roomShare(); $user_id = $_SERVER['HTTP_USERID']; if (empty($user_id)) { $_data['expire_num'] = 0; } else { //房源类 $_house = new House(); //子房间到期数量 $_data['expire_num'] = $_house->expire_room(3, false); //子房间到期数量 $_data['house_expire_num'] = $_house->expire(3, false); } return send_http_status(200, $_data); } /** * 获取未出租共享房源 * @param int $num 公里数 默认为2 * @param int $latitude 纬度 * @param int $longitude 经度 * @return \type * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function roomShare() { $_search = $this->request->param('', '', 'filter_danger_str'); //判断是否含有 附近几公里的搜索条件 $num = $this->request->param('num', '', 'filter_danger_str'); $latitude = $this->request->param('latitude', '', 'filter_danger_str'); $longitude = $this->request->param('longitude', '', 'filter_danger_str'); $_db = Db::name($this->table_room); if (!empty($num) && !empty($latitude) && !empty($longitude)) { $distance = 1; //查询附近几公里的一手房源数据 $sql = 'SELECT id,( 6371 * acos ( cos ( radians(' . $latitude . ') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(' . $longitude . ') ) + sin ( radians(' . $latitude . ') ) * sin( radians( latitude ) ) ) ) AS distance FROM cloud_house HAVING distance < ' . $num . ' ORDER BY distance LIMIT 0 , 500'; $_house = Db::query($sql); if (!empty($_house)) { $house_ids = implode(array_column($_house, 'id'), ','); } //判断几公里搜索条件是否成立即 house_ids是否有值 $house_ids = !empty($house_ids) ? $house_ids : 0; $_db->where('h.id', 'in', $house_ids); } //判断是否为会员 $user_id = $_SERVER['HTTP_USERID']; // $vip_level = Db::name('cloud_member')->field('vip_level')->find($user_id); // if (empty($vip_level) || $vip_level['vip_level'] < 1) { // $_db->where('h.user_id', $user_id); // } //城市条件搜索 if (!empty($_search['province']) && empty($distance)) { $_db->where('h.province', $_search['province']); $_db->where('h.city', $_search['city']); $_db->where('h.area', $_search['area']); } if (!empty($_search['search']) && empty($distance)) { $_db->where('h.name', 'like', '%' . $_search['search'] . '%'); } $_db->alias('r')->leftjoin(['cloud_house' => 'h'], 'r.house_id = h.id')->leftjoin('cloud_member m', 'r.user_id = m.id'); $_db->where('r.is_del', 0); $_db->where('h.is_del', 0); $_db->where(function ($query) { $query->where('r.end_time', '=', 0); $query->whereOr('r.end_time', '<', time()); }); $count = $_db->count(); $page = $this->request->param('page', 1, 'filter_danger_str'); $pagesize = $this->request->param('pagesize', 10, 'filter_danger_str'); $pages = ceil($count / $pagesize); //总页数 $_db->page($page, $pagesize)->order('r.id', "DESC"); $field = 'r.*,h.apartment,h.id AS house_id,h.name,h.name,h.photo AS h_photo,h.province,h.city,h.area,h.door_number,h.floor_num,m.phone'; $_result = $_db->field($field)->select(); self::formatRoomData($_result); $_data['list'] = $_result; $_data['pages'] = $pages; self::formatData($_data['list']); return $_data; } /** * 获取未出租共享房源 根据公里数 * @param int $num 公里数 默认为2 * @param int $latitude 纬度 * @param int $longitude 经度 * @return \type * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function roomShareLocation($num = 2, $latitude = '', $longitude = '') { } /** * 房间数据格式化 * @param $data */ static private function formatRoomData(&$data) { if (!$data) { return; } array_walk($data, function (&$v, &$k) { $v['days'] = time_days($v['end_time']); //列表封面 if (isset($v['photo'])) { $_arr = explode(',', $v['photo']); $v['thumb'] = !empty($_arr[0]) ? $_arr[0] : config('default_list_thumb'); } }); } static private function formatData(&$data) { if (!$data) { return; } array_walk($data, function (&$v, &$k) { !empty($v['create_time']) ? $v['create_time'] = date('Y-m-d', $v['create_time']) : $v['create_time'] = ''; !empty($v['update_time']) ? $v['update_time'] = date('Y-m-d', $v['update_time']) : $v['update_time'] = ''; !empty($v['end_time']) ? $v['end_time'] = date('Y-m-d', $v['end_time']) : $v['end_time'] = ''; !empty($v['start_time']) ? $v['start_time'] = date('Y-m-d', $v['start_time']) : $v['start_time'] = ''; isset($v['sex']) ? $v['sex'] = config('sex')[$v['sex']] : ''; //列表子房间封面 if (isset($v['photo'])) { if(empty($v['photo'])){ $v['photo'] = $v['h_photo']; //赋值母房源图片 } $_arr = explode(',', $v['photo']); $v['thumb'] = !empty($_arr[0]) ? $_arr[0] : config('default_list_thumb'); } }); } }