exists()) { $code = substr( base_convert(rand(604661760, 1027924992), 10, 36), 0, 6); // 生成新码,确保唯一 } return $code; } // 为新用户创建默认的 Campaign 和 Code public static function createDefaultCampaign($GlobalUID, $userID=null) { $defaultCampaign = 'Default'; if(!$userID){ $userID=intval(explode('-', $GlobalUID)[3]); } $defaultCode = self::generateUniqueCode($userID); $user=GlobalUserInfo::getGameUserInfo('GlobalUID', $GlobalUID); if(!$user&&GlobalUserInfo::$me&&GlobalUserInfo::$me->GlobalUID==$GlobalUID){ $user=GlobalUserInfo::$me; } return self::create([ 'GlobalUID' => $GlobalUID, 'UserID' => $user->UserID, 'Campaign' => $defaultCampaign, 'Channel' => $user->Channel, 'Code' => $defaultCode ]); } // 为新用户创建默认的 Campaign 和 Code public static function getDefaultCampaign($GlobalUID) { $link=self::query()->where('GlobalUID', $GlobalUID)->where('Campaign','Default')->first(); if(!$link){ return self::createDefaultCampaign($GlobalUID); } // $link=self::query()->where('GlobalUID', $GlobalUID)->where('Campaign','Default')->first(); return $link; } public static function getByCode($code) { return self::query()->where('Code', $code)->first(); } public static function createCampaign($GlobalUID,$ActName,$Campaign) { $link=self::getDefaultCampaign($GlobalUID); return self::create([ 'GlobalUID' => $GlobalUID, 'UserID' => $link->UserID, 'Channel' => $link->Channel, 'Campaign' => $Campaign, 'LinkActName' => $ActName, 'Code' => self::generateUniqueCode() ]); } public static function getCampaign($GlobalUID,$ActName='',$Campaign=null) { if(empty($ActName)&&!$Campaign)return self::getDefaultCampaign($GlobalUID); if(!$Campaign)$Campaign=$ActName; $link=self::query()->where('GlobalUID', $GlobalUID)->where('Campaign', $Campaign)->first(); if(!$link){ return self::createCampaign($GlobalUID,$ActName,$Campaign); } // $link=self::query()->where('GlobalUID', $GlobalUID)->where('Campaign', $Campaign)->first(); return $link; } }