示例#1
0
 public static function ad_update(\ApiParam $params)
 {
     $user = User::user_show($params);
     $category = $params->categoryEnglishName ? \Category::loadByName($params->categoryEnglishName) : null;
     $city = $params->cityEnglishName ? \City::loadByName($params->cityEnglishName) : null;
     $ad = self::buildAd($params, $user);
     //@坑 太坑爹了吧,方法叫ad_update,里面却还区分insert和update,这不是挂羊头卖狗肉么。 By yubing
     $isBianji = isset($ad->id);
     //Api Attributes
     $ad->set('postMethod', $params->api_key);
     if (!$isBianji) {
         $ad->set('uuid', $params->uuid);
     }
     $ad->set('udid', $params->udid);
     if (in_array($params->api_key, array('api_mobile_android', 'baixing_ios', 'api_iosbaixing'))) {
         $ad->set('uuid', $params->udid);
     }
     // 过滤非法的位置信息
     if (is_numeric($params->lat) && is_numeric($params->lng) && ($params->lat > -180 && $params->lat < 180) && ($params->lng > -180 && $params->lng < 180)) {
         $ad->set('lat', $params->lat);
         $ad->set('lng', $params->lng);
     }
     $i = 0;
     foreach ($params as $key => $value) {
         if (substr($key, 0, 4) == 'api_') {
             $ad->set($key, $value);
             $i++;
         }
         if ($i >= 50) {
             break;
         }
     }
     //Save Ad
     $ad = \Fabu_Logic::saveAd($ad, $user);
     new \Action\PostAd($ad);
     $ruleType = $isBianji ? \RuleSet::TYPE_API_MODIFY : \RuleSet::TYPE_API_ALL;
     //bobo加的,确保WAP站上来的信息都走所有的Rule
     if ($ad->get('postMethod') == 'api_wap') {
         $ruleType = $isBianji ? \RuleSet::TYPE_WEB_MODIFY : \RuleSet::TYPE_WEB_ALL;
     }
     try {
         $ad->checkMe($ruleType);
     } catch (\Exception $e) {
         return array('adId' => $ad->id, 'code' => $e->getCode(), 'msg' => $e->getMessage());
     }
     if (!$params->mutiResponse) {
         return $ad->id;
     } else {
         if ($ad->status != \Ad::STATUS_ACTIVE) {
             return array('adId' => $ad->id, 'code' => '505', 'msg' => $ad->get('lastOperation'), 'tips' => self::generateTips($ad->get('lastOperation'), $user, $category, $city));
         } else {
             return array('adId' => $ad->id, 'code' => 0, 'msg' => '发布成功');
         }
     }
 }
示例#2
0
 public static function mobile_get_quota_info(\ApiParam $params)
 {
     $user = new \User();
     $user->load($params->userId);
     $city = \City::loadByName($params->cityEnglishName);
     $category = \Category::loadByName($params->categoryEnglishName);
     if (!$user || !$city || !$category) {
         throw new \Exception('参数错误', 777);
     }
     $quotaInfo = \Fabu_Logic::quotaInfo($user, $city, $category);
     $quotaInfo['message'] = strip_tags($quotaInfo['message']);
     $result = array('quota' => $quotaInfo);
     return self::composeResponse(0, 'succeed', $result);
 }