Example #1
0
 public static function &getInstance()
 {
     if (self::$_instance === null) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
Example #2
0
 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' => '激活成功');
     }
 }
Example #3
0
 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();
         }
     }
 }
Example #4
0
 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;
 }
Example #5
0
 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();
 }
Example #6
0
 /**
  * 获取数据
  * @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);
 }
Example #7
0
 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);
 }
Example #8
0
 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);
 }
Example #9
0
 /**
  * 判断用户是否有使用房源库的权限
  * @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;
 }