/**
  * 页面停止推广操作封装
  *
  * @param $planId
  * @return array
  */
 public static function stop_plan($planId, $brokerId)
 {
     $rstArr = array('status' => 'ok');
     //获取计划信息
     $planInfo = Model_Plan_EsfAjkPropSpread::data_access()->filter_by_op('id', '=', $planId)->filter_by_op('status', '=', Model_Plan_EsfAjkPropSpread::ONLINE)->find_only();
     if (empty($planInfo)) {
         return array('status' => 'fail', 'info' => 'empty plan');
     }
     if ($brokerId != $planInfo->brokerId) {
         return array('status' => 'fail', 'info' => 'invalid broker');
     }
     if (Model_Plan_EsfAjkPropSpread::COMM_CHOICE != $planInfo->model) {
         return array('status' => 'fail', 'info' => 'invalid house');
     }
     $cityId = $planInfo->cityId;
     $propId = $planInfo->propId;
     //验证choice城市
     if (!Bll_City::isChoiceCity($cityId)) {
         return array('status' => 'fail', 'info' => 'choice is not open');
     }
     //获取房源信息
     $pageAttribute['housesInfo'] = Bll_House_EsfHouse::getHouseBaseInfo($propId, $cityId);
     if (empty($pageAttribute['housesInfo'])) {
         return array('status' => 'fail', 'info' => 'empty house');
     }
     //更新状态
     $oldStatus = $planInfo->status;
     $planInfo->status = Model_Plan_EsfAjkPropSpread::HANDELSTOP;
     if (!$planInfo->save()) {
         return array('status' => 'fail', 'info' => 'update plan status fail');
     }
     /** 坑位-1 只在计划关系被正确修改后才做 */
     $housePrice = $planInfo->propriceint;
     $commId = $planInfo->commId;
     //获取价格段id
     $priceIdInfo = Model_House_EsfPrice::get_price($cityId, $housePrice);
     $priceId = $priceIdInfo['id'];
     //坑位减1
     Model_Choice_EsfBidBucket::decrement_used_num($commId, $priceId);
     //放入队列
     $ip = APF::get_instance()->get_request()->get_client_ip();
     if (!Bll_Plan_Bid_EsfChoiceQueue::insert($brokerId, $planId, Model_Choice_ActionQueue::ENUM_STOP_BY_HAND, date('m'), $brokerId, '经纪人手动停止推广', $ip, $propId)) {
         return array('status' => 'fail', 'info' => 'insert chioce queue fail');
     }
     //记录日志
     $remark = sprintf("STATUS:%d=>%d", $oldStatus, Model_Plan_EsfAjkPropSpread::HANDELSTOP);
     Model_Plan_LogAjkPropspread::addNewLog($planId, $brokerId, Model_Plan_LogAjkPropspread::STOP, $remark);
     return $rstArr;
 }
Пример #2
0
 /**
  * 停止推广的对应操作
  *
  * @return array
  */
 public function stopPlanAciton($brokerId, $planId, $commId, $priceId, APF_DB_DataObject $planInfo)
 {
     //坑位减1
     Model_Choice_EsfBidBucket::decrement_used_num($commId, $priceId);
     //更新状态
     $oldStatus = $planInfo->status;
     $planInfo->status = Model_Plan_EsfAjkPropSpread::HANDELSTOP;
     if (!$planInfo->save()) {
         $this->error(self::SYSTEM_BUSY_ERROR, self::SYSTEM_BUSY_ERROR_MSG);
     }
     //放入队列
     $ip = APF::get_instance()->get_request()->get_client_ip();
     if (!Bll_Plan_Bid_EsfChoiceQueue::insert($brokerId, $planId, Model_Choice_ActionQueue::ENUM_STOP_BY_HAND, date('m'), $brokerId, '经纪人手动停止推广', $ip)) {
         $this->error(self::SYSTEM_BUSY_ERROR, self::SYSTEM_BUSY_ERROR_MSG);
     }
     //记录日志
     $remark = sprintf("STATUS:%d=>%d", $oldStatus, Model_Plan_EsfAjkPropSpread::HANDELSTOP);
     Model_Plan_LogAjkPropspread::addNewLog($planId, $brokerId, Model_Plan_LogAjkPropspread::STOP, $remark);
 }
Пример #3
0
 /**
  * 坑位剩余数减一
  *
  * @param int $communityId
  * @param int $cityId
  * @param int $price
  * @return bool
  */
 public function increment_used_num($communityId, $cityId, $price)
 {
     //查询价格段id
     $priceInfo = Model_House_EsfPrice::get_price($cityId, $price);
     if (empty($priceInfo)) {
         $this->setMsg(sprintf('未知的价格段;cityId:%d;proPriceInt:%d', $cityId, $price));
         return false;
     }
     $BucketInfo = Model_Choice_EsfBidBucket::get_bucket_info($communityId, $priceInfo['id']);
     if (empty($BucketInfo)) {
         $this->setMsg('未知的坑位表信息;');
         return false;
     }
     if (false == Model_Choice_EsfBidBucket::decrement_used_num($communityId, $priceInfo['id'])) {
         $this->setMsg('坑位剩余数加一失败;');
         return false;
     }
     $this->setMsg('坑位剩余数加一成功;');
     return true;
 }