public function handle_request_internal() { $this->communityId = $this->getCommunityId(); $this->setAttribute('show_searchbar', false); /** 判断小区地图是都已经锁定 */ $this->isLockMap = Bll_Community_CommunityGardener::checkCommunityMapIsLock($this->communityId); $this->setAttribute('isLockMap', $this->isLockMap); /** 获取小区当前的图片数量 */ $this->communityImageCount = self::COMMUNITY_PHOTO_COUNT - intval(Model_Community_Attachment::getCommunityPictureCount($this->communityId)); $this->setAttribute('brokerShouldUploadPhotoCount', $this->communityImageCount); /** 获取小区详细信息 */ $this->communityInfo = Bll_Community_CommunityGardener::getCommunityDetail($this->communityId); /** 如果是隐藏小区,那么就直接跳转到小区详情页 */ $this->isHiddenCommunity($this->communityInfo); $communityWikiInfo = Bll_Community_CommunityGardener::getCommunityWikiInfo($this->communityId); if (!empty($communityWikiInfo)) { $this->baseInfoIsLocked = true; for ($fieldIndex = 2; $fieldIndex < 15; $fieldIndex++) { if (!isset($communityWikiInfo[$fieldIndex]) || $communityWikiInfo[$fieldIndex] == 1) { $this->baseInfoIsLocked = false; break; } } } $this->setAttribute('baseInfoIsLocked', $this->baseInfoIsLocked); /** TODO 判断是否是完善小区 */ if (Bll_Community_CommunityGardener::checkCommunityIsComplete($this->communityInfo)) { $this->setAttribute('isOk', 3); return 'Community_Gardener_PhotoCommitOk'; } /** 验证码 */ $this->verifyCode = Bll_Community_CommunityGardener::getVerifyCode($this->communityId, static::$intBrokerID); $this->setAttribute('verify', $this->verifyCode); /** TODO 判断小区园丁申请是否有效 */ if (!$this->checkApplyIsValid($this->communityId, static::$intBrokerID, $this->getParameter('verify'))) { $this->setAttribute('isOk', 2); return 'Community_Gardener_PhotoCommitOk'; } /** TODO 过滤小区信息 */ /** TODO 初始化小区信息 */ $this->setAttributes($this->communityInfo); $this->setAttribute('commId', $this->communityId); return $this->handle_request_abs(); }
/** * 判断小区是否是完善小区 * * @param array $communityInfo * @return bool */ public static function checkCommunityIsComplete($communityInfo) { $checkCommunityCompleteFields = array('baseInfo' => array('commLocal', 'useType'), 'extendInfo' => array('commBuilder', 'manageCompany', 'managePay', 'buildArea', 'carbarnState', 'containPert', 'greenPert', 'houseTotal', 'sendDate', 'commIntro', 'commOther')); $lockMapping = array('commOtherName' => 1, 'commLocal' => 2, 'useType' => 3, 'commBuilder' => 4, 'manageCompany' => 5, 'managePay' => 6, 'buildArea' => 7, 'carbarnState' => 8, 'containPert' => 9, 'greenPert' => 10, 'houseTotal' => 11, 'sendDate' => 12, 'commIntro' => 13, 'commOther' => 14); $communityId = $communityInfo['baseInfo']['commId']; $communityLockInfo = Bll_Community_CommunityGardener::getCommunityWikiInfo($communityId); foreach ($checkCommunityCompleteFields as $infoType => $checkFields) { if (!isset($communityInfo[$infoType]) || empty($communityInfo[$infoType]) || !is_array($communityInfo[$infoType])) { return false; } foreach ($checkFields as $checkField) { if (isset($communityLockInfo[$lockMapping[$checkField]]) && $communityLockInfo[$lockMapping[$checkField]] != 1) { continue; } if (!isset($communityInfo[$infoType][$checkField]) || empty($communityInfo[$infoType][$checkField])) { return false; } } } /** 判断小区图片是否满10张 */ $communityImageCount = Model_Community_Attachment::getCommunityPictureCount($communityId); if ($communityImageCount < 10) { return false; } return true; }