Пример #1
0
 /**
  * 105 删除房源
  *
  * <ol>
  * <li>
  * 查询房源信息是否存在<br>
  *      如果不存在,返回结束<br>
  *      如果存在,记录房源删除日志<br>
  * </li>
  *
  * <li>
  * 查询房源计划关系<br>
  *      如果不存在,返回结束<br>
  *      如果存在,更新关系状态为手动删除,记录房源移除计划日志<br>
  * </li>
  *
  * <li>
  * 查询计划信息<br>
  * (补充,计划状态直接从推列信息中获取,而不是直接从数据库中获取)
  *      如果计划不在推广,返回结束<br>
  *      如果计划正在推广, 记录房源取消推广日志,并停止竞价(暂未处理)<br>
  *      如果计划第二天推广, 记录房源取消第二天推广日志,并停止竞价(暂未处理)<br>
  * </li>
  * </ol>
  */
 public static function delete_prop($params)
 {
     $returnLog = array();
     array_push($returnLog, "队列(" . json_encode($params['id']) . ")开始处理");
     if (empty($params['pro_id'])) {
         array_push($returnLog, "房源ID为空");
         return self::build_return(1, $returnLog);
     }
     if (empty($params['city_id'])) {
         array_push($returnLog, "城市ID为空");
         return self::build_return(1, $returnLog);
     }
     //获取房源信息
     $propBll = new BLL_Property_Property();
     $propInfo = $propBll->getPropBaseInfoById($params['pro_id']);
     if (isset($propInfo[-9999])) {
         array_push($returnLog, "获取数据库中房源信息失败");
         return self::build_return(0, $returnLog);
     }
     if (empty($propInfo)) {
         array_push($returnLog, "房源信息为空");
         return self::build_return(1, $returnLog);
     }
     //房源信息存在写入房源删除信息
     $data = self::build_prop_log($params, 3, "房源删除" . ";队列表id为" . $params['id'], $params['broker_id']);
     if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) {
         array_push($returnLog, "房源删除日志写入失败");
         return self::build_return(0, $returnLog);
     }
     array_push($returnLog, "房源删除日志写入");
     /** 新端口经纪人判断 */
     if (Bll_City::isComboCity($params['city_id'])) {
         $houseRelationList = Bll_Combo_HouseRelation::getHouseRelation($params['broker_id'], $params['city_id'], array($params['pro_id']), Bll_Combo_HouseRelation::SITE_TYPE_AJK);
         if (empty($houseRelationList)) {
             $returnLog[] = '房源套餐关系为空';
             return self::build_return(1, $returnLog);
         }
         /** 更新房源套餐推广关系 */
         foreach ($houseRelationList as $houseRelation) {
             if (1 != Bll_Combo_HouseRelation::updateComboStatusById($houseRelation['id'], Model_Combo_HouseRelation::ENUM_HOUSE_DELETE, Bll_Combo_HouseRelation::SITE_TYPE_AJK)) {
                 $returnLog[] = sprintf('更新房源的套餐推广关系失败[%d]', $houseRelation['id']);
                 continue;
             }
             $returnLog[] = sprintf('更新房源的套餐推广关系成功[%d]', $houseRelation['id']);
             if (Bll_Combo_HouseRelation::isRelationOnline($houseRelation['state'])) {
                 $data = self::build_prop_log($params, 21, '房源停止套餐推广;队列表id为' . $params['id'], $params['broker_id']);
                 if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) {
                     $returnLog[] = '房源停止套餐推广日志写入失败';
                     return self::build_return(0, $returnLog);
                 }
                 $returnLog[] = '房源停止套餐推广日志写入';
             }
         }
         return self::build_return(1, $returnLog);
     }
     //查询房源计划关系
     $relationBll = new Bll_FixedSpread_PropFixedPlanRelation();
     $relationInfo = $relationBll->getProSpreadRelationByProId($params['pro_id'], $params['city_id']);
     if (empty($relationInfo)) {
         array_push($returnLog, "房源计划关系为空");
         return self::build_return(1, $returnLog);
     }
     /**
      * 修正房源的计划id
      */
     if (empty($params['plan_id'])) {
         $params['plan_id'] = $relationInfo['PlanId'];
     }
     if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) {
         //更新关系状态为删除房源
         if ($relationBll->updateFixedPlanStatu($params['pro_id'], $params['city_id'], 5)) {
             array_push($returnLog, "更新房源计划关系为删除房源");
         } else {
             array_push($returnLog, "更新房源计划关系为删除房源失败");
             return $returnLog;
         }
     }
     //写房源移出计划日志
     $data = self::build_prop_log($params, 11, "房源移出计划" . ";队列表id为" . $params['id'], $params['broker_id']);
     if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) {
         array_push($returnLog, "房源移出计划日志写入失败");
         return self::build_return(0, $returnLog);
     }
     array_push($returnLog, "房源移出计划日志写入");
     //获取计划信息
     $planBll = new Bll_Fixedspread_AjkFixedSpread();
     $planInfo = $planBll->getStaticPlanById($params['plan_id']);
     if (empty($planInfo)) {
         array_push($returnLog, "计划信息为空");
         return self::build_return(1, $returnLog);
     }
     $planStatus = $planBll->getFixedPlanStatus($planInfo['Status'], $planInfo['ViewTime']);
     //1. 刪除 2.推广中 3.第二天推广 4.账户没钱停止 5.手动停止
     switch ($planStatus) {
         case 1:
             array_push($returnLog, "计划状态已被置为删除");
             break;
         case 2:
             //todo 停止竞价
             //房源取消推广日志
             $data = self::build_prop_log($params, 6, "房源取消推广" . ";队列表id为" . $params['id'], $params['broker_id']);
             if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) {
                 array_push($returnLog, "房源取消推广日志写入失败");
                 return self::build_return(0, $returnLog);
             }
             array_push($returnLog, "房源取消推广日志写入");
             break;
         case 3:
             //todo 停止竞价
             //房源取消第二天推广日志
             $data = self::build_prop_log($params, 12, "房源取消第二天推广" . ";队列表id为" . $params['id'], $params['broker_id']);
             if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) {
                 array_push($returnLog, "房源取消第二天推广日志写入失败");
                 return self::build_return(0, $returnLog);
             }
             array_push($returnLog, "房源取消第二天推广日志写入");
             break;
         case 4:
             array_push($returnLog, "计划状态为账户没钱停止");
             break;
         case 5:
             array_push($returnLog, "计划状态为手动停止");
             break;
         default:
             break;
     }
     return self::build_return(1, $returnLog);
 }