request->post('year'); //年份 $property_cert = $this->request->post('property_cert'); //房产证号 $client = $this->request->post('client'); //权利人 if(!$property_cert) return $this->buildFailed('请输入房产证号'); if($year){ $param = ['proveCode1'=>$year, 'proveCode2'=>$property_cert]; }else{ $param = ['proveCode'=>$property_cert]; } $client && $param['orgName'] = $client; $consultfile = new Consultfiles; $res = $consultfile->Consultfiles($param); Db::startTrans(); try{ if($res['code'] != 1 || (isset($res['estatestatus']) && $res['estatestatus'] == '没有房产')) return $this->buildFailed('没有房产'); //新增查档记录详情 $adddatadet = [ 'estatestatus' => $res['estatestatus'], 'code' => $res['result']['code'], 'msg' => $res['result']['msg'], 'data_printResult' => implode(',', array_column($res['result']['data'], 'printResult')), 'data_status_txt' => implode(',', array_column($res['result']['data'], 'status_txt')), 'data_list' => json_encode(array_column($res['result']['data'], 'list')), 'create_time' => date('Y-m-d H:i:s') ]; //新增查档记录详情 $consult_id = Db::name('consult_record_det')->insertGetId($adddatadet); if(!$consult_id){ Db::rollback(); return $this->buildFailed('查档记录详情新增失败'); } //组装数据 $printResult = implode(',', array_column($res['result']['data'], 'printResult')); // $data = (explode('【产权信息】',$printResult)); // $data = (explode(',',$data[0])); $data = $res['result']['data'][0]['list']; $fill = []; $fill['year'] = $year; $fill['property_cert'] = $property_cert; if($data){ foreach ($data as $v){ if($v['key'] == '房屋地址'){ $fill['building_name'] = $v['value']; //物业名称 }elseif($v['key'] == '登记价'){ $fill['reg_price'] = mb_substr($v['value'], 3); //登记价 }elseif($v['key'] == '登记日期'){ $fill['purchase_date'] = preg_replace(['/年|月/','/日/'],['-',''],$v['value']); }elseif($v['key'] == '建筑面积'){ $fill['size'] = $v['value']; }elseif($v['key'] == '土地使用年限'){ $fill['max_land_use_years'] = mb_substr($v['value'],0,-27); //土地使用年限 $fill['land_use_start_time'] = preg_replace(['/年|月/','/日/'],['-',''],mb_substr($v['value'],-24,-13)); //土地使用开始时间 $fill['land_use_end_time'] = preg_replace(['/年|月/','/日/'],['-',''],mb_substr($v['value'],-12,-1)); //土地使用结束时间 }elseif ($v['key'] == '宗地号'){ $fill['parcel_no'] = $v['value']; }elseif($v['key'] == '房屋性质'){ $fill['use_right_source'] = $v['value']; }elseif($v['key'] == '竣工时间'){ $fill['completion_date'] = preg_replace(['/年|月/','/日/'],['-',''],$v['value']); //竣工日期 } } $fill['consult_id'] = $consult_id; $fill['estatestatus'] = $res['estatestatus']; if((time() - strtotime($fill['purchase_date'])) > 365*2*24*3600){ $fill['is_tran_tax_free'] = 1; //满两年 }else{ $fill['is_tran_tax_free'] = 2; //没有满两年 } } Db::commit(); return $this->buildSuccess(['show'=>implode('', array_column($res['result']['data'], 'printResult')) , 'fill'=>$fill]); }catch (\Exception $e){ Db::rollback(); return $this->buildFailed('该房产信息不存在'. $e->getMessage()); } } */ // 询价录单(申请下单出报告)自动填充房产信息相关字段的值 public function consultFiles() { $year = $this->request->post('year'); //年份 $property_cert = $this->request->post('property_cert'); //房产证号 if(!$property_cert) return $this->buildFailed('请输入房产证号'); $where = []; $where[] = ['estate_year', '=', $year]; $where[] = ['estate_cert_num', '=', $property_cert]; $estate_info_res = Db::name('estate_info')->where($where)->find(); if ($estate_info_res) { $fill = []; $fill['year'] = $year; $fill['property_cert'] = $property_cert; $fill['building_name'] = $estate_info_res['building_name']; //楼盘名称 $fill['building_no'] = $estate_info_res['building_no']; //栋号 $fill['unit_no'] = $estate_info_res['unit_no']; //房号 $fill['reg_price'] = $estate_info_res['register_price']; //登记价 $fill['purchase_date'] = $estate_info_res['buy_date']; $fill['size'] = $estate_info_res['floor_area']; $fill['usage'] = $estate_info_res['house_usage']; //房屋用途 $fill['parcel_usage'] = $estate_info_res['land_use']; //土地用途 $fill['max_land_use_years'] = $estate_info_res['land_use_year']; //土地使用年限 $fill['land_use_start_time'] = $estate_info_res['land_use_begin']; //土地使用开始时间 $fill['land_use_end_time'] = $estate_info_res['land_use_end']; //土地使用结束时间 $fill['parcel_no'] = $estate_info_res['zdbh']; $fill['parcel_area'] = $estate_info_res['zd_area']; $fill['obligee'] = $estate_info_res['obligee']; $fill['cert_no'] = $estate_info_res['id_number']; $fill['land_location'] = $estate_info_res['land_location']; $fill['use_right_source'] = $estate_info_res['house_property']; $fill['completion_date'] = $estate_info_res['completion_date']; //竣工日期 if ((time()-strtotime($fill['purchase_date']))>365*2*24*3600) { $fill['is_tran_tax_free'] = 1; //满两年 } else { $fill['is_tran_tax_free'] = 2; //没有满两年 } return $this->buildSuccess(['show'=>$estate_info_res['new_online_info'], 'fill'=>$fill]); } else { return $this->buildFailed('房产信息库还没有录入该房产信息'); } } // 楼盘名称模糊匹配搜索 public function getEstate() { $building_name = $this->request->post('building_name'); //楼盘名称关键字 $map = []; $map[] = ['building_name', 'like', '%'.$building_name.'%']; $estate_name_data = Db::name('estate_info') ->distinct(true) ->field('building_name') ->where($map) ->order('building_name', 'asc') ->select(); if ($estate_name_data) { return $this->buildSuccess($estate_name_data); } else { return $this->buildFailed('无数据'); } } // 楼栋号模糊匹配搜索 public function getBuildingNumber() { $building_name = $this->request->post('building_name'); //楼盘名称 $building_no = $this->request->post('building_no'); //楼栋号关键字 $map = []; $map[] = ['building_name', '=', $building_name]; $map[] = ['building_no', 'like', '%'.$building_no.'%']; $building_number_data = Db::name('estate_info') ->distinct(true) ->field('building_no') ->where($map) ->order('building_no', 'asc') ->select(); if ($building_number_data) { return $this->buildSuccess($building_number_data); } else { return $this->buildFailed('无数据'); } } // 房号模糊匹配搜索 public function getHouseNumber() { $building_name = $this->request->post('building_name'); //楼盘名称 $building_no = $this->request->post('building_no'); //楼栋号 $unit_no = $this->request->post('unit_no'); //房号关键字 $map = []; $map[] = ['building_name', '=', $building_name]; $map[] = ['building_no', '=', $building_no]; $map[] = ['unit_no', 'like', '%'.$unit_no.'%']; $house_number_data = Db::name('estate_info') ->where($map) ->order('unit_no', 'asc') ->select(); if ($house_number_data) { $return_data = []; foreach ($house_number_data as $key=>$value) { $value['year'] = $value['estate_year']; $value['property_cert'] = $value['estate_cert_num']; $value['purchase_date'] = $value['purchase_date']; $value['size'] = $value['floor_area']; $value['usage'] = $value['house_usage']; $value['use_right_source'] = $value['house_property']; $return_data[] = $value; } return $this->buildSuccess($return_data); } else { return $this->buildFailed('无数据'); } } /** * @api {get} admin/CheckFile/addConsult 添加查档 * */ public function addConsult($data){ $res = Db::name('consult_record_det')->where(['id'=>$data['consult_id']])->find(); $adddata['order_no'] = $data['order_no']; $adddata['property_cert_info_id'] = $data['property_cert_info_id']; $adddata['new_online_info'] = isset($res['estatestatus']) && !empty($res['estatestatus']) ? (new Dictionary())->getcodeByvalname('PROPERTY_STATUS', $res['estatestatus']) : ''; //根据返回的查询结果获得房产状态 $adddata['estate_inquiry_text'] = $res['estatestatus']?? ''; $list = isset($res['data_list']) && !empty($res['data_list']) ? json_decode($res['data_list'], true) : ''; $adddata['mortgage_text'] = $this->getMortgageText($list[0]) ?: NULL; //抵押信息(抵押权人、抵押时间 $adddata['result_code'] = 1; $adddata['user_id'] = $data['user_id']; $adddata['create_time'] = $res['create_time']??date('Y-m-d H:i:s'); $adddata['consult_record_det_id'] = $data['consult_id']; $consult_record_id = Db::name('consult_record')->insertGetId($adddata); if(!$consult_record_id){ return false; } return true; } /** * 保存base64图片 * @param $content 图片内容 * @param $path 保存路径 * @return null|string */ public function base64ToImage($content, $directory = 'checkfile') { if (!$content) { return false; } //判断是否有逗号 如果有就截取后半部分 if (strstr($content, ",")) { $content = explode(',', $content); $content = $content[1]; } //图片上传路径 $file_path = DS . 'uploads' . DS . $directory . DS . date('Ymd') . DS; //图片名称 $image_path = md5(time() . mt_rand(1000, 9999)) . '.png'; //全路径 $path = ROOT_PATH . 'public' . $file_path; //判断目录是否存在 不存在就创建 !is_dir($path) && mkdir($path, 0755, true); try { if (file_put_contents($path . $image_path, base64_decode($content))) { $upload = ossUpload($file_path.$image_path, $path.$image_path); unlink($path.$image_path); //把本地图片删除 if ($upload['code'] == 1){ //返回图片路径 return $file_path . $image_path; }else{ Log::record($upload['msg'], 'error'); return false; } } else { return false; } } catch (\Exception $e) { Log::record($e->getMessage(), 'error'); return false; } } /** * 处理抵押信息(抵押权人、抵押时间)' */ public function getMortgageText($list) { $mortgage_text = ''; if (!empty($list)) { foreach ($list as $key => $v) { if ($v['key'] == '抵押权人') { $mortgage_text .= $v['value']; } if ($v['key'] == '抵押日期') { $mortgage_text .= '(' . $v['value'] . ');'; } } //删除最后一个字符(;) if (!empty($mortgage_text)) { $mortgage_text = substr($mortgage_text, 0, -1); } } return $mortgage_text; } /** * @api {get} admin/CheckFile/checkRecord 查档历史 * */ public function checkRecord() { $property_cert_info_id = $this->request->post('property_cert_info_id'); $res = Db::name('consult_record')->alias('r') ->join('property_cert_info d', 'r.property_cert_info_id = d.id') ->field('d.owner_name,d.building_name,d.property_cert,r.mortgage_text,estate_inquiry_text,r.create_time,r.result_code,d.year') ->where(['r.property_cert_info_id'=>$property_cert_info_id]) ->order('r.create_time desc') ->limit(10) ->select(); foreach ($res as &$val){ $val['result_code_str'] = ($val['result_code'] == 1) ? '成功' : (($val['result_code'] == 2) ? '查询失败': '网络问题'); } return $this->buildSuccess($res); } /** * @api {get} admin/CheckFile/checkAgain 再次查档 * */ public function checkAgain(){ $order_no = $this->request->post('order_no'); $property_cert_info_id = $this->request->post('property_cert_info_id'); $year = $this->request->post('year'); //年份 $property_cert = $this->request->post('property_cert'); //房产证号 if(!$order_no || !$property_cert_info_id || !$property_cert) return $this->buildFailed('参数错误'); if($year){ $param = ['proveCode1'=>$year, 'proveCode2'=>$property_cert]; }else{ $param = ['proveCode'=>$property_cert]; } $consultfile = new Consultfiles; $res = $consultfile->Consultfiles($param); Db::startTrans(); try{ if($res['code'] != 1 || (isset($res['msg']) && $res['msg'] == '没有房产')) return $this->buildFailed('没有房产'); $adddata['order_no'] = $order_no; $adddata['property_cert_info_id'] = $property_cert_info_id; $adddata['new_online_info'] = (new Dictionary())->getcodeByvalname('PROPERTY_STATUS', $res['estatestatus']); //根据返回的查询结果获得房产状态 $adddata['estate_inquiry_text'] = $res['estatestatus']; $list = !empty($res['result']['data'][0]['list']) ? $res['result']['data'][0]['list'] : ''; $adddata['mortgage_text'] = $this->getMortgageText($list) ?: NULL; //抵押信息(抵押权人、抵押时间 $adddata['result_code'] = 1; $adddata['user_id'] = $this->userInfo['user_id']; $adddatadet = [ 'code' => $res['result']['code'], 'msg' => $res['result']['msg'], 'data_printResult' => implode(',', array_column($res['result']['data'], 'printResult')),//$result['data']['printResult'], 'data_status_txt' => implode(',', array_column($res['result']['data'], 'status_txt')),//$result['data']['status_txt'], 'data_list' => json_encode(array_column($res['result']['data'], 'list'))//json_encode($result['data']['list']) ]; // if (isset($res['result']['img_base64']) && !empty($res['result']['img_base64'])) { // $adddata['img_url'] = $this->base64ToImage($res['result']['img_base64']); // if (!$adddata['img_url']) { // Db::rollback(); // return $this->buildFailed(ReturnCode::ADD_FAILED, '上传图片失败!'); // } //} //新增查档记录 $adddata['create_time'] = date('Y-m-d H:i:s'); $consult_record_id = Db::name('consult_record')->insertGetId($adddata); if(!$consult_record_id){ Db::rollback(); return $this->buildFailed('查档记录新增失败'); } //新增查档记录详情 $adddatadet['create_time'] = $adddatadet['update_time'] = date('Y-m-d H:i:s'); if(!Db::name('consult_record_det')->insert($adddatadet)){ Db::rollback(); return $this->buildFailed('查档记录详情新增失败'); } Db::commit(); return $this->buildSuccess(); }catch (\Exception $e){ Db::rollback(); return $this->buildFailed('该房产信息不存在'. $e->getMessage()); } } }