public function actionAdd() { $commitUserID = Yii::app()->user->id; //获取用户ID if (empty($commitUserID)) { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => '请登录后再分享App')); // ReturnInfo($a,$b,$c) 传入的$b是什么类型,返回到js 的data就是什么类型 Yii::app()->end(); // return; } if (!Yii::app()->request->isPostRequest) { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => '数据请求方式错误')); Yii::app()->end(); } $appUrl = trim(Yii::app()->request->getParam('appUrl', '')); // 前台trim()之后,后台也要trim() 防止注入 if (empty($appUrl)) { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => 'App链接不能为空')); Yii::app()->end(); } $appHost = parse_url($appUrl); $domains = Source::getSourceDomains(); if (!isset($appHost['host']) || !in_array($appHost['host'], $domains)) { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => 'App链接有误,请参考填写规则')); Yii::app()->end(); } $userInfo = array(); $userInfo = unserialize(Yii::app()->cache->get('user_' . $commitUserID)); $md5AppUrl = md5($appUrl); if (isset($userInfo['share_list']) && in_array($md5AppUrl, $userInfo['share_list'])) { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => '您已经提交过该App了')); Yii::app()->end(); } $explain = Yii::app()->request->getParam('explain'); $officialUrl = Yii::app()->request->getParam('url'); $link = new AppInfoList(); $link->SourceId = Source::getSourceByDomain($appUrl); $link->CommitUserId = $commitUserID; $link->Remarks = empty($explain) ? '' : $explain; $link->AppUrl = $appUrl; $link->CommitTime = date('Y-m-d H:i:s'); $link->OfficialWeb = empty($officialUrl) ? '' : $officialUrl; $link->Status = 1; $link->Sort = $link->model()->getMaxSort() + 1; if ($link->save()) { if (!isset($userInfo['share_list']) || empty($userInfo['share_list'])) { $userInfo['share_list'] = array(); } $userInfo['share_list'][] = $md5AppUrl; Yii::app()->cache->set('user_' . $commitUserID, serialize($userInfo)); echo new ReturnInfo(RET_SUC, 0); } else { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => $link->getErrors())); } }
public function actionAddApp() { $commitUserID = $this->apiUser->ID; if (empty($commitUserID)) { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => '请登录后再分享App')); Yii::app()->end(); } if (!Yii::app()->request->isPostRequest) { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => '数据请求方式错误')); Yii::app()->end(); } $appUrl = Yii::app()->request->getParam('appUrl'); if (empty($appUrl)) { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => 'App链接不能为空')); Yii::app()->end(); } $app = AppInfoList::model()->findByAttributes(array('CommitUserId' => $commitUserID, 'AppUrl' => $appUrl)); if ($app instanceof AppInfoList) { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => '您已经提交过该App了')); Yii::app()->end(); } $explain = Yii::app()->request->getParam('explain'); $officialUrl = Yii::app()->request->getParam('url'); $link = new AppInfoList(); $link->SourceId = Source::getSourceByDomain($appUrl); $link->CommitUserId = $commitUserID; $link->Remarks = empty($explain) ? '' : $explain; $link->AppUrl = $appUrl; $link->CommitTime = date('Y-m-d H:i:s', time()); $link->OfficialWeb = empty($officialUrl) ? '' : $officialUrl; $link->Status = 1; $link->Sort = $link->model()->getMaxSort() + 1; if ($link->save()) { echo new ReturnInfo(RET_SUC, 0); } else { echo new ReturnInfo(RET_SUC, array('code' => -1, 'msg' => $link->getErrors())); } }
public function actionFakeShare() { $this->_log->setLogFile('share.log'); if ($this->_isFake(self::SHARE_NUM_MIN, self::SHARE_NUM_MAX)) { $hasFilteredModel = AppHasFiltered::model()->findAll(array('condition' => 'Status=1', 'order' => new CDbExpression('RAND()'), 'limit' => 1)); if (!$hasFilteredModel || !$hasFilteredModel[0]) { return; } $userId = $this->_getRandomUserId(); if (!$userId) { return; } $hasFiltered = $hasFilteredModel[0]; $date = date('Y-m-d H:i:s'); $appInfoModel = new AppInfoList(); $appInfoModel->PushId = $hasFiltered->PushId; $appInfoModel->AppId = $hasFiltered->AppId; $appInfoModel->SourceId = $hasFiltered->SourceId; $appInfoModel->AppName = $hasFiltered->AppName; $appInfoModel->MainCategory = $hasFiltered->MainCategory; $appInfoModel->CommitUserId = $userId; $appInfoModel->IconUrl = $hasFiltered->IconUrl; $appInfoModel->AppUrl = $hasFiltered->AppUrl; $appInfoModel->ScreenShoot = $hasFiltered->ScreenShoot; $appInfoModel->VideoUrl = $hasFiltered->VideoUrl; $appInfoModel->UpdateTime = $date; $appInfoModel->CommitTime = $date; $appInfoModel->OfficialWeb = $hasFiltered->OfficialWeb; $appInfoModel->AppInfo = $hasFiltered->AppInfo; $appInfoModel->ApkUrl = $hasFiltered->ApkUrl; $appInfoModel->Sort = $appInfoModel->model()->getMaxSort() + 1; $appInfoModel->ShareType = 1; $hasFiltered->Status = 0; $transaction = Yii::app()->db->beginTransaction(); try { if (!$appInfoModel->save() || !$hasFiltered->save()) { throw new Exception(); } $this->_log->log('userId#' . $userId . '#于#' . $date . '#分享App PushId#' . $hasFiltered->PushId . '#'); $transaction->commit(); } catch (Exception $e) { $transaction->rollBack(); } //线上请求baidu sitemap api if (CommonFunc::getProjectEnv() == 'online') { $this->baiduSiteMap($appInfoModel->Id); } } }
static function up(AppInfoList $app, User $user, $isUpped) { if (!is_bool($isUpped)) { throw new ErrorException('Argument 3 passed to ' . __CLASS__ . '::' . __FUNCTION__ . '() that must be a boolean'); } $appID = $app->Id; $userID = $user->ID; $linkKey = 'link_' . $appID; $userKey = 'user_' . $userID; $datetime = date('Y-m-d H:i:s'); $appArray = CommonFunc::getRedis($linkKey); if (empty($appArray)) { $appArray = array('user' => array(), 'count' => 0); } $memberArray = CommonFunc::getRedis($userKey, 'like'); if ($isUpped) { if (isset($appArray['user'][$userID])) { throw new ErrorException('你已经赞过该App'); } if (!isset($appArray['count'])) { $appArray['count'] = 0; } $appArray['count'] += 1; $appArray['user'][$userID] = array('ID' => $userID, 'time' => $datetime, 'status' => $user->Status); CommonFunc::setRedis($linkKey, '', $appArray); $memberArray[$appID] = $appID; CommonFunc::setRedis($userKey, 'like', $memberArray); $app->Up += 1; } else { if (!isset($appArray['user'][$userID])) { throw new ErrorException('取消赞失败'); } if (isset($appArray['user'][$userID])) { $appArray['count'] -= 1; unset($appArray['user'][$userID]); CommonFunc::setRedis($linkKey, '', $appArray); $app->Up -= 1; } if (isset($memberArray[$appID])) { unset($memberArray[$appID]); CommonFunc::setRedis($userKey, 'like', $memberArray); } } if ($app->save()) { return true; } else { throw new CDbException($app->getErrors()); } }