uid; $village_id = Request::param('village_id'); if(empty($village_id)) { $data = Db::name('house_user_bind')->alias('hub') ->leftJoin('house_vacancy hv','hv.vacancy_id = hub.vacancy_id') ->leftJoin('house_village hvi','hvi.village_id = hv.village_id') ->where(['hub.uid'=>$uid]) ->field('hvi.village_name,hvi.village_id')->find(); } else { $data = Db::name('house_village')->where(['village_id'=>$village_id])->field('village_id,village_name')->find(); } //首页推荐新闻 $news= Db::name('news')->where(['village_id'=>$data['village_id'],'is_recommend'=>1])->order('recommend_sort_id','desc') ->field('title,pic,content') ->page($page,config('app.limit')) ->select()->toArray(); foreach ($news as $k=>$v) { $news[$k]['content'] = mb_substr(strip_tags($v['content']),0,100); } $data['news'] = $news; //首页轮播图 $banner = Db::name('village_banner')->where(['village_id'=>$village_id])->order(['sort_id'=>'desc','create_time'=>'desc'])->select()->toArray(); $data['banner'] = $banner; return $this->returnJson($data); } //获取布局 public function getLayoutList(){ $where['village_id'] = Request::param('village_id'); $data = Db::name('layout_list')->where($where)->select()->toArray(); return $this->returnJson($data); } //建筑列表 public function buildList() { $where['lb.village_id'] = Request::param('village_id'); $parent_id = Request::param('parent_id',0); $where['lb.parent_id'] = $parent_id; //检查当前的parent_id是否是最下的一个建筑了,如果是,则查询该下面的房屋 if($parent_id != 0) { $layout_id = Request::param('layout_id'); $listInfo = Db::name('layout_list')->where(['layout_id'=>$layout_id])->field('code,level')->find(); $level = $listInfo['level']-1; $listArr = explode('-',$listInfo['code']); $name = array_pop($listArr); $is_last = Db::name('layout_build')->where(['layout_build_id'=>$parent_id,'level'=>$level])->find(); if($is_last){ //查找房间 $data = Db::name('house_vacancy')->where(['parent_id'=>$parent_id])->field('vacancy_id,vacancy_code')->select()->toArray(); foreach ($data as $k => $v) { $vacancyArr = explode('-',$v['vacancy_code']); $code = array_pop($vacancyArr); $data[$k]['code_name'] = $code.$name; } } else{ $data = $this->getBuildInfo($where); } } else { $data = $this->getBuildInfo($where); } return $this->returnJson($data); } //获取建筑信息 public function getBuildInfo($where) { if(Request::param('layout_id')) { $where['lb.layout_id'] = Request::param('layout_id'); } $data = Db::name('layout_build')->alias('lb')->leftJoin('layout_list ll','ll.layout_id = lb.layout_id')->where($where)->order(['lb.layout_id'=>'asc','lb.sort_id'=>'desc']) ->field("lb.layout_build_id,lb.layout_id,lb.code,lb.level,lb.village_id,ll.code as list_code") ->select() ->toArray(); foreach ($data as $k =>$v) { $data[$k]['code_name'] = $v['code'].explode('-',$v['list_code'])[$v['level']-1]; } return $data; } //获取单个房间基本信息 public function getVacancyInfo() { $vacancy_id = Request::param('vacancy_id'); $data = Db::name('house_vacancy')->alias('hv') ->Join('house_village hvi','hvi.village_id = hv.village_id') ->Join('house_user_bind hub','hub.vacancy_id = hv.vacancy_id') ->where(['hv.vacancy_id'=>$vacancy_id]) ->field('hv.vacancy_code,hv.village_id,hv.parent_id,layout_id,hvi.village_name,hvi.village_address,hvi.province_name,hvi.city_name,hvi.area_name') ->find(); $data['vacancy_address'] = Common::getVacancyAddress($data['vacancy_code'],$data['layout_id']); $data['vacancyOwnerInfo'] = Common::getOwnerInfo($vacancy_id); //物业信息 $data['getUserBindType'] = Common::getUserBindType(); $data['getFamilyBindType'] = Common::getFamilyBindType(); return $this->returnJson($data); } //常用电话 public function commonPhone() { $village_id = Request::param('village_id'); $where['village_id'] = $village_id; $where['status'] = 1; $data = Db::name('village_phone')->where($where)->order(['is_on_call_phone'=>'desc','sort'=>'desc'])->select()->toArray(); return $this->returnJson($data); } //当前用户的所有的房间列表 public function allVacancy() { $uid = $this->uid; $where[] = ['hub.uid','=',$uid]; $page = Request::param('page',1); $data = Db::name('house_user_bind')->alias('hub')->where($where) ->leftJoin('house_vacancy hv','hv.vacancy_id = hub.vacancy_id') ->leftJoin('house_village hvi','hvi.village_id = hub.village_id') ->field('hub.house_user_bind_id,hvi.village_name,hv.vacancy_code,hv.layout_id,hub.pass_time,hub.type,hub.status,hub.vacancy_id,hvi.village_logo,hvi.village_id') ->page($page,config('app.limit')) ->select()->toArray(); foreach ($data as $k=>$v) { $rest = Common::getVacancyAddress($v['vacancy_code'],$v['layout_id']); $data[$k]['vacancy_address'] = $rest['vacancy_address']; //获取用户车辆信息 $cars = Db::name('car')->where(['uid'=>$this->uid,'village_id'=>$v['village_id']])->field('car_id,license_plate')->select()->toArray(); $data[$k]['cars'] = $cars; $car_total = count($cars); if($car_total ==1) { $data[$k]['cars'] = $cars[0]; } $data[$k]['car_total'] = $car_total; } $total = Db::name('house_user_bind')->alias('hub')->where($where)->count(); $res['total'] = $total; $res['data'] = Common::changeField($data,'pass_time'); return $this->returnJson($res); } //查看车辆详情 public function detailCar() { $car_id = Request::param('car_id'); $data = Db::name('car')->where(['car_id'=>$car_id,'uid'=>$this->uid])->find(); return $this->returnJson($data); } //修改车辆 public function changeCar() { $car_id = Request::param('car_id'); $data['license_plate'] = Request::param('license_plate'); $is_exit = Db::name('car')->where('uid','<>',$this->uid)->where($data)->find(); if($is_exit){ return $this->returnJson([],'该车牌号已存在!',400); } $data['name'] = Request::param('name'); $data['car_color'] = Request::param('car_color'); $data['brand'] = Request::param('brand'); $data['car_type'] = Request::param('car_type'); $change = Db::name('car')->where(['car_id'=>$car_id])->save($data); if($change) { return $this->returnJson([],'操作成功!'); } else { return $this->returnJson([],'操作失败!',400); } } //用户添加车辆 public function addCar() { $uid = $this->uid; $car_id = Request::param('car_id'); $data['phone'] = Db::name('user')->where(['uid'=>$uid])->value('phone'); $data['name'] = Request::param('name'); $data['brand'] = Request::param('brand'); $data['car_color'] = Request::param('car_color'); $data['license_plate'] = Request::param('license_plate'); $data['sort_id'] = Request::param('sort_id',1); $data['uid'] = $uid; $data['village_id'] = Request::param('village_id'); if($car_id) { //判断车牌是否存在 $is_exit = Db::name('car')->where(['license_plate'=>$data['license_plate']])->where('car_id','<>',$car_id)->find(); if($is_exit) { return $this->returnJson([],'系统中已存在该车牌!',400); } $operation = Db::name('car')->where(['car_id'=>$car_id])->save($data); } else { $data['create_time'] = time(); //判断车牌是否存在 $is_exit = Db::name('car')->where(['license_plate'=>$data['license_plate'],'village_id'=>$data['village_id']])->find(); if($is_exit) { return $this->returnJson([],'系统中已存在该车牌!',400); } $operation = Db::name('car')->save($data); } if($operation) { return $this->returnJson([],'success'); } else { return $this->returnJson([],'操作失败!',400); } } //删除车辆 public function deleteCar() { $car_id = Request::param('car_id'); $delete = Db::name('car')->where(['car_id'=>$car_id,'uid'=>$this->uid])->delete(); if($delete) { return $this->returnJson(); } else { return $this->returnJson([],'删除失败!',400); } } //我的房间详情 public function detailVacancy() { $bind_id = Request::param('bind_id'); $uid = $this->uid; $where[] = ['hub.uid','=',$uid]; $where[] = ['hub.house_user_bind_id','=',$bind_id]; $data = Db::name('house_user_bind')->alias('hub')->where($where) ->leftJoin('house_vacancy hv','hv.vacancy_id = hub.vacancy_id') ->leftJoin('house_village hvi','hvi.village_id = hub.village_id') ->field('hvi.village_id,hvi.village_name,hv.vacancy_code,hv.layout_id,hub.pass_time,hub.type,hub.status,hub.vacancy_id,hvi.village_logo,hv.name,hv.phone,hub.house_user_bind_id') ->find(); $res = Common::getVacancyAddress($data['vacancy_code'],$data['layout_id']); $data['vacancy_address'] = $res['vacancy_address']; if($data['type'] ==0 ){ //查询家属 $data['family'] = $this->getFamily($data['vacancy_id']); //查询租客 $data['tenant'] = $this->getTenant($data['vacancy_id']); } elseif($data['type'] ==2){ $data['tenant'] = $this->getTenant($data['vacancy_id']); } return $this->returnJson($data); } //根据房间id,查询租客 public function getTenant($vacancy_id) { //查询租客 $tenant = Db::name('house_user_bind')->alias('hub')->rightJoin('user','user.uid = hub.uid') ->where(['hub.vacancy_id'=>$vacancy_id,'hub.type'=>2]) ->field('hub.name,hub.phone,user.avatar,user.uid,hub.village_id')->select()->toArray(); foreach ($tenant as $k =>$v) { $car = Db::name('car')->where(['uid'=>$v['uid'],'village_id'=>$v['village_id']])->select()->toArray(); $tenant[$k]['cars'] = $car; $tenant[$k]['car_total'] = count($car); } return $tenant; } //根据房间id,查询家属 public function getFamily($vacancy_id) { //查询租客 $family = Db::name('house_user_bind')->alias('hub')->rightJoin('user','user.uid = hub.uid') ->where(['hub.vacancy_id'=>$vacancy_id,'hub.type'=>1]) ->field('hub.village_id,hub.name,hub.phone,user.avatar,user.uid')->select()->toArray(); foreach ($family as $k =>$v) { $car = Db::name('car')->where(['uid'=>$v['uid'],'village_id'=>$v['village_id']])->select()->toArray(); $family[$k]['cars'] = $car; $family[$k]['car_total'] = count($car); } return $family; } }