input('id/d',0), 'title' => input('title','','trim'), 'lat' => input('lat',0), 'lng' => input('lng',0), 'community_id' => input('communityId/d',0), 'type' => input('type'), 'org_id' => input('orgId/d',0), ]; $result = validate('HouseBuilding')->check($data,[],''); if(true !== $result){ HelpHander::error(validate('HouseBuilding')->getError()); } $id = $data['id']; unset($data['id']); if($id > 0){ $ret = $this->allowField(true)->save($data,['id'=>$id]); }else{ $ret = $this->allowField(true)->save($data); } if(!$ret){ HelpHander::error('操作失败'); } return true; } public function del($id){ $res = Db::name('HouseFloor')->where('building_id',$id)->find(); if($res){ HelpHander::error('已被使用无法删除'); } $res = Db::name('HouseTurn')->where('building_id',$id)->where('del',0)->find(); if($res){ HelpHander::error('已被使用无法删除'); } $ret = $this->where('id',$id)->delete(); if(!$ret){ HelpHander::error('删除失败'); } return true; } public function lists($page,$size,$title,$type,$orgId){ $map[] = ['type','=',$type]; $map[] = ['org_id','=',$orgId]; if($title != ''){ $map[] = ['title','like','%'.$title.'%']; } $lists = $this ->where($map) ->page($page,$size) ->order('id asc') ->select(); $lists = $lists?$lists->toArray():[]; foreach ($lists as $k=>$v){ $community = Db::name('house_community')->where('id',$v['community_id'])->find(); $district = Db::name('house_district')->where('id',$community['district_id'])->find(); $lists[$k]['district_id'] = $community['district_id']; $lists[$k]['communityName'] = $community['title']; $lists[$k]['districtName'] = $district['title']; } $total = $this->where($map)->count(); $data = [ 'total' => $total, 'list' => $lists ]; return $data; } public function blist($type,$title,$userId,$orgId,$cate=1){ $map[] = ['type','=',$type]; $map[] = ['org_id','=',$orgId]; $lists = Db::name('house_building') ->where($map) ->field('id,title,lat,lng,community_id') ->select(); $data = [ 'count1' => 0, 'count2' => 0, 'count3' => 0, 'count4' => 0, 'count5' => 0, 'list' => [] ]; $newlist = []; $auths = Db::name('house_auth')->where('user_id',$userId)->where('type',$type)->value('ids'); if(!$auths){ return $data; } foreach ($lists as $k=>$v){ $cinfo = Db::name('house_community')->where('id',$v['community_id'])->find(); $dinfo = Db::name('house_district')->where('id',$cinfo['district_id'])->find(); $v['title'] = $dinfo['title'].$cinfo['title'].$v['title']; $m = []; if($type == 2){ // if($cate == 2){ // $m[] = ['ht.status','=',0]; // } else if($cate == 3){ // $m[] = ['ht.cur_lessee_id','=',0]; // } else if($cate == 4){ // $m[] = ['ht.status','=',1]; // } else if($cate == 5){ // $m[] = ['ht.important','=',1]; // } if($title){ $m[] = ['ht.building_id','=',$v['id']]; $m[] = ['ht.level_id','in',$auths]; $m[] = ['ht.del','=',0]; $m[] = ['ht.enable','=',1]; $m1 = $m2 = $m3 = $m4 = $m5 = $m; $m1[] = ['ht.number','like','%'.$title.'%']; $m2[] = ['hb.title','like','%'.$title.'%']; $m3[] = ['hc.title','like','%'.$title.'%']; $m4[] = ['hd.title','like','%'.$title.'%']; $m5[] = ['hl.title','like','%'.$title.'%']; $count = Db::name('house_turn') ->alias('ht') ->join('house_building hb','ht.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->whereOr([$m1,$m2,$m3,$m4,$m5]) ->count(); $data['count1'] += $count; // 入住的数量 $m22 = $m; $m22[] = ['ht.cur_lessee_id','>',0]; $m22[] = ['ht.status','=',0]; $m1 = $m2 = $m3 = $m4 = $m5 = $m22; $m1[] = ['ht.number','like','%'.$title.'%']; $m2[] = ['hb.title','like','%'.$title.'%']; $m3[] = ['hc.title','like','%'.$title.'%']; $m4[] = ['hd.title','like','%'.$title.'%']; $m5[] = ['hl.title','like','%'.$title.'%']; $count1 = Db::name('house_turn') ->alias('ht') ->join('house_building hb','ht.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->whereOr([$m1,$m2,$m3,$m4,$m5]) ->count(); $data['count2'] += $count1; // 重点人物使用 $m33 = $m; $m33[] = ['ht.status','=',0]; $m33[] = ['ht.important','=',1]; $m1 = $m2 = $m3 = $m4 = $m5 = $m33; $m1[] = ['ht.number','like','%'.$title.'%']; $m2[] = ['hb.title','like','%'.$title.'%']; $m3[] = ['hc.title','like','%'.$title.'%']; $m4[] = ['hd.title','like','%'.$title.'%']; $m5[] = ['hl.title','like','%'.$title.'%']; $count2 = Db::name('house_turn') ->alias('ht') ->join('house_building hb','ht.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->whereOr([$m1,$m2,$m3,$m4,$m5]) ->count(); $data['count5'] += $count2; // 交易的数量 $m44 = $m; $m44[] = ['status','=',1]; $m1 = $m2 = $m3 = $m4 = $m5 = $m44; $m1[] = ['ht.number','like','%'.$title.'%']; $m2[] = ['hb.title','like','%'.$title.'%']; $m3[] = ['hc.title','like','%'.$title.'%']; $m4[] = ['hd.title','like','%'.$title.'%']; $m5[] = ['hl.title','like','%'.$title.'%']; $count3 = Db::name('house_turn') ->alias('ht') ->join('house_building hb','ht.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->whereOr([$m1,$m2,$m3,$m4,$m5]) ->count(); $data['count4'] += $count3; }else{ $m[] = ['building_id','=',$v['id']]; $m[] = ['level_id','in',$auths]; $m[] = ['del','=',0]; $m[] = ['enable','=',1]; $count = Db::name('house_turn')->where($m)->count(); $data['count1'] += $count; // 入住的数量 $m2 = $m; $m2[] = ['cur_lessee_id','>',0]; $m2[] = ['status','=',0]; $count1 = Db::name('house_turn')->where($m2)->count(); $data['count2'] += $count1; // 重点人物使用 $m3 = $m; $m2[] = ['status','=',0]; $m3[] = ['important','=',1]; $count2 = Db::name('house_turn')->where($m3)->count(); $data['count5'] += $count2; // 交易的数量 $m4 = $m; $m4[] = ['status','=',1]; $count3 = Db::name('house_turn')->where($m4)->count(); $data['count4'] += $count3; } if($count > 0){ $status = 3; // 蓝 if($count1 == 0){ $status = 2; // 黄 } if($count2 > 0){ $status = 1; // 红 } if($count3 == $count){ $status = 0; // 灰 } $v['status'] = $status; if ($cate == 2) { $v['count'] = $count1; } else if ($cate == 3) { $v['count'] = $count - $count1 - $count3; // 空置的 = 总的 - 再用的 - 交易的 } else if ($cate == 4) { $v['count'] = $count3; } else if ($cate == 5) { $v['count'] = $count2; }else{ $v['count'] = $count; } if($v['count'] > 0&&$v['lng']){ $newlist[] = $v; } } } else { // 经营性房产 $m[] = ['hf.building_id','=',$v['id']]; $m[] = ['ht.level_id','in',$auths]; $m[] = ['ht.del','=',0]; $m[] = ['ht.enable','=',1]; if($title){ $m1 = $m2 = $m3 = $m4 = $m5 = $m6 = $m7 = $m; $m1[] = ['ht.number','like','%'.$title.'%']; $m2[] = ['hb.title','like','%'.$title.'%']; $m3[] = ['hc.title','like','%'.$title.'%']; $m4[] = ['hd.title','like','%'.$title.'%']; $m5[] = ['hl.title','like','%'.$title.'%']; $m6[] = ['hf.title','like','%'.$title.'%']; $m7[] = ['hl.title','like','%'.$title.'%']; $count = Db::name('house') ->alias('ht') ->join('house_floor hf','hf.id = ht.floor_id') ->join('house_building hb','hf.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->whereOr([$m1,$m2,$m3,$m4,$m5,$m6,$m7]) ->count(); $data['count1'] += $count; // 入住的数量 $m22 = $m; $m22[] = ['ht.cur_lessee_id','>',0]; $m1 = $m2 = $m3 = $m4 = $m5 = $m6 = $m7 = $m22; $m1[] = ['ht.number','like','%'.$title.'%']; $m2[] = ['hb.title','like','%'.$title.'%']; $m3[] = ['hc.title','like','%'.$title.'%']; $m4[] = ['hd.title','like','%'.$title.'%']; $m5[] = ['hl.title','like','%'.$title.'%']; $m6[] = ['hf.title','like','%'.$title.'%']; $m7[] = ['hl.title','like','%'.$title.'%']; $count1 = Db::name('house') ->alias('ht') ->join('house_floor hf','hf.id = ht.floor_id') ->join('house_building hb','hf.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->whereOr([$m1,$m2,$m3,$m4,$m5,$m6,$m7]) ->count(); $data['count2'] += $count1; }else{ $count = Db::name('house') ->alias('ht') ->join('house_floor hf','hf.id = ht.floor_id') ->where($m) ->count(); $data['count1'] += $count; $m[] = ['ht.cur_lessee_id','>',0]; $count2 = Db::name('house') ->alias('ht') ->join('house_floor hf','hf.id = ht.floor_id') ->where($m) ->count(); $data['count2'] += $count2; } if($count > 0&&$v['lng']){ $v['count'] = $count; $newlist[] = $v; } } } if($type == 1){ $data['count3'] = $data['count1'] - $data['count2'] - $data['count5']; }else{ $data['count3'] = $data['count1'] - $data['count2'] - $data['count4']; } $data['list'] = $newlist; return $data; } public function houseTurnList($userId,$orgId,$buildingId,$title,$cate){ $auths = Db::name('house_auth')->where('user_id',$userId)->where('type',2)->value('ids'); if(!$auths){ return [ 'total' => 0, 'list' => [] ]; } $map[] = ['ht.level_id','in',$auths]; $map[] = ['ht.org_id','=',$orgId]; $map[] = ['ht.del','=',0]; $map[] = ['ht.enable','=',1]; $map[] = ['ht.building_id','=',$buildingId]; if($cate == 2){ //在用 $map[] = ['ht.status','=',0]; $map[] = ['ht.cur_lessee_id','>',0]; }else if($cate == 3){ // 空置 $map[] = ['ht.status','=',0]; $map[] = ['ht.cur_lessee_id','=',0]; }else if($cate == 4){ // 已交易 $map[] = ['ht.status','=',1]; }else if($cate == 5){ // 重点关注 $map[] = ['ht.status','=',0]; $map[] = ['ht.important','=',1]; } if($title){ $m1 = $m2 = $m3 = $m4 = $m5 = $map; $m1[] = ['ht.number','like','%'.$title.'%']; $m2[] = ['hb.title','like','%'.$title.'%']; $m3[] = ['hc.title','like','%'.$title.'%']; $m4[] = ['hd.title','like','%'.$title.'%']; $m5[] = ['hl.title','like','%'.$title.'%']; $lists = Db::name('house_turn') ->alias('ht') ->join('house_building hb','ht.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->field('ht.id,ht.number,ht.tenant_area,ht.spec,ht.cur_lessee_id,hl.type,hl.title') ->whereOr([$m1,$m2,$m3,$m4,$m5]) ->select(); $count=Db::name('house_turn') ->alias('ht') ->join('house_building hb','ht.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->field('ht.id,ht.number,ht.tenant_area,ht.spec,ht.cur_lessee_id,hl.type,hl.title') ->whereOr([$m1,$m2,$m3,$m4,$m5]) ->count(); }else{ $lists = Db::name('house_turn') ->alias('ht') ->join('house_building hb','ht.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->field('ht.id,ht.number,ht.tenant_area,ht.spec,ht.cur_lessee_id,hl.type,hl.title') ->where($map) ->select(); $count=Db::name('house_turn') ->alias('ht') ->join('house_building hb','ht.building_id = hb.id') ->join('house_community hc','hb.community_id = hc.id') ->join('house_district hd','hc.district_id = hd.id') ->join('house_lessee hl','ht.cur_lessee_id = hl.id','left') ->field('ht.id,ht.number,ht.tenant_area,ht.spec,ht.cur_lessee_id,hl.type,hl.title') ->where($map) ->count(); } $data = [ 'total' => $count, 'list' => $lists ]; return $data; } public function houseTurnDetails($id){ $info = Db::name('house_turn') ->field('id,number,tenant_area,spec,remark,imgs,img2,create_time,update_time,level_id,building_id,cur_lessee_id,status,s_img,s_remark,s_time') ->where('id',$id) ->find(); $level=Db::name('house_level')->where('id',$info['level_id'])->value('title'); $building = Db::name('house_building')->where('id',$info['building_id'])->find(); $community=Db::name('house_community')->where('id',$building['community_id'])->find(); $districtTitle = Db::name('house_district')->where('id',$community['district_id'])->value('title'); $lesseeTitle=Db::name('house_lessee') ->where('id',$info['cur_lessee_id']) ->value('title'); $info['lesseeTitle']=$lesseeTitle; $info['addressTitle']=$districtTitle.$community['title'].$building['title'].$info['number']; $info['level']=$level; unset($info['building_id'],$info['cur_lessee_id'],$info['number'],$info['level_id']); if(!$info){ HelpHander::error('数据不存在'); } return $info; } public function houseFloor($userId,$orgId,$buildingId){ $auths = Db::name('house_auth')->where('user_id',$userId)->where('type',1)->value('ids'); if(!$auths){ return []; } $m[] = ['hf.building_id','=',$buildingId]; $m[] = ['ht.level_id','in',$auths]; $m[] = ['ht.del','=',0]; $m[] = ['ht.enable','=',1]; $m[] = ['ht.org_id','=',$orgId]; $lists = Db::name('house') ->alias('ht') ->join('house_floor hf','hf.id = ht.floor_id') ->where($m) ->group('hf.id') ->distinct(true) ->field('hf.id,hf.title,hf.img') ->select(); return $lists?$lists:[]; } }