예제 #1
0
 /**
  * 房源取消竞价
  * $newFrozen 是否使用新的扣费程序
  */
 public static function prop_out_bid($broker_id, $proid, $newFrozen = false)
 {
     $flag_array = array('status' => 0, 'msg' => '');
     if ($newFrozen) {
         $proinfo = Dao_Broker_HzProp::get_prop($proid, true);
     } else {
         $proinfo = Dao_Broker_HzProp::get_prop($proid);
     }
     if (empty($proinfo)) {
         $flag_array['msg'] = Const_HzErrorInfo::PROPNULL;
         return $flag_array;
     }
     // 13为精选的排队中状态
     $planning = Dao_Broker_HzPlan::get_prop_planning($proid, Const_HzPlan::BID_TYPE, '1,13');
     if (empty($planning)) {
         $flag_array['msg'] = Const_HzErrorInfo::PROPFIXNULL;
         return $flag_array;
     }
     $plan_info = Dao_Broker_HzPlan::get_plan($planning[0]['plan_id']);
     if (empty($plan_info)) {
         $flag_array['msg'] = Const_HzErrorInfo::NULLPLAN;
         return $flag_array;
     }
     if ($plan_info['user_id'] != $broker_id) {
         $flag_array['msg'] = Const_HzErrorInfo::PLANINFOERROR;
         return $flag_array;
     }
     if ($plan_info['status'] != 1 && !$newFrozen) {
         $flag_array['msg'] = Const_HzErrorInfo::PLANSTOP;
         return $flag_array;
     }
     $basic_info = $proinfo[$proid]['content_basic'];
     if ($basic_info['userid'] != $broker_id) {
         $flag_array['msg'] = Const_HzErrorInfo::PROPERROR;
         return $flag_array;
     }
     $sn = Dao_Broker_HzPlan::get_bid_sn($plan_info['id']);
     $sn = $sn['sn'];
     if (empty($sn)) {
         $flag_array['msg'] = Const_HzErrorInfo::PROPERROR;
         return $flag_array;
     }
     $amount = $plan_info['total_consume'];
     $note = urlencode('推广房源' . $proid);
     $user_id = Bll_HzBroker::get_userid_by_hzbrokerid($broker_id);
     $unfreezeOrderData = array('userId' => $user_id, 'proId' => $proid, 'serialNumber' => $sn, 'planId' => $plan_info['id'], 'amount' => $amount);
     $unfreezeOrder = Bll_Ppc_BidUnfreeze::createHzOrder($unfreezeOrderData);
     $charge_sn = Bll_PayAccount::cancel_frozen($user_id, $amount, $proid, $plan_info['bidVersion'] == 1 ? Const_PaymentApp::HZ_BID : Const_PaymentApp::HZ_CHOICE, $sn, $note, $newFrozen);
     if (!$charge_sn) {
         $unfreezeOrder->fail();
         $flag_array['msg'] = Const_HzErrorInfo::CHARGEFAIL;
         // 此处不需要block,由job保证此处解冻正确
         //return $flag_array;
     } else {
         $unfreezeOrder->complete();
     }
     $new_status = Const_HzStatus::MANUALLY;
     $fix_planning = Dao_Broker_HzPlan::get_prop_planning($proid, Const_HzPlan::SPREAD_TYPE, 1);
     if (!empty($fix_planning)) {
         $new_status = Const_HzStatus::ONLINE;
     } else {
         if ($newFrozen) {
             $new_status = Const_HzStatus::OUTLINE;
         }
     }
     $prop_log_option = Const_HzLog::MENUSTOPSPREADPROP;
     $plan_log_option = Const_HzLog::MENUSTOPSPREADPLAN;
     //停止竞价 房源状态更新为9
     if (Dao_Broker_HzProp::change_prop_status($proid, $new_status)) {
         //更新房源状态
         if (Dao_Broker_HzPlan::update_planning($planning[0]['id'], Const_HzPlan::MENUOVER)) {
             //更新关联关系
             if (Dao_Broker_HzPlan::update_plan_status($plan_info['id'], Const_HzPlan::MENUOVER)) {
                 //更新计划状态
                 Dao_Broker_HzPlan::add_prop_log($proid, $prop_log_option, $basic_info['userid'], $plan_info['id'], $basic_info['status'], $new_status);
                 //记房源日志
                 Dao_Broker_HzPlan::add_plan_log($plan_info['id'], $proid, $plan_log_option, 2, $basic_info['userid'], 0, Const_HzPlan::SPREAD, Const_HzPlan::MENUOVER);
                 //记录计划日志
                 if ($basic_info['status'] == Const_HzStatus::ONLINE && $new_status != Const_HzStatus::ONLINE) {
                     Dao_Broker_HzProp::into_prop_lucene($proid, $basic_info['cityid'], 2);
                     //下线房源
                     Dao_Broker_HzProp::add_updown_log($proid, $plan_info['id'], Const_HzStatus::GOOFFLINE, $prop_log_option);
                 } else {
                     Dao_Broker_HzProp::into_prop_lucene($proid, $basic_info['cityid'], 1);
                     //竞价下,定价还在线。则更新上
                 }
                 $flag_array['status'] = 1;
                 return $flag_array;
             }
         }
     }
     $flag_array['msg'] = Const_HzErrorInfo::DATAFAIL;
     return $flag_array;
 }
예제 #2
0
 public function handle_request_internal()
 {
     /*
     @params planId :计划id
     @params resType :默认为0,0表示不取计划房源信息,1为取房源信息
     @params from :来源
     @success return 该计划id的信息
     */
     if (!isset($this->_params['brokerId'])) {
         return Util_MobileAPI::error(Const_APIStatus::E_PLAN_PARAM_BROKERID_MISS);
     }
     $brokerId = $this->_params['brokerId'];
     //根据安居客经纪人ID获取好租经纪人ID
     $brokerId_hz = Bll_HzBroker::get_brokerid_by_ajk_brokerid($brokerId);
     if ($brokerId_hz) {
         $broker_info = Dao_Broker_HzPlan::get_hzbroker_info($brokerId_hz);
         if (!Bll_City::isBidCity($broker_info['cityid'])) {
             return array('status' => 'ok', 'data' => array('propertyList' => array()));
         }
     }
     if (Bll_Broker_HzBroker::isComboBroker($brokerId)) {
         //获取套餐推广房源列表
         $comboList = Bll_Combo_HouseRelation::getHouseRelations($brokerId, Bll_Combo_HouseRelation::SITE_TYPE_HZ, 1);
         if (!empty($comboList)) {
             foreach ($comboList as $combo) {
                 $comboIds[$combo['houseId']] = 1;
             }
             //获取竞价房源 去除竞价房源
             $validBidPlans = Model_Plan_HzPlanBasic::getBidPlansByBrokerId($brokerId_hz);
             $planIds = array();
             if (!empty($validBidPlans)) {
                 foreach ($validBidPlans as $plan) {
                     if ($plan['flag'] == 1 && $plan['status'] != Const_HzPlan::DELETE) {
                         $planIds[] = $plan['id'];
                     }
                 }
                 if (!empty($planIds)) {
                     $bidPlannings = Model_Plan_HzPlanning::getPlanningByPlanIds($planIds);
                 }
                 if (!empty($bidPlannings)) {
                     foreach ($bidPlannings as $bid) {
                         unset($comboIds[$bid['proid']]);
                     }
                 }
             }
             //$propertyList = Model_House_HzProp::getPropsByPropIds(array_keys($comboIds));
             $propertyList = Dao_Broker_HzProp::get_prop(array_keys($comboIds));
             if (!empty($propertyList)) {
                 foreach ($propertyList as $key => $list) {
                     if ($list['content_basic']['quality'] != 1) {
                         unset($propertyList[$key]);
                     }
                 }
             }
             $result = $propertyList;
         } else {
             $result = array();
         }
         //去除竞价房源和非多图房源
     } else {
         $result = Bll_HzBidPlan::get_canbid_props($brokerId_hz);
     }
     $return = array();
     $return["status"] = "ok";
     $return["data"]['propertyList'] = array();
     if (!empty($result)) {
         $proprow = array();
         foreach ($result as $propertyList) {
             $proprow["id"] = $propertyList['proid'];
             $proprow["title"] = $propertyList['content_basic']['title'];
             $proprow["commId"] = $propertyList['content_basic']['commid'];
             $proprow["commName"] = $propertyList['content_basic']['commname'];
             $proprow["roomNum"] = $propertyList['content_basic']['roomnum'];
             $proprow["hallNum"] = $propertyList['content_basic']['hallnum'];
             $proprow["toiletNum"] = $propertyList['content_basic']['toilnetnum'];
             $proprow["area"] = round($propertyList['content_basic']['areanum']);
             $proprow["price"] = round($propertyList['content_basic']['pricenum']);
             $proprow["isMoreImg"] = $propertyList['content_basic']['quality'] ? 1 : 0;
             $proprow["priceUnit"] = "元";
             $return["data"]['propertyList'][] = $proprow;
             unset($proprow);
         }
         unset($result);
     }
     return $return;
 }
예제 #3
0
 /**
  * 删除经纪人定价组
  * @param $broker_id
  * @param $plan_id
  * @return array
  */
 public static function delete_broker_plan($broker_id, $plan_id)
 {
     //删除价组 条件判断
     $flag_array = array('status' => 0, 'msg' => '');
     if (empty($broker_id) || empty($plan_id)) {
         $flag_array['msg'] = Const_HzErrorInfo::PARAMS;
         return $flag_array;
     }
     $plan_info = Dao_Broker_HzPlan::get_plan($plan_id);
     if (empty($plan_info)) {
         $flag_array['msg'] = Const_HzErrorInfo::NULLPLAN;
         return $flag_array;
     }
     if ($plan_info['user_id'] != $broker_id) {
         $flag_array['msg'] = Const_HzErrorInfo::PLANINFOERROR;
         return $flag_array;
     }
     // 已删除
     if ($plan_info['status'] == Const_HzPlan::MANUALLY_PAUSE) {
         $flag_array['msg'] = Const_HzErrorInfo::PLANINFOERROR;
         return $flag_array;
     }
     $plannings = Dao_Broker_HzPlan::get_planning($plan_id);
     $proids = array();
     foreach ($plannings as $planning) {
         $proids[] = $planning['proid'];
     }
     $prop_option = Const_HzLog::DELPLANPROP;
     $status = Const_HzStatus::OUTLINE;
     // 房源更新状态
     $plan_status = Const_HzPlan::MANUALLY_PAUSE;
     // 计划状态
     $plan_option = Const_HzLog::DELPLAN;
     $proids_str = implode(',', $proids);
     $proinfo = Dao_Broker_HzProp::get_prop($proids);
     foreach ($plannings as $planning) {
         $basic_info = $proinfo[$planning['proid']]['content_basic'];
         //更新房源计划信息
         if (Dao_Broker_HzProp::change_prop_status($planning['proid'], $status)) {
             //更新房源状态
             if (Dao_Broker_HzPlan::update_planning($planning['id'], $plan_status)) {
                 //更新关联关系
                 Dao_Broker_HzPlan::add_prop_log($planning['proid'], $prop_option, $basic_info['userid'], $plan_id, $basic_info['status'], $status);
                 //记房源日志
                 // TODO 停止竞价
                 // TODO 下solr
                 //记录房源下线日志
                 if ($status != Const_HzStatus::ONLINE && $basic_info['status'] == Const_HzStatus::ONLINE) {
                     Dao_Broker_HzProp::ezft_assistant_log($planning['proid'], $basic_info['userid'], Const_HzPlan::SPREAD_TYPE, $basic_info['spread_type']);
                 }
                 //房源上下线日志
                 Dao_Broker_HzProp::add_updown_log($planning['proid'], $plan_id, Const_HzStatus::GOONLINE, $prop_option);
             }
         }
     }
     //更新计划
     Dao_Broker_HzPlan::update_plan_status($plan_id, $plan_status);
     //计划日志
     Dao_Broker_HzPlan::add_plan_log($plan_id, $proids_str, $plan_option, 1, $broker_id, 0, $plan_info['status'], $plan_status);
     $flag_array['status'] = 1;
     return $flag_array;
 }
예제 #4
0
 /**
  * 根据小区id更新板块,并且rebuild
  * @param $blockId
  * @param $areaId
  * @param $cityId
  * @param $commId
  * @return array
  */
 public static function updatePropBlock($blockId, $areaId, $cityId, $commId)
 {
     $allReturn = array();
     $searchProps = Dao_Broker_HzProp::getSearchProps(array('where' => 'commid=? and status in (1,2,5,6,9,11,12,13,14,15) ', 'params' => array($commId)), $cityId);
     if ($searchProps) {
         // 获取prop
         $proIds = array();
         foreach ($searchProps as $searchProp) {
             $proIds[] = $searchProp['proid'];
         }
         $props = Dao_Broker_HzProp::get_prop($proIds);
         foreach ($searchProps as $searchProp) {
             $proId = $searchProp['proid'];
             // 是否主表有数据
             if (!isset($props[$proId])) {
                 $allReturn[] = '板块:' . $blockId . ' 区域:' . $areaId . ' 小区:' . $commId . ' 房源' . $proId . '在主表中不存在';
                 continue;
             }
             $result = self::changePropBlock($proId, $blockId, $areaId, $cityId);
             if (!$result['status']) {
                 return $result;
             }
             $allReturn = array_merge($allReturn, $result['msg']);
         }
     } else {
         $allReturn[] = '板块:' . $blockId . ' 区域:' . $areaId . ' 小区:' . $commId . '没有房源';
     }
     return self::buildReturn(1, $allReturn);
 }