Ejemplo n.º 1
0
 public static function &getInstance()
 {
     if (self::$_instance === null) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
Ejemplo n.º 2
0
 public function handle_request_internal()
 {
     $userId = $this->_params['userId'];
     $result = array();
     $today = intval(date('Ymd', time()));
     $punishInfo = Bll_Fyk_User_User::getInstance()->getPunishIfoByUserIdAndDate($userId, $today);
     $result['dateMessage'] = '';
     $result['reasonMessage'] = '';
     if ($punishInfo) {
         $time = strtotime($punishInfo['openDate']) - strtotime(date('Ymd', time()));
         $day = $time / 86400;
         $result['dateMessage'] = $day . '天后重见天日~';
         $result['reasonMessage'] = '惩罚原因: ' . $punishInfo['punishReason'];
     }
     return array('status' => 'ok', 'data' => $result);
 }
Ejemplo n.º 3
0
 public function handle_request_internal()
 {
     $userId = $this->_params['userId'];
     $brokerId = $this->_params['brokerId'];
     $cityId = $this->_params['cityId'];
     //查询用户是否存在fyk_users表
     $userInfo = Bll_Fyk_User_User::getInstance()->getUsersByUserId($userId);
     if (empty($userInfo)) {
         //不存在则报错
         return array('status' => 'error', 'errcode' => Const_APIStatus::E_FYK_USER_NO_ACCESS, 'message' => '该用户无房源库使用资格');
     } else {
         //判断用户是否未激活
         $isInIt = $this->_isUserInIt($userInfo);
         if ($isInIt === false) {
             //该用户已激活,返回错误信息
             return array('status' => 'error', 'errcode' => Const_APIStatus::E_FYK_USER_ALREADY_ACTIVATE, 'message' => '该用户已报名');
         }
     }
     //查询缓存获得每日报名上限
     $today = intval(date('Ymd', time()));
     $dayNumCacheKey = $this->_getDayNumCacheKey($cityId, $today);
     $cache = APF_Cache_Factory::get_instance()->get_memcache();
     $dayNum = intval($cache->get($dayNumCacheKey));
     if (empty($dayNum) || !is_numeric($dayNum)) {
         //如果查不到缓存,则查数据库并设置缓存
         //获取当先正在进行的活动配置信息
         $onActivateConfig = Bll_Fyk_User_User::getInstance()->getOnActivateConfig($cityId);
         if (empty($onActivateConfig)) {
             //查询不到活动信息,则报错
             return array('status' => 'error', 'errcode' => Const_APIStatus::E_FYK_USER_NO_ACTIVITY, 'message' => '当前无有效活动');
         }
         //缓存每日报名上限
         $dayNum = intval($onActivateConfig['dayNum']);
         $cache->set($dayNumCacheKey, $dayNum, 0, 86400);
     }
     $activate = Bll_Fyk_User_User::getInstance()->updateActivateNum($cityId, $today, $dayNum);
     if ($activate) {
         //报名成功,激活此用户
         $userInfo->status = Model_Fyk_Users::INVITATION;
         $userInfo->activeTime = date('Y-m-d h:i:s', time());
         $userInfo->save();
         return array('status' => 'ok', 'message' => '报名成功');
     } else {
         //报名失败
         return array('status' => 'error', 'errcode' => Const_APIStatus::E_FYK_USER_ACTIVATE_FAILURE, 'message' => '报名失败');
     }
 }
Ejemplo n.º 4
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);
 }
Ejemplo n.º 5
0
 /**
  * 关小黑屋
  * @param $audit
  * @return bool
  */
 private function _detention($audit)
 {
     $openTime = strtotime('+' . Const_Fyk::DETENTION_TIME . ' day');
     $openDate = intval(date('Ymd', $openTime));
     do {
         $result = Bll_Fyk_User_User::getInstance()->updateOpenDate($audit['userId'], $openDate);
     } while ($result != false);
     $punishId = $this->_insertDataByType($audit, Model_Fyk_UserPunish::DETENTION);
     return $punishId;
 }
 /**
  * 获取需要跑的数据
  * @return array
  */
 public function getRequestData()
 {
     $status = Model_Fyk_Users::INIT;
     $data = Bll_Fyk_User_User::getInstance()->getDataByBiggerThanId($this->lastJobId, $status, 'id', 'asc', $this->lastJobId, $this->limit);
     if (empty($data)) {
         echo "已经没有待处理数据了";
         $this->setMyFlag(0, 'over');
         $this->setShStopFlag();
         return array();
     } else {
         return $data;
     }
 }