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); }
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' => '报名失败'); } }
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); }
/** * 关小黑屋 * @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; } }