<?php // +---------------------------------------------------------------------- // | ThinkCMF [ WE CAN DO IT MORE SIMPLE ] // +---------------------------------------------------------------------- // | Copyright (c) 2013-2017 http://www.thinkcmf.com All rights reserved. // +---------------------------------------------------------------------- // | Author: wuwu <15093565100@163.com> // +---------------------------------------------------------------------- namespace api\portal\controller; use api\portal\model\PortalPostModel; use cmf\controller\RestBaseController; use api\portal\model\MemberModel; use think\Db; use think\Request; use think\Loader; /** * @title 中介接口 * @description 接口说明 * @group 接口分组 */ class IntermediaryController extends CommonController { protected $postModel; public function __construct(PortalPostModel $postModel) { parent::__construct(); $this->postModel = $postModel; } // 登录,注册 //tel 手机号 //password 密码 //sure_password 确认密码 //name 真实姓名 /** * @title 房产中介注册(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/join * @method POST * @param name:name type:int require:1 default: other: desc:姓名 * @param name:tel type:int require:1 default: other: desc:手机号 * @param name:password type:int require:1 default: other: desc:密码 * @param name:sure_password type:int require:1 default: other: desc:确认密码 * @param name:code type:int require:1 default: other: desc:验证码 * @param name:city type:int require:1 default: other: desc:城市 * @param name:company type:int require:1 default: other: desc:所属公司 * @param name:store type:int require:1 default: other: desc:门店 * @param name:quarters type:int require:1 default: other: desc:服务小区 * @param name:connect type:int require:1 default: other:1 登录注册 ,2其他 desc:1 */ public function join(Request $request) { $data = $request->Post(); if(!empty($data['name'])){ // 验证 $validate = Loader::validate('User'); if(!$validate->scene('intermediary')->check($data)){ return json(array('code'=>0,'msg'=>$validate->getError())); } $data['password'] = $this->md5($data['password']); $sure_password = $this->md5($data['sure_password']); // 确认密码 if($data['password'] != $sure_password){ $this->apiResponse('0','两次密码不一致'); } // 验证码 // $data['tel'] = $_POST['tel']; $code = $request->param('code'); $where_code['tel'] = $data['tel']; $where_code['type'] = 1; $where_code['create_time'] = array('lt',(time()+300)); $find_code = Db::name('Code')->where($where_code)->order('create_time desc')->field('code')->find(); if(!$find_code){ $this->apiResponse('0','验证码错误,请重新获取'); } if($code != $find_code['code']){ $this->apiResponse('0','验证码错误,请重新获取'); }else{ Db::name('Code')->where($where_code)->delete(); } // $data['name'] = $_POST['name']; // 判断手机号是否已注册 $user = new MemberModel(); $where_user['tel'] = $data['tel']; $is_isset = $user->where($where_user)->find(); if($is_isset){ $this->apiResponse('0','您已注册过,请直接登录'); } $str = rand(1000,9999).time().rand(100,999); $data['token'] = $this->md5($str); $data['type'] = 2; $data['city'] = $request->param('city'); $data['company'] = $request->param('company'); $data['store'] = $request->param('store'); $data['quarters'] = $request->param('quarters'); $add = $user->allowField(true)->save($data); if($add){ $this->apiResponse('1','注册成功'); }else{ $this->apiResponse('0','注册失败'); } }else{ // 服务协议 // $service = new PostService(); // $list = $service->publishedArticle(1,1)->toArray(); $where_pro['status'] = 1; $where_pro['type'] = 2; $list = Db::name('Protocol')->where($where_pro)->order("update_time desc")->field("title,content")->find(); // 推荐人(未完) if($list){ $this->apiResponse('1','成功',$list); }else{ $this->apiResponse('0','暂无内容'); } } } // 中介个人中心左侧信息 public function left($token){ $where_member['token'] = $token; $where_member['status'] = 1; $member = Db::name('Member')->where($where_member)->field('name,id,start,reputation,company,store,quarters,tel,city,pic,money,get_money,referee_tel')->find(); if(!$member){ $this->apiResponse('0','用户信息错误'); } // 查询签到信息 $member['pic'] = cmf_get_image_url($member['pic']); $where_checkin['agency_id'] = $member['id']; $tme_str = date('Y-m-d',time()); $where_checkin['create_time'] = strtotime($tme_str); $is_check = Db::name('Checkin')->where($where_checkin)->find(); if($is_check){ $member['is_checkin'] = 1; }else{ $member['is_checkin'] = 0; } return $member; } /** * @title 中介个人中心首页(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/myIndex * @method POST * @param name:token type:int require:1 default: other: desc:token * @param name:page type:int require:1 default: other: desc:页码 */ public function myIndex(Request $request){ $token = $request->param('token'); $member = $this->left($token); $quarters = explode('+',$member['quarters']); $final['intermediary'] = $member; $where_need['city'] = $member['city']; $where_need['status'] = 3; if($quarters){ foreach ($quarters as $quartersk=>$quartersv){ $quarters[$quartersk] = '%'.$quartersv.'%'; } } $where_need['quarters'] = array('like',$quarters,'OR'); $page = $request->param('page'); $need_list = Db::name('UserNeed')->where($where_need) ->field("id,city,quarters,room,floor,house_type,renovation,quotation_time,create_time,people,pay_time") ->limit(10)->page($page) ->select()->toArray(); if($need_list){ $else_arr = []; foreach ($need_list as $neek=>$neev){ $where_agency['need_id'] = $neev['id']; $where_agency['agency_id'] = $member['id']; $agency_id = Db::name('Agency')->where($where_agency)->field('id')->find(); if(!$agency_id){ $else_arr[] = $neev; } } $final['intermediary_need'] = $else_arr; }else{ $final['intermediary_need'] = array(); } $this->apiResponse('1','成功',$final); } /** * @title 中介个人中心匹配需求详情(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/mySend * @method POST * @param name:token type:int require:1 default: other: desc:token * @param name:need_id type:int require:1 default: other: desc:需求id */ public function mySend(Request $request){ $token = $request->param('token'); $member = $this->left($token); $final['intermediary'] = $member; if(!$request->param('need_id')){ $this->apiResponse('0','请选择需求id'); } $where_need['id'] = $request->param('need_id'); $where_need['status'] = 3; $need_list = Db::name('UserNeed')->where($where_need) ->field("id,user_id,city,quarters,room,floor,house_type,renovation,area,is_first,loan,contract,quotation_time,create_time,people,else,pay_time") ->find(); if($need_list){ $final['intermediary_need'] = $need_list; }else{ $final['intermediary_need'] = array(); } $this->apiResponse('1','成功',$final); } // 查询中介报价 // $need_id 需求id public function agencyOffer($user_id,$need_id){ $where_agency['status'] = 2; $where_agency['create_time'] = array('lt',time()); $where_agency['need_id'] = $need_id; $agency_list = Db::name('Agency') ->where($where_agency) ->field("id,housing_price,assessment_tax,security_tax,else_tax,service_charge") ->select()->toArray(); $final_list = array(); $add_arr = array(); if($agency_list){ foreach ($agency_list as $agencyk=>$agencyv){ $final_list[$agencyk]['need_id'] = $need_id; $final_list[$agencyk]['agency_id'] = $agencyv['id']; $final_list[$agencyk]['user_id'] = $user_id; $money = $agencyv['housing_price']*10000 + $agencyv['assessment_tax'] + $agencyv['security_tax'] + $agencyv['else_tax'] + $agencyv['service_charge'] ; $money_arr[] = $money; $fianlMoney = substr($money, 0,-4); $final_list[$agencyk]['true_money'] = $money; $final_list[$agencyk]['money'] = $fianlMoney; } sort($money_arr); foreach ($final_list as $finalk=>$finalv){ if($finalv['true_money'] == $money_arr[0]){ $add_arr['need_id'] = $finalv['need_id']; $add_arr['agency_id'] = $finalv['agency_id']; $add_arr['user_id'] = $finalv['user_id']; $add_arr['money'] = $finalv['money']; $add_arr['create_time'] = time(); $add_arr['update_time'] = time(); } } $save = Db::name('See')->insertGetId($add_arr); $return['id'] = $save; $return['money'] = $add_arr['money']; $return['time'] = time(); return $return; } } // 透视卡 //token //need_id public function see(Request $request){ $data = $request->param(); $user = $this->left($data['token']); $user_id = $user['id']; // 购买支付 // 成功加入记录 // 加订单 $add = array(); $add['name'] = '购买透视卡'; $add['order_sn'] = $this->getmath(); $add['type'] = 3; $add['need_id'] = $data['need_id']; $add['is_get'] = 2; // 查询透视卡金额 $add['money'] = 2; $add['status'] = 1; $add['create_time'] = time(); $add['update_time'] = time(); $order_id = Db::name('Order')->insertGetId($add); if(!$order_id){ $this->apiResponse('0','购买失败'); } // 支付成功 // 修改订单状态 $where_order['order_sn'] = $data['order_sn']; $save['update_time'] = time(); $save['pay_time'] = time(); $is_save = Db::name('Order')->where($where_order)->update($save); if($is_save){ return true; }else{ return false; } // 查询报价 $money = $this->agencyOffer($user_id,$data['need_id']); } /** * @title 中介个人中心我的报价(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/myMoney * @method POST * @param name:token type:int require:1 default: other: desc:token * @param name:page type:int require:1 default: other: desc:页码 */ public function myMoney(Request $request){ $data = $request->param(); $my = $this->left($data['token']); $final['intermediary'] = $my; $where_need['a.agency_id'] = $my['id']; $page = $data['page']; $need = Db::name('Agency')->alias('a') ->where($where_need) ->join("UserNeed n",'n.id = a.need_id') ->field("n.city,n.quarters,n.room,n.floor,n.house_type,n.renovation,n.status as need_status,n.create_time as need_time,n.quotation_time, a.all_price,a.create_time,a.status,a.id as intermediaryNeed_id,a.pay_time ") ->limit(10)->page($page) ->select()->toArray(); if($need){ foreach ($need as $nk=>$nv){ $changeInt = (int)$nv['all_price']; $need[$nk]['intPrice'] = substr($changeInt,0,-4); } $final['need'] = $need; }else{ $final['need'] = array(); } $this->apiResponse('1','成功',$final); } /** * @title 中介个人中心我的报价详情(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/myDetail * @method POST * @param name:token type:int require:1 default: other: desc:token * @param name:intermediary_id type:int require:1 default: other: desc:报价id */ public function myDetail(Request $request){ $data = $request->param(); $my = $this->left($data['token']); $final['intermediary'] = $my; $where_need['agency_id'] = $my['id']; $where_need['i.id'] = $data['intermediary_id']; $need = Db::name('Agency')->alias('i') ->where($where_need) ->join("hp_user_need u",'u.id = i.need_id') ->field("i.id as intermediaryNeed_id ,i.else as agency_else, i.pay_time as agency_pay_time,i.*, u.status as need_status,u.else as need_else ,u.pay_time as need_pay_time,u.* ") ->find(); if($need){ $final['need'] = $need; }else{ $final['need'] = array(); } $this->apiResponse('1','成功',$final); } /** * @title 中介个人中心查看评价(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/comment * @method POST * @param name:token type:int require:1 default: other: desc:token * @param name:intermediary_id type:int require:1 default: other: desc:报价id */ public function comment(Request $request){ $data = $request->param(); // $my = $this->left($data['token']); if(empty($data['intermediary_id'])){ $this->apiResponse('0','报价id不能为空'); } $where_agency['id'] = $data['intermediary_id']; $agency = Db::name('Agency')->where($where_agency)->find(); if($agency){ $where_comment['need_id'] = $agency['need_id']; $where_comment['agency_id'] = $agency['id']; $where_comment['intermediary_id'] = $agency['agency_id']; $where_comment['status'] = 1; $comment = Db::name('Comment')->where($where_comment)->find(); if($comment){ $this->apiResponse('1','成功',$comment); }else{ $this->apiResponse('0','暂无评价'); } }else{ $this->apiResponse('0','状态错误'); } } /** * @title 中介个人中心我的资料(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/mySelf * @method POST * @param name:token type:int require:1 default: other: desc:token */ public function mySelf(Request $request){ $data = $request->param(); $my = $this->left($data['token']); $final['intermediary'] = $my; $where_card['c.user_id'] = $my['id']; $where_card['c.status'] = 1; $card = Db::name('Card')->alias('c') ->where($where_card) ->join("Bank b",'b.id=c.bank_id') ->field('c.id,b.name,c.card_num') ->select()->toArray(); $final['card'] = $card; $this->apiResponse('1','成功',$final); } /** * @title 中介资料修改(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/myChange * @method POST * @param name:token type:int require:1 default: other: desc:token * @param name:company type:int require:1 default: other: desc:所属公司 * @param name:store type:int require:1 default: other: desc:门店 * @param name:quarters type:int require:1 default: other: desc:服务小区 * @param name:pic type:varchar require:1 default: other: desc:中介头像 * @return data:''@ * @data status:'状态(1->待发布,2->已发布,待报价,3->已成交,4->未交保证金,5->已过期,6->未选择中介,7->中介未确认,8->报价人数不足,9->删除)' */ public function myChange(Request $request){ $data = $request->param(); $where_member['token'] = $data['token']; $where_member['status'] = 1; $member = Db::name('Member')->where($where_member)->find(); if(!empty($data['company'])){ $update_member['company'] = $data['company']; $update_member['id'] = $member['id']; $update_member['store'] = $data['store']; $update_member['quarters'] = $data['quarters']; if(!empty($data['pic'])){ $update_member['pic'] = $data['pic']; } $model = new MemberModel(); $member = $model->isUpdate(true)->save($update_member); if(!$member){ $this->apiResponse('0','中介信息有误'); }else{ $this->apiResponse('1','成功'); } }else{ if(!$member){ $this->apiResponse('0','中介信息有误'); }else{ $member['pic'] = cmf_get_image_url($member['pic']); $this->apiResponse('1','成功',$member); } } } /** * @title 中介签到(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/checkIn * @method POST * @param name:token type:int require:1 default: other: desc:token */ public function checkIn(Request $request){ $data = $request->param(); $mes = $this->left($data['token']); if($mes['is_checkin'] == 0){ $add['agency_id'] = $mes['id']; $time = date('Y-m-d',time()); $add['create_time'] = strtotime($time); $add['update_time'] = time(); $result = Db::name('Checkin')->insertGetId($add); if($request){ $where_addStart['id'] = $mes['id']; $addStart = Db::name('Member')->where($where_addStart)->setInc('start',1); if($addStart){ $this->apiResponse('1','签到成功'); }else{ $this->apiResponse('0','签到失败'); } }else{ $this->apiResponse('0','签到失败'); } }else{ $this->apiResponse('0','您已签到'); } } /** * @title 我的账户(sure) * @description 接口说明 * @author 开发者 * @url /api/portal/Intermediary/orderDetail * @method POST * @method POST * @param name:token type:int require:1 default: other: desc:token * @return data:'type.1增加,2减少,3提现' */ public function orderDetail(Request $request){ $data = $request->param(); $user = $this->left($data['token']); $where_umoney['user_id'] = $user['id']; $where_umoney['status'] = array('neq',9); $order_list = Db::name('MoneyDetail')->where($where_umoney)->select()->toArray(); $final['user'] = $user; if($order_list){ foreach ($order_list as $ordk=>$ordv){ $order_list[$ordk]['update_time'] = date('Y-m-d H:i:s',$ordv['update_time']); } $final['detail'] = $order_list; }else{ $final['detail'] = array(); } if($final){ $this->apiResponse('1','成功',$final); }else{ $this->apiResponse('0','失败'); } } }