public static function dealProUpDownJob($queueInfo)
 {
     $hzUpDownService = new Bll_House_UpDown_Worker_HzUpDownService($queueInfo);
     switch ($queueInfo['type']) {
         case 101:
             #101房源新发
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::create_prop($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::create_prop($queueInfo);
                     break;
             }
             break;
         case 102:
             #102房源编辑
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::edit_prop($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::edit_prop($queueInfo);
                     break;
             }
             break;
         case 103:
             #103房源违规
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::illegal_prop($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::illegal_prop($queueInfo);
                     break;
             }
             break;
         case 104:
             #104房源到期下架并删除
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::overtime_prop($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::overtime_prop($queueInfo);
                     break;
             }
             break;
         case 105:
             #105删除房源
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::delete_prop($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::delete_prop($queueInfo);
                     break;
             }
             break;
         case 106:
             #106房源取消定价推广——用户手动
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::prop_out_fix($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::prop_out_fix($queueInfo);
                     break;
             }
             break;
         case 107:
             #107房源加入定价推广
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::prop_into_fix($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::prop_into_fix($queueInfo);
                     break;
             }
             break;
         case 108:
             #108房源修改价格
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::change_prop_price($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::change_prop_price($queueInfo);
                     break;
             }
             break;
         case 109:
             #109房源小区变更
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::change_prop_comm($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::change_prop_comm($queueInfo);
                     break;
             }
             break;
         case 110:
             #110房源图片信息变更
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::change_prop_pic($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::change_prop_pic($queueInfo);
                     break;
             }
             break;
         case Const_ProPlanChangeType::PRO_ADD_TO_COMBO:
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::pro_start_combo($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::pro_start_combo($queueInfo);
                     break;
             }
             break;
         case Const_ProPlanChangeType::PRO_REMOVE_FROM_COMBO:
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPropBll::pro_stop_combo($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpPropBll::pro_stop_combo($queueInfo);
                     break;
             }
             break;
         case 201:
             #201计划新建
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPlanBll::create_plan($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpFixPlanBll::create_plan($queueInfo);
                     break;
             }
             break;
         case 202:
             #202计划修改
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPlanBll::change_plan($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpFixPlanBll::change_plan($queueInfo);
                     break;
             }
             break;
         case 203:
             #203计划修改
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPlanBll::delete_plan($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpFixPlanBll::delete_plan($queueInfo);
                     break;
             }
             break;
         case 204:
             #204增加计划限额
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPlanBll::add_plan_budget($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpFixPlanBll::add_plan_budget($queueInfo);
                     break;
             }
             break;
         case 205:
             #205减少计划限额
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPlanBll::low_plan_budget($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpFixPlanBll::low_plan_budget($queueInfo);
                     break;
             }
             break;
         case 206:
             #206计划限额不足
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPlanBll::plan_budget_top($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpFixPlanBll::plan_budget_top($queueInfo);
                     break;
             }
             break;
         case 207:
             #207计划手动停止
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPlanBll::handle_plan_stop($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpFixPlanBll::handle_plan_stop($queueInfo);
                     break;
             }
             break;
         case 208:
             #208计划手动开启
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfPlanBll::handle_plan_start($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpFixPlanBll::handle_plan_start($queueInfo);
                     break;
             }
             break;
         case 301:
             #301账户余额不足
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfBrokerBll::broker_balance_less($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpBrokerBll::broker_balance_less($queueInfo);
                     break;
                 case 4:
                     $ajk_res = Bll_EsfBrokerBll::broker_balance_less($queueInfo);
                     $hz_res = $hzUpDownService->doUpDownFromWorker();
                     $jp_res = Bll_JpBrokerBll::broker_balance_less($queueInfo);
                     $result = array('ajk' => $ajk_res, 'hz' => $hz_res, 'jp' => $jp_res);
                     break;
             }
             break;
         case 302:
             #302用户充值
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfBrokerBll::broker_recharge($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpBrokerBll::broker_recharge($queueInfo);
                     break;
                 case 4:
                     $ajk_res = Bll_EsfBrokerBll::broker_recharge($queueInfo);
                     $hz_res = $hzUpDownService->doUpDownFromWorker();
                     $jp_res = Bll_JpBrokerBll::broker_recharge($queueInfo);
                     $result = array('ajk' => $ajk_res, 'hz' => $hz_res, 'jp' => $jp_res);
                     break;
             }
             break;
         case 303:
             #303竞价结算
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfBrokerBll::broker_frozen_money($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpBrokerBll::broker_frozen_money($queueInfo);
                     break;
                 case 4:
                     $ajk_res = Bll_EsfBrokerBll::broker_frozen_money($queueInfo);
                     $hz_res = $hzUpDownService->doUpDownFromWorker();
                     $jp_res = Bll_JpBrokerBll::broker_frozen_money($queueInfo);
                     $result = array('ajk' => $ajk_res, 'hz' => $hz_res, 'jp' => $jp_res);
                     break;
             }
             break;
         case 304:
             #304系统返还
             switch ($queueInfo['site_type']) {
                 case 1:
                     $result = Bll_EsfBrokerBll::broker_restitution($queueInfo);
                     break;
                 case 2:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case 3:
                     $result = Bll_JpBrokerBll::broker_restitution($queueInfo);
                     break;
                 case 4:
                     $ajk_res = Bll_EsfBrokerBll::broker_restitution($queueInfo);
                     $hz_res = $hzUpDownService->doUpDownFromWorker();
                     $jp_res = Bll_JpBrokerBll::broker_restitution($queueInfo);
                     $result = array('ajk' => $ajk_res, 'hz' => $hz_res, 'jp' => $jp_res);
                     break;
             }
             break;
         case Const_ProPlanChangeType::COMBO_CREATE:
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_Combo_Updown_AjkDealJob::comboCreate($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_HZ:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     $result = Bll_Combo_Updown_JpDealJob::comboCreate($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_ALL:
                     $ajk_res = Bll_Combo_Updown_AjkDealJob::comboCreate($queueInfo);
                     $hz_res = $hzUpDownService->doUpDownFromWorker();
                     $jp_res = Bll_Combo_Updown_JpDealJob::comboCreate($queueInfo);
                     $result = array('ajk' => $ajk_res, 'hz' => $hz_res, 'jp' => $jp_res);
                     break;
             }
             break;
         case Const_ProPlanChangeType::COMBO_EFFECT:
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_Combo_Updown_AjkDealJob::comboEffect($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_HZ:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     $result = Bll_Combo_Updown_JpDealJob::comboEffect($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_ALL:
                     $ajk_res = Bll_Combo_Updown_AjkDealJob::comboEffect($queueInfo);
                     $hz_res = $hzUpDownService->doUpDownFromWorker();
                     $jp_res = Bll_Combo_Updown_JpDealJob::comboEffect($queueInfo);
                     $result = array('ajk' => $ajk_res, 'hz' => $hz_res, 'jp' => $jp_res);
                     break;
             }
             break;
         case Const_ProPlanChangeType::COMBO_EXPIRE:
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_Combo_Updown_AjkDealJob::comboExpire($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_HZ:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     $result = Bll_Combo_Updown_JpDealJob::comboExpire($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_ALL:
                     $ajk_res = Bll_Combo_Updown_AjkDealJob::comboExpire($queueInfo);
                     $hz_res = $hzUpDownService->doUpDownFromWorker();
                     $jp_res = Bll_Combo_Updown_JpDealJob::comboExpire($queueInfo);
                     $result = array('ajk' => $ajk_res, 'hz' => $hz_res, 'jp' => $jp_res);
                     break;
             }
             break;
         case Const_ProPlanChangeType::COMBO_EXPORT:
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_Combo_Updown_AjkDealJob::comboExport($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_HZ:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     $result = Bll_Combo_Updown_JpDealJob::comboExport($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_ALL:
                     $ajk_res = Bll_Combo_Updown_AjkDealJob::comboExport($queueInfo);
                     $hz_res = $hzUpDownService->doUpDownFromWorker();
                     $jp_res = Bll_Combo_Updown_JpDealJob::comboExport($queueInfo);
                     $result = array('ajk' => $ajk_res, 'hz' => $hz_res, 'jp' => $jp_res);
                     break;
             }
             break;
         case Const_ProPlanChangeType::COMBO_IMPORT:
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_Combo_Updown_AjkDealJob::comboImport($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_HZ:
                     $result = $hzUpDownService->doUpDownFromWorker();
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     $result = Bll_Combo_Updown_JpDealJob::comboImport($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_ALL:
                     $ajk_res = Bll_Combo_Updown_AjkDealJob::comboImport($queueInfo);
                     $hz_res = $hzUpDownService->doUpDownFromWorker();
                     $jp_res = Bll_Combo_Updown_JpDealJob::comboImport($queueInfo);
                     $result = array('ajk' => $ajk_res, 'hz' => $hz_res, 'jp' => $jp_res);
                     break;
             }
             break;
         case Const_ProPlanChangeType::ACTIVITY_RES_ADD:
             //房产季活动房源打标签
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_Activity_DealJob::activityResAddAjk($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_HZ:
                     $result = Bll_Activity_DealJob::activityResAddHz($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_ALL:
                     break;
             }
             break;
         case Const_ProPlanChangeType::ACTIVITY_RES_REMOVE:
             //房产季活动房源取消打标签
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_Activity_DealJob::activityResRemoveAjk($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_HZ:
                     $result = Bll_Activity_DealJob::activityResRemoveHz($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_ALL:
                     break;
             }
             break;
         case Const_ProPlanChangeType::COMMUNITY_INFO_CHANGE:
             // 小区信息变更
             $result = Bll_Community_UpDownDeal::communityInfoChange($queueInfo);
             break;
         case Const_ProPlanChangeType::COMMUNITY_INFO_CHANGE_EX:
             // 小区信息变更 批量
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_Community_UpDownDeal::ajkCommunityInfoChangeEx($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_HZ:
                     $result = Bll_Community_UpDownDeal::hzCommunityInfoChangeEx($queueInfo);
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     break;
                 case Const_ProPlanChangeType::SITE_TYPE_ALL:
                     break;
             }
             break;
         case Const_ProPlanChangeType::COMM_MERGE:
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_Community_UpDownDeal::ajkCommunityMerge($queueInfo);
                     break;
                 default:
                     $result = array('status' => 1, 'msg' => '不处理');
             }
             break;
         case Const_ProPlanChangeType::COMMUNITY_AREA_CHANGE:
             //区域板块变更
             $result = Bll_Community_UpDownDeal::communityAreaChange($queueInfo);
             break;
         case Const_ProPlanChangeType::COMMUNITY_AREA_CHANGE_EX:
             //区域板块变更
             $result = Bll_Community_UpDownDeal::communityAreaChangeEx($queueInfo);
             break;
             /** 价格段变更 */
         /** 价格段变更 */
         case Const_ProPlanChangeType::PRICE_INTERVAL_CHANGE:
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_AJK:
                     $result = Bll_House_EsfPriceInterval::upDownDeal($queueInfo);
                     break;
                 default:
                     $result = array('status' => 1, 'msg' => '不处理');
             }
             break;
             /** 商铺的物业板块变更处理 */
         /** 商铺的物业板块变更处理 */
         case Const_ProPlanChangeType::PROPERTY_AREA_CHANGE:
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     $result = Bll_Community_UpDownDeal::propertyAreaChange($queueInfo);
                     break;
                 default:
                     $result = array('status' => 1, 'msg' => '不处理');
             }
             break;
             /** 写字楼的building的板块变更处理 */
         /** 写字楼的building的板块变更处理 */
         case Const_ProPlanChangeType::BUILDING_AREA_CHANGE:
             switch ($queueInfo['site_type']) {
                 case Const_ProPlanChangeType::SITE_TYPE_JP:
                     $result = Bll_Community_UpDownDeal::buildingAreaChange($queueInfo);
                     break;
                 default:
                     $result = array('status' => 1, 'msg' => '不处理');
             }
             break;
     }
     $result = self::formatOutMsg($result, $queueInfo['site_type']);
     return $result;
 }
 public static function handle_plan_start($params)
 {
     $all_return = array();
     $all_return[] = "队列(" . $params['id'] . ")开始处理";
     //获取房源列表
     $houseInfoObjs = Model_House_JpHouseIdx::getHouseInfoByFixPlanId($params['plan_id']);
     //写房源推广日志
     if ($houseInfoObjs) {
         //todo 房源要上线 查余额判断
         foreach ($houseInfoObjs as $houseInfoObj) {
             $params['pro_id'] = $houseInfoObj->id;
             $data = Bll_JpPropBll::build_prop_log($params, 5, "房源推广", $params['broker_id']);
             Model_Log_HouseLogNew::create($data, date('Ymd'))->save();
             $all_return[] = "房源" . $params['pro_id'] . "上线日志写入";
         }
     }
     //写计划日志
     $data = self::build_plan_log($params, 4, "手动开始计划", $params['broker_id']);
     Model_House_UpDown_PlanLog::create($data, date('m'))->save();
     $all_return[] = "手动开始计划日志写入";
     return Bll_JpPropBll::build_return(1, $all_return);
 }
 public static function broker_restitution($params)
 {
     $all_return[] = "队列(" . $params['id'] . ")开始处理";
     $all_return[] = '金铺系统返还';
     //todo 查询用户所有定价计划,开启计划,上线房源
     $ajk_broker_id = $params['broker_id'];
     //获取金铺经纪人broker_id
     $jpBrokerInfoObj = Model_Broker_JpBroker::getJpBrokerInfoByAjkBrokerId($params['broker_id']);
     $params['broker_id'] = $jpBrokerInfoObj->id;
     //获取由于余额用完停止的计划
     $fixInfoObjs = Model_Plan_Jp::getNoBalancePlan($params['broker_id']);
     foreach ($fixInfoObjs as $fixInfoObj) {
         $plan_log = array();
         $plan_log['id'] = $params['id'];
         $plan_log['plan_id'] = $fixInfoObj->id;
         $plan_log['broker_id'] = $ajk_broker_id;
         $plan_log['city_id'] = $fixInfoObj->cityId;
         $plan_log['type'] = $params['type'];
         $plan_log = Bll_JpFixPlanBll::build_plan_log($plan_log, 8, "系统返还", 0);
         //写计划日志
         if (!Model_House_UpDown_PlanLog::create($plan_log, date('m'))->save()) {
             $all_return[] = "计划" . $plan_log['planId'] . "房源推广日志写入失败";
         } else {
             $all_return[] = "计划" . $plan_log['planId'] . "房源推广日志写入成功";
         }
         //计划开启
         $fixInfoObj->status = 2;
         $fixInfoObj->stopReason = 0;
         if (!$fixInfoObj->save()) {
             return array('status' => 0, 'msg' => array("定价计划" . $plan_log['planId'] . ",更新失败"));
         }
         //获取房源列表
         $houseInfoObjs = Model_House_JpHouseIdx::getHouseInfoByFixPlanId($plan_log['planId']);
         if ($houseInfoObjs) {
             foreach ($houseInfoObjs as $houseInfoObj) {
                 $prop_log['id'] = $params['id'];
                 $prop_log['pro_id'] = $houseInfoObj->id;
                 $prop_log['plan_id'] = $plan_log['planId'];
                 $prop_log['broker_id'] = $ajk_broker_id;
                 $prop_log['city_id'] = $houseInfoObj->cityId;
                 $prop_log['type'] = $params['type'];
                 $prop_log = Bll_JpPropBll::build_prop_log($prop_log, 5, "系统返还", 0);
                 //写房源日志
                 if (!Model_Log_HouseLogNew::create($prop_log, date('Ymd'))->save()) {
                     $all_return[] = "房源" . $houseInfoObj->id . "系统返还后房源推广日志写入失败";
                 } else {
                     $all_return[] = "房源" . $houseInfoObj->id . "系统返还后房源推广日志写入成功";
                 }
                 //获取房源分表信息
                 $houseClass = Model_House_JpHouseIdx::getHouseTypeModelClass($houseInfoObj->houseType);
                 $houseObj = $houseClass::getPropInfoByPk($houseInfoObj->id);
                 //更新展示房源状态
                 $houseObj->isList = 1;
                 if ($houseObj->save()) {
                     $all_return[] = "houseType=" . $houseInfoObj->houseType . ",更新分表isList=1成功";
                 } else {
                     $all_return[] = "houseType=" . $houseInfoObj->houseType . ",更新分表isList=1失败";
                 }
             }
         }
     }
     return Bll_JpPropBll::build_return(1, $all_return);
 }
 /**
  * 303竞价结算
  * 1. 查询经纪人所有有效计划,
  *      没有计划return
  *
  * 2. 基于推广计划,查询计划下有效房源(循环计划查询)
  *
  *      判断计划状态
  *          推广中,contine
  *          第二天推广,continue
  *          手动停止,continue
  *          账户限额不足,计划置为推广中,记录计划推广日志
  *      查询计划下房源关系,
  *          如果为空,contine
  *          不为空,判断计划状态
  *                  如果账户余额不足,记录房源推广日志
  */
 public static function broker_frozen_money($params)
 {
     if (empty($params['broker_id'])) {
         return Bll_JpPropBll::build_return(1, array("经纪人ID为空"));
     }
     $returnLog = array();
     //获取账户余额
     try {
         $userId = Bll_Broker_MainBusiness::getDataByEsfId($params['broker_id'])->memberId;
         $balance = Bll_Service_Payment::balance(Bll_Service_Payment::SITE_ANJUKE, array('userId' => $userId));
     } catch (Exception $e) {
         array_push($returnLog, "获取账户余额不足失败");
         return Bll_JpPropBll::build_return(0, $returnLog);
     }
     if ($balance['data']['balance'] <= 0) {
         array_push($returnLog, "当前账户余额不足");
         return Bll_JpPropBll::build_return(1, $returnLog);
     }
     array_push($returnLog, "当前账户余额:" . $balance['data']['balance']);
     //获取经纪人正在推广的计划
     $StaticPricePlanList = DAO_Plan_StaticPricePlan::getStaticPricePlanListByBrokerId($params['broker_id']);
     foreach ($StaticPricePlanList as $list) {
         if ($list['Status'] != 1) {
             //无效的计划
             array_push($returnLog, "无效的计划:" . $list['Id'] . ";");
             continue;
         }
         if ($list['ViewTime'] != 1893427200) {
             //非账户没钱停止的计划
             array_push($returnLog, "计划Id:" . $list['Id'] . "展示时间:" . date("Y-m-d H:i:s", $list['ViewTime']) . ";");
             continue;
         }
         $tmpStr = "计划Id:" . $list['Id'] . "展示时间:" . date("Y-m-d H:i:s", $list['ViewTime']) . ";";
         //获取计划下面的房源
         $StaticPriceRelation = DAO_Plan_StaticPriceRelation::getProSpreadRelation($list['Id'], $list['CityId']);
         //更新计划的状态
         if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) {
             DAO_Plan_StaticPricePlan::updateStaticPricePlanById(array('Id' => $list['Id'], 'ViewTime' => time()));
         }
         //记录计划日志
         $params['plan_id'] = $list['Id'];
         $data = self::build_plan_log($params, 8, "账户有钱计划推广,动作id:" . $params['id'], $params['broker_id']);
         if (!Model_House_UpDown_PlanLog::create($data, date('m'))->save()) {
             array_push($returnLog, "账户有钱计划推广日志写入失败");
             return Bll_JpPropBll::build_return(0, $returnLog);
         }
         //记录房源日志
         foreach ($StaticPriceRelation as $Relation) {
             $params['pro_id'] = $Relation['ProId'];
             $data = Bll_EsfPropBll::build_prop_log($params, 5, "房源推广,动作id:" . $params['id'], $params['broker_id']);
             if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) {
                 array_push($returnLog, "房源" . $Relation['ProId'] . "房源推广日志写入失败");
                 return Bll_JpPropBll::build_return(0, $returnLog);
             }
             $tmpStr .= $Relation['ProId'] . ",";
         }
         array_push($returnLog, $tmpStr);
     }
     if (empty($returnLog)) {
         array_push($returnLog, "经纪人没有计划");
     }
     return Bll_JpPropBll::build_return(1, $returnLog);
 }
Exemple #5
0
 /**
  * 505 套餐转入
  *  1. 获取经纪人当前的套餐信息
  *  2. 如果经纪人没有套餐
  *      1. 下掉经纪人所有的的套餐房源&竞价计划
  *  3. 判断经纪人当前在线的房源数和经纪人当前生效的套餐能够推广的房源数
  *      1. 如果当前推广的房源数 大于 套餐可以推广的房源数,把多余的房子下掉(按关系表的更新时间,优先下线更新时间早的)
  *      2. 如果当前推广的房源数 小于 套餐可以推广的房源数,把套餐到期的房子下掉(按关系表的更新时间,优先上线更新时间晚的)
  *
  * @param $queueInfo
  */
 public static function comboImport($params)
 {
     //除日志内容外,基本复制 self::comboExpire
     $allReturn = array("队列(" . $params['id'] . ")开始处理");
     //获取经纪人当前在用的套餐
     $brokerCombo = Bll_Combo_Broker_BrokerComboInfo::getBrokerCurrentCombo($params['broker_id'], Bll_Combo_Broker_BrokerComboInfo::SITE_TYPE_JP);
     //经纪人当前在线房源,按照update_time asc排序
     $brokerOnlineProps = Model_Combo_HouseRelation::data_access('jp')->filter('brokerId', $params['broker_id'])->filter_by_op('state', '>=', 101)->filter_by_op('state', '<=', 199)->sort('updateTime', 'asc')->find_all();
     $allReturn[] = "经纪人当前套餐ID:" . $brokerCombo['comboId'] . ",可推广jp房源数:" . $brokerCombo['jpPropNum'] . ",经纪人在线房源数:" . count($brokerOnlineProps);
     if (!empty($brokerCombo)) {
         //套餐转入,不用下房源,只需要上线房源即可,获取经纪人需要自动上架的房源,state=到期 按照update_time desc 排序
         $brokerAutoProp = Model_Combo_HouseRelation::data_access('jp')->filter('brokerId', $params['broker_id'])->filter('state', Model_Combo_HouseRelation::ENUM_COMBO_EXPIRE)->sort('updateTime')->find_all();
         if (!empty($brokerAutoProp)) {
             foreach ($brokerAutoProp as $key => $prop) {
                 if ($key < $brokerCombo['jpPropNum'] - count($brokerOnlineProps)) {
                     //房源信息验证
                     $check = self::propCheck($prop->houseId, $prop->brokerId);
                     if (!$check['flg']) {
                         $allReturn[] = "房源" . $prop->houseId . "无法上线," . $check['data'];
                         continue;
                     }
                     //房源上线 更新数据 关系表状态 state=上线
                     $prop->state = Model_Combo_HouseRelation::ENUM_HOUSE_ONLINE;
                     $prop->save();
                     //写入上线日志
                     $params['pro_id'] = $prop->houseId;
                     $data = Bll_JpPropBll::build_prop_log($params, 20, "房源开始套餐推广", $params['broker_id']);
                     Model_Log_HouseLogNew::create($data, date('Ymd'))->save();
                     $allReturn[] = "套餐转入,房源" . $params['pro_id'] . "开始套餐推广日志写入成功";
                 }
             }
         }
     } else {
         $allReturn[] = "套餐转入,当前没有查询到套餐,不处理";
     }
     return Bll_JpPropBll::build_return(1, $allReturn);
 }