public static function &getInstance() { if (self::$_instance === null) { self::$_instance = new self(); } return self::$_instance; }
public function handle_request_internal() { $userId = $this->_params['userId']; $code = $this->_params['code']; //4.3之前版本的兼容性处理,此api之后将废弃 return array('status' => 'error', 'errcode' => Const_APIStatus::E_FYK_USER_ACTIVATION_CODE_CLOSE, 'message' => '此功能已关闭'); // TODO 校验用户是否存在 $brokerInfo = Model_Broker_AjkBrokerExtend::data_access()->filter('userId', $userId)->find_only(); if (!$brokerInfo) { throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS); } // TODO 校验激活码是否有效 $codeInfo = Model_Fyk_InvitationCodes::data_access()->filter(Model_Fyk_InvitationCodes::CODE, $code)->filter(Model_Fyk_InvitationCodes::BIND_TO, $userId)->get_all(); if (empty($codeInfo)) { return API_Result::create()->error()->errorCode('9999')->message('邀请码错误')->toArray(); } $userInfo = Model_Fyk_Users::data_access()->filter(Model_Fyk_Users::USER_ID, $userId)->find_only(); if ($userInfo->status != Model_Fyk_Users::INIT) { return API_Result::create()->error()->errorCode('9999')->message('房源库功能已经激活')->toArray(); } $userInfo->status = Model_Fyk_Users::INVITATION; if ($userInfo->save()) { //TODO 关注房源库公共账号-待补充 $msg = '{"title": "房源库小喵 小贝欢迎大家到来","date": "' . date('m') . '月' . date('d') . '日","img":"http://pic1.ajkimg.com/m/fc68794e8da91a3d03f80487b888a193/540x270x95.jpg","desc": "成交从好的房源开始,好的房源来自移动房源库!","url": "http://api.anjuke.com/web/chat/content?id=101_290_0","jsonVersion": "1"}'; $chatInfo = Bll_Mobile_ChatInfoBll::getInstance()->getChatInfo($brokerInfo->brokerId, 1); $chatId = $chatInfo['data']['chatId']; Bll_Mobile_ChatInfoBll::sendFykPublicMsg($chatId, $msg); return array('status' => 'ok', 'message' => '激活成功'); } }
public function handle_request_internal() { $mobile = $this->_params['mobile']; $brokerInfo = Model_Broker_AjkBrokerExtend::data_access()->filter('userMobile', $mobile)->find_only(); if (!$brokerInfo) { return API_Result::create()->error()->errorCode('9999')->message('经纪人不存在')->toArray(); } $userId = $brokerInfo->userId; $userAccountId = Bll_Fyk_Payment_User::getInstance()->getUserAccountId($userId); if (empty($userAccountId)) { return API_Result::create()->error()->message('没有用户支付中心ID')->toArray(); } $time = date('Y-m-d H:i:s'); $data['userId'] = $brokerInfo->userId; $data['brokerId'] = $brokerInfo->brokerId; $data['cityId'] = $brokerInfo->cityId; $data['createTime'] = $time; $insertUserId = Model_Fyk_Users::getInstance()->insertData($data); unset($data); if ($insertUserId) { do { $code = rand(100000, 999999); $arr = Model_Fyk_InvitationCodes::data_access()->load_field('id')->filter('code', $code)->get_row(); } while ($arr !== NULL); $data['code'] = $code; //生成邀请码 $data['bindTo'] = $userId; $data['createTime'] = $time; $insertInvitationCodeId = Model_Fyk_InvitationCodes::getInstance()->insertData($data); if ($insertInvitationCodeId) { return API_Result::create()->ok()->data(array('status' => 1))->toArray(); } } }
public static function getFykStatus($userId, $cityId) { $userInfo = Model_Fyk_Users::data_access()->filter(Model_Fyk_Users::USER_ID, $userId)->get_row(); $isOpen = 0; $status = -1; $message = '未开通房源库功能'; //判断城市开关 $cityInfo = Bll_Fyk_Prop_Manage::getInstance()->getCityConfig($cityId); if (empty($cityInfo)) { $data = array('isOpen' => 0, 'status' => -1, 'message' => '未开通房源库功能'); return $data; } if (!empty($userInfo)) { $isOpen = 1; $openDate = intval($userInfo['openDate']); $today = intval(date('Ymd', time())); if ($userInfo['status'] == Model_Fyk_Users::INIT) { $message = '房源库功能尚未激活'; $status = $userInfo['status']; } if ($userInfo['status'] == Model_Fyk_Users::INVITATION) { if ($today >= $openDate) { $message = '房源库功能已经激活'; $status = $userInfo['status']; } else { $message = '您已被关入小黑屋,暂不能使用房源库功能'; $status = Model_Fyk_Users::BLACK; } } } //4.3版本 对之前版本做的兼容处理 if ($status == -1) { $brokerInfo = Bll_Broker_User::getBrokerInfoByUserId($userId); if (!empty($brokerInfo)) { $companyId = intval($brokerInfo['companyId']); if (!empty($_SERVER['PG_TEST'])) { //如果是PG $blackList = APF::get_instance()->get_config('pg_blacklist_company_ids'); $userBlackList = array(); } else { $blackList = APF::get_instance()->get_config('blacklist_company_ids'); $userBlackList = APF::get_instance()->get_config('blacklist_user_ids'); } if (!in_array($companyId, $blackList) && !in_array($userId, $userBlackList)) { //若不在黑名单公司,则显示房源库入口 $isOpen = 1; $status = 0; $message = '房源库功能尚未激活'; } } } // TODO 获取用户激活状态 $data = array('isOpen' => $isOpen, 'status' => $status, 'message' => $message); return $data; }
public function handle_request_internal() { $userId = $this->_params['userId']; $mobile = $this->_params['mobile']; $status = $this->_params['status']; if (!$userId) { $brokerInfo = Model_Broker_AjkBrokerExtend::data_access()->filter('userMobile', $mobile)->find_only(); } else { $brokerInfo = Model_Broker_AjkBrokerExtend::data_access()->filter('userId', $userId)->find_only(); } if (!$brokerInfo) { throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS); } $userId = $brokerInfo->userId; try { Model_Fyk_Users::data_access()->set_field(Model_Fyk_Users::STATUS, $status)->filter(Model_Fyk_Users::USER_ID, $userId)->update(); } catch (Exception $e) { return API_Result::create()->error()->errorCode('9999')->message('修改房源库权限失败')->toArray(); } return API_Result::create()->ok()->data(array('message' => '修改成功'))->toArray(); }
/** * 获取数据 * @param $id * @param $status * @param string $orderby * @param string $sort * @param int $offSet * @param int $pageSize * @return array */ public function getDataByBiggerThanId($id, $status, $orderby = 'id', $sort = 'asc', $offSet = 0, $pageSize = 100) { return Model_Fyk_Users::getInstance()->getDataByBiggerThanId($id, $status, $orderby, $sort, $offSet, $pageSize); }
public function handle_request_internal() { $userId = $this->_params['userId']; $brokerId = $this->_params['brokerId']; $cityId = $this->_params['cityId']; // TODO 校验用户是否存在 $brokerInfo = Model_Broker_AjkBrokerExtend::data_access()->filter('userId', $userId)->find_only(); if (!$brokerInfo) { throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS); } //查询用户是否存在fyk_users表 $userInfo = Bll_Fyk_User_User::getInstance()->getUsersByUserId($userId); if (empty($userInfo)) { //不存在则插入 $data = array('userId' => $userId, 'brokerId' => $brokerId, 'cityId' => $cityId, 'status' => Model_Fyk_Users::INIT, 'openDate' => 0, 'activeTime' => 0, 'createTime' => date('Y-m-d h:i;s', time())); do { $tableId = Model_Fyk_Users::getInstance()->insertData($data); } while (empty($tableId)); } else { //判断用户是否未激活 $isInIt = $this->_isUserInIt($userInfo); if ($isInIt === false) { //该用户已激活,返回错误信息 return array('status' => 'error', 'errcode' => Const_APIStatus::E_FYK_USER_ALREADY_ACTIVATE, 'message' => '该用户已报名'); } } $result = array(); $result['hasActivity'] = 1; $result['isStart'] = 1; $result['canActivate'] = 1; $result['activateMessage'] = '立即激活'; if (Const_Fyk::ACTIVATE_START_HOUR < 12) { $result['startMessage'] = '每天' . '早上' . Const_Fyk::ACTIVATE_START_HOUR . '点开抢'; } else { $result['startMessage'] = '每天' . '下午' . Const_Fyk::ACTIVATE_START_HOUR . '点开抢'; } //获取当先正在进行的活动配置信息 $onActivateConfig = Bll_Fyk_User_User::getInstance()->getOnActivateConfig($cityId); if (empty($onActivateConfig)) { //如果没有正在进行的活动,则查询最近且最新的一条将要进行的活动 $result['isStart'] = 0; $result['canActivate'] = 0; $result['activateNumMessage'] = ''; $result['activateMessage'] = '暂未开启'; $nearActivateConfig = Bll_Fyk_User_User::getInstance()->getNearActivateConfig($cityId); if (empty($nearActivateConfig)) { //如果近期都没有活动,则返回固定文案 $result['hasActivity'] = 0; $result['activateMessage'] = '本期活动已结束'; $result['startMessage'] = ''; $result['dateMessage'] = '下期具体开放时间会另行通知!'; return array('status' => 'ok', 'data' => $result); } $result['dateMessage'] = $this->_assembleDate($nearActivateConfig['startDate'], $nearActivateConfig['endDate']); return array('status' => 'ok', 'data' => $result); } $result['dateMessage'] = $this->_assembleDate($onActivateConfig['startDate'], $onActivateConfig['endDate']); $nowHour = intval(date('H', time())); if ($nowHour < Const_Fyk::ACTIVATE_START_HOUR) { //当天有活动,但活动没开始 $result['isStart'] = 0; $result['canActivate'] = 0; $result['activateNumMessage'] = ''; $result['activateMessage'] = '暂未开启'; return array('status' => 'ok', 'data' => $result); } //当天有活动且活动开始 $today = intval(date('Ymd', time())); $activateInfo = Bll_Fyk_User_User::getInstance()->getActivateInfoByCityIdAndDate($cityId, $today); $activateNum = intval($activateInfo['activateNum']); $dayNum = intval($onActivateConfig['dayNum']); $num = $dayNum - $activateNum; $num = $num > 0 ? $num : 0; $result['activateNumMessage'] = '今日剩余名额: ' . $num; if ($activateNum >= $dayNum) { //本日报名人数达到上限 $result['canActivate'] = 0; $result['activateMessage'] = '今日已抢完'; return array('status' => 'ok', 'data' => $result); } return array('status' => 'ok', 'data' => $result); }
public function getBrokersWithinScope($lat, $lng, $radius, $limit) { $brokersWithScope = array(); $allBrokers = Model_Broker_BrokerActionCenter::getBrokerInfoByXY($lat, $lng, $radius, $limit); foreach ($allBrokers as $broker) { $brokersWithScope[$broker->brokerId] = $broker; } $brokerIds = array_keys($brokersWithScope); //vip 经纪人 fky_users表中status 为1的 $fykBrokers = Model_Fyk_Users::getUsersByBrokerId($brokerIds); //经纪人用户Id数组 $fykBrokerIds = $brokerUserIds = array(); foreach ($fykBrokers as $fykBroker) { $fykBrokerIds[] = $fykBroker['brokerId']; $brokerUserIds[$fykBroker['brokerId']] = $fykBroker['userId']; } foreach ($brokersWithScope as $brokerId => $broker) { //过滤非房源库的经纪人 if (!in_array($brokerId, $fykBrokerIds)) { unset($brokersWithScope[$brokerId]); unset($brokerUserIds[$brokerId]); } } //获取经纪人手机版本 $brokerVersions = $this->getBrokersVersion(array_keys($brokersWithScope)); $fykMinCV = APF::get_instance()->get_config('fyk_min_cv'); foreach ($brokersWithScope as $brokerId => $brokerInfo) { if (!isset($brokerVersions[$brokerId]) || $brokerVersions[$brokerId] < $fykMinCV) { unset($brokersWithScope[$brokerId]); unset($brokerUserIds[$brokerId]); } } return array($brokersWithScope, $brokerUserIds); }
/** * 判断用户是否有使用房源库的权限 * @param $userId * @return bool */ public function hasFykAccess($userId) { $hasAccess = false; $userInfo = Model_Fyk_Users::data_access()->filter(Model_Fyk_Users::USER_ID, $userId)->get_row(); if (!empty($userInfo)) { if ($userInfo['status'] == Model_Fyk_Users::INVITATION) { $today = intval(date('Ymd', time())); $openDate = intval($userInfo['openDate']); if ($today >= $openDate) { $hasAccess = true; } } } return $hasAccess; }