/** * 页面停止推广操作封装 * * @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; }
/** * 停止推广的对应操作 * * @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); }
/** * 坑位剩余数减一 * * @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; }