Răsfoiți Sursa

fb jump配置

Tree 3 zile în urmă
părinte
comite
360a888cbd

+ 8 - 15
app/Game/WebChannelConfig.php

@@ -14,6 +14,8 @@ define('SPECIAL_MODE_MAIL_BONUS', 32);//MAIL验证送钱
 define('SPECIAL_MODE_FIRSTPAY_OFF30', 64);//首冲打开30%bonus
 define('SPECIAL_MODE_DEBUG_EVENT', 128);//是否开启事件日志上保
 define('SPECIAL_MODE_REGION_UNIQUE', 256);//是否开启区域独立模式
+define('SPECIAL_MODE_FB_JUMP_LATER', 512);//fb内浏览器弹出时机靠后
+define('SPECIAL_MODE_FB_JUMP_LATER2', 1024);//fb内浏览器弹出时机靠后
 class WebChannelConfig extends Model
 {
     protected $table = 'webgame.WebChannelConfig';
@@ -22,21 +24,7 @@ class WebChannelConfig extends Model
     protected $keyType = 'int';
     protected $connection = 'mysql';
     protected $fillable = [
-        'Channel',
-        'PackageName',
-        'RegionID',
-        'Remarks',
-        'StateNo',
-        'SpecialMode',
-        'PlatformName',
-        'PlatformID',
-        'LoginOpen',
-        'RegOpen',
-        'BonusArr',
-        'ShadowChannel',
-        'LightApk',
-        'FullApk',
-        'PlatformToken',      // 每个渠道/像素对应的 FB Conversions API token
+        'Channel', 'PackageName', 'RegionID', 'Remarks', 'StateNo','SpecialMode', 'PlatformName', 'PlatformID', 'PlatformToken', 'LoginOpen','RegOpen','BonusArr','ShadowChannel','LightApk','FullApk'
     ];
 
     private static $key='web_channel_config:';
@@ -107,6 +95,11 @@ class WebChannelConfig extends Model
     {
         return ($this->SpecialMode&SPECIAL_MODE_DEBUG_EVENT)==SPECIAL_MODE_DEBUG_EVENT;
     }
+    public function isFbJumpLater(){
+        if(($this->SpecialMode&SPECIAL_MODE_FB_JUMP_LATER2)==SPECIAL_MODE_FB_JUMP_LATER2)return 2;
+        if(($this->SpecialMode&SPECIAL_MODE_FB_JUMP_LATER)==SPECIAL_MODE_FB_JUMP_LATER)return 1;
+        return 0;
+    }
     public function isRegionUnique()
     {
         if(($this->SpecialMode&SPECIAL_MODE_REGION_UNIQUE)==SPECIAL_MODE_REGION_UNIQUE&&!empty($this->RegionID)){

+ 82 - 5
app/Http/Controllers/Admin/WebChannelConfigController.php

@@ -31,6 +31,8 @@ class WebChannelConfigController
         64 => 'FIRSTPAY_OFF30 (首冲打开30%bonus)',
         128 => 'DEBUG_EVENT (是否开启事件日志上报)',
         256 => 'REGION_UNIQUE (是否开启区域独立模式)',
+        512 => 'FB_JUMP_LATER (fb内浏览器弹出时机在绑定手机后)',
+        1024 => 'FB_JUMP_LATER2 (fb内浏览器弹出在点击提现后)',
     ];
 
     public function index(Request $request)
@@ -51,12 +53,30 @@ class WebChannelConfigController
 
         $regions = WebRegionConfig::all();
         $regionMap = [];
+        $regionUrlMap = [];
         foreach ($regions as $region) {
+            $logoUrl = $region->DomainUrl . $region->LogoUrl;
+            $isSvg = !empty($region->LogoUrl) && strtolower(pathinfo($region->LogoUrl, PATHINFO_EXTENSION)) === 'svg';
+
             $regionMap[$region->RegionID] = [
                 'color' => $this->groupColors[$region->GroupID] ?? '#000000',
-                'logo' => $region->DomainUrl . $region->LogoUrl,
-                'has_logo' => !empty($region->LogoUrl)
+                'logo' => $logoUrl,
+                'has_logo' => !empty($region->LogoUrl),
+                'is_svg' => $isSvg
             ];
+            // 构建区域的 URL 映射
+            $regionUrlMap[$region->RegionID] = $region->DomainUrl;
+        }
+
+        // 为每条记录计算网站地址
+        $channelUrls = [];
+        foreach ($list as $item) {
+            $url = '';
+            // 优先:如果 WebChannelConfig 绑定了 RegionID,直接使用该 Region 的 URL
+            if (!empty($item->RegionID) && isset($regionUrlMap[$item->RegionID])) {
+                $url = rtrim($regionUrlMap[$item->RegionID], '/') . '/?c=' . $item->Channel;
+            }
+            $channelUrls[$item->ID] = $url;
         }
 
         return view('admin.web_channel_config.index', [
@@ -64,6 +84,7 @@ class WebChannelConfigController
             'channel' => $channel,
             'packageName' => $packageName,
             'regionMap' => $regionMap,
+            'channelUrls' => $channelUrls,
         ]);
     }
 
@@ -116,8 +137,8 @@ class WebChannelConfigController
         $data['LightApk'] = $data['LightApk'] ?? '';
         $data['FullApk'] = $data['FullApk'] ?? '';
         $data['PlatformID'] = $data['PlatformID'] ?? '';
-        $data['RegionID'] = $data['RegionID'] ?? '';
         $data['PlatformToken'] = $data['PlatformToken'] ?? '';
+        $data['RegionID'] = $data['RegionID'] ?? '';
 
         $config = WebChannelConfig::create($data);
 
@@ -154,7 +175,7 @@ class WebChannelConfigController
     {
         $data = $request->all();
         $info = WebChannelConfig::findOrFail($id);
-        
+
         $validator = Validator::make($data, [
             'PackageName' => 'required|string|max:200',
         ]);
@@ -193,9 +214,9 @@ class WebChannelConfigController
         $data['LightApk'] = $data['LightApk'] ?? '';
         $data['FullApk'] = $data['FullApk'] ?? '';
         $data['PlatformID'] = $data['PlatformID'] ?? '';
+        $data['PlatformToken'] = $data['PlatformToken'] ?? '';
         $data['RegionID'] = $data['RegionID'] ?? '';
         $data['PlatformName'] = $data['PlatformName'] ?? '';
-        $data['PlatformToken'] = $data['PlatformToken'] ?? '';
 
         $oldRegionID = $info->RegionID;
         $oldChannel = $info->Channel;
@@ -268,4 +289,60 @@ class WebChannelConfigController
 
         return apiReturnSuc();
     }
+
+    public function remarks(Request $request, $id)
+    {
+        $remark = $request->input('remark', '');
+
+        // 查找 WebChannelConfig 记录
+        $config = WebChannelConfig::find($id);
+        if (!$config) {
+            return apiReturnFail('记录不存在');
+        }
+
+        $channel = $config->Channel;
+        $packageName = $config->PackageName;
+
+        // 更新 WebChannelConfig 的备注
+        if (WebChannelConfig::where('Channel', $channel)->exists()) {
+            WebChannelConfig::where('Channel', $channel)->update(['Remarks' => $remark]);
+        } else {
+            // 如果不存在,使用渠道100的配置作为模板创建新记录
+            $templateConfig = WebChannelConfig::where('Channel', 100)->first();
+            if ($templateConfig) {
+                $configArray = $templateConfig->toArray();
+                $configArray['Remarks'] = $remark;
+                $configArray['Channel'] = $channel;
+                $configArray['PackageName'] = $packageName;
+                unset($configArray['ID']);
+                WebChannelConfig::insert($configArray);
+            }
+        }
+
+        // 同步更新 dcat-admin.channel 表
+        $dcatChannel = DB::connection('mysql')->table('dcat-admin.channel')->where('channel', $channel);
+        if ($dcatChannel->exists()) {
+            $dcatChannel->update(['channel_name' => $remark]);
+        } else {
+            DB::connection('mysql')->table('dcat-admin.channel')->insert([
+                'channel' => $channel,
+                'channel_name' => $remark,
+                'package_name' => '',
+                'remark' => ''
+            ]);
+        }
+
+        // 同步更新 dcat-admin.channel_ownership 表
+        $dcatChannelOwnership = DB::connection('mysql')->table('dcat-admin.channel_ownership')->where('channel', $channel);
+        if ($dcatChannelOwnership->exists()) {
+            $dcatChannelOwnership->update(['name' => $remark]);
+        } else {
+            DB::connection('mysql')->table('dcat-admin.channel_ownership')->insert([
+                'channel' => $channel,
+                'name' => $remark
+            ]);
+        }
+
+        return apiReturnSuc('备注更新成功');
+    }
 }

+ 3 - 1
app/Http/Controllers/Game/LoginController.php

@@ -846,8 +846,10 @@ class LoginController extends Controller
         if (!empty($Phone)) {
 
             $config = RouteService::getChannelConfig($request);
+            $region=$config->isRegionUnique();
+            $regionID = $request?$request->user()?$request->user()->RegionID:$region:$region;
             $isExist = GlobalUserInfo::query()
-                ->where('RegionID', $config->isRegionUnique())
+                ->where('RegionID', $regionID)
                 ->where(function ($query) use ($Phone, $OrgPhone) {
                     $query->where("Phone", $Phone)->orWhere('Accounts', $OrgPhone);
                 })

+ 1 - 0
app/Http/Controllers/Game/WebRouteController.php

@@ -291,6 +291,7 @@ class WebRouteController extends Controller
             'openRelief'=>$firstBonus,
             'popBindPhone'=>1,
             'popPwaBonus'  => $popPwaBonus,
+            'jumplater'    => $config->isFbJumpLater(),
             'download'=>['light'=>$config->LightApk,'full'=>$config->FullApk,'bonus'=>$config->BONUS_PWA()],
             'registerOpen'=>$config->RegOpen??env('CONFIG_REG_OPEN','sms,mail'),//id,phone,sms,mail,guest
             'loginOpen'=>$config->LoginOpen??'id,phone,sms,mail,guest',

+ 4 - 0
routes/api.php

@@ -325,6 +325,10 @@ Route::any('/aipay/notify', 'Api\AiPayController@notify');
 Route::any('/aipay/payout_notify', 'Api\AiPayController@cash_notify');
 Route::any('/aipay/return', 'Api\AiPayController@sync_notify');
 
+// FizzBoltPay支付渠道
+Route::any('/fizzboltpay/notify', 'Api\FizzBoltPayController@notify');
+Route::any('/fizzboltpay/return', 'Api\FizzBoltPayController@sync_notify');
+
 // PagYeepPay支付渠道
 Route::any('/pagyeepay/notify', 'Api\PagYeepPayController@notify');
 Route::any('/pagyeepay/payout_notify', 'Api\PagYeepPayController@cash_notify');