Эх сурвалжийг харах

修复监测链接没有小游戏的匹配

ith5 6 сар өмнө
parent
commit
47b6726863

+ 51 - 0
app/v1/controller/advert/CallbackPushLogController.php

@@ -0,0 +1,51 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\controller\advert;
+
+use plugin\saiadmin\basic\BaseController;
+use app\v1\logic\advert\CallbackPushLogLogic;
+use app\v1\validate\advert\CallbackPushLogValidate;
+use support\Request;
+use support\Response;
+
+/**
+ * 媒体上报日志控制器
+ */
+class CallbackPushLogController extends BaseController
+{
+    /**
+     * 构造函数
+     */
+    public function __construct()
+    {
+        $this->logic = new CallbackPushLogLogic();
+        $this->validate = new CallbackPushLogValidate;
+        parent::__construct();
+    }
+
+    /**
+     * 数据列表
+     * @param Request $request
+     * @return Response
+     */
+    public function index(Request $request): Response
+    {
+        $where = $request->more([
+            ['user_name', ''],
+            ['agent_id', ''],
+            ['site_id', ''],
+            ['reg_time', ''],
+            ['add_time', ''],
+            ['step', ''],
+            ['media_id', ''],
+        ]);
+        $query = $this->logic->search($where);
+        $data = $this->logic->getList($query);
+        return $this->success($data);
+    }
+
+}

+ 57 - 0
app/v1/controller/center/GamePayChannelController.php

@@ -0,0 +1,57 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\controller\center;
+
+use plugin\saiadmin\basic\BaseController;
+use app\v1\logic\center\GamePayChannelLogic;
+use app\v1\validate\center\GamePayChannelValidate;
+use support\Request;
+use support\Response;
+
+/**
+ * 游戏支付渠道控制器
+ */
+class GamePayChannelController extends BaseController
+{
+    /**
+     * 构造函数
+     */
+    public function __construct()
+    {
+        $this->logic = new GamePayChannelLogic();
+        $this->validate = new GamePayChannelValidate;
+        parent::__construct();
+    }
+
+    /**
+     * 数据列表
+     * @param Request $request
+     * @return Response
+     */
+    public function index(Request $request): Response
+    {
+        $where = $request->more([
+            ['game_id', ''],
+        ]);
+        $query = $this->logic->search($where);
+        $data = $this->logic->getList($query);
+
+        $data['data'] = $this->logic->trandformListColumn($data['data'], ['game', 'game_pay_channel']);
+        return $this->success($data);
+    }
+
+    /**
+     * 获取支付主体
+     * @param Request $request
+     * @return Response
+     */
+    public function getPaySubject(): Response
+    {
+        $data = $this->logic->getPaySubject();
+        return $this->success($data);
+    }
+}

+ 14 - 9
app/v1/logic/advert/AgentSiteLogic.php

@@ -300,11 +300,11 @@ class AgentSiteLogic extends BaseLogic
      */
     public function linkDebugGenerateParams($game,$data)
     {
-
-        $base_url = 'https://tj.yunfanyouxi.com/api/';
+        // .env中获取
+        $baseUrl = env('WATCH_LINK_BASE_API');
 
         // 广告位信息:游戏ID_渠道ID_广告位ID
-        $site_info = $game['id'].'_'.$data['agent_id'].'_'.$data['site_id'];
+        $siteInfo = $game['id'].'_'.$data['agent_id'].'_'.$data['site_id'];
 
         // appid
         $appid = $game['ios_appid'];
@@ -315,28 +315,33 @@ class AgentSiteLogic extends BaseLogic
         // 点击监测链接
         $click_url = '';
 
+
         // 根据媒体ID读取监测链接
         $media_info = $this->mediaListLogic->read($data['media_id']);
+     
         if($media_info && $game['os'] ==1){
             $click_url = $media_info['andurl'];
-            $click_url = str_replace('__SITE__', $site_info, $click_url);
+            $click_url = str_replace('__SITE__', $siteInfo, $click_url);
         } else if($media_info && $game['os'] ==2){
             $click_url = $media_info['iosurl'];
-            $click_url = str_replace('__SITE__', $site_info, $click_url);
+            $click_url = str_replace('__SITE__', $siteInfo, $click_url);
         } else if($media_info && ($game['os'] ==3 || $game['os'] ==4)){
             $click_url = $media_info['xyxurl'];
-            $click_url = str_replace('__YFINFO__', $site_info, $click_url);
+            // $media_info['xyxurl'] 可能没有值
+            if($click_url = $media_info['xyxurl']){
+                 $click_url = str_replace('__YFINFO__', $siteInfo, $click_url);
+            }
         }
 
         // 小游戏路径参数
-        $wxgamepro ="?media_id=".$site_info."&ext_channel=".$media_info['channel_name'].$media_info['appleturl'];
+        $wxgamepro ="?media_id=".$siteInfo."&ext_channel=".$media_info['channel_name'].$media_info['appleturl'];
 
 
         return [
-            'site_info' => $site_info,
+            'site_info' => $siteInfo,
             'appid' => $appid,
             'package_name' => $package_name,
-            'click_url' => $base_url.$click_url,
+            'click_url' => $baseUrl.$click_url,
             'wxgamepro' => $wxgamepro,
         ];
     }

+ 27 - 0
app/v1/logic/advert/CallbackPushLogLogic.php

@@ -0,0 +1,27 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\logic\advert;
+
+use plugin\saiadmin\basic\BaseLogic;
+use plugin\saiadmin\exception\ApiException;
+use plugin\saiadmin\utils\Helper;
+use app\v1\model\advert\CallbackPushLog;
+
+/**
+ * 媒体上报日志逻辑层
+ */
+class CallbackPushLogLogic extends BaseLogic
+{
+    /**
+     * 构造函数
+     */
+    public function __construct()
+    {
+        $this->model = new CallbackPushLog();
+    }
+
+}

+ 38 - 0
app/v1/logic/center/GamePayChannelLogic.php

@@ -0,0 +1,38 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\logic\center;
+
+use plugin\saiadmin\basic\BaseLogic;
+use plugin\saiadmin\exception\ApiException;
+use plugin\saiadmin\utils\Helper;
+use app\v1\model\center\GamePayChannel;
+use support\think\Db;
+
+/**
+ * 游戏支付渠道逻辑层
+ */
+class GamePayChannelLogic extends BaseLogic
+{
+    /**
+     * 构造函数
+     */
+    public function __construct()
+    {
+        $this->model = new GamePayChannel();
+    }
+
+    /**
+     * 获取支付主体
+     * @return array
+     */
+    public function getPaySubject()
+    {
+        $result = Db::connect('db_center')->name('pay_channel')->where('status', 1)->select()->toArray();
+        return $result;
+    }
+
+}

+ 58 - 0
app/v1/model/advert/CallbackPushLog.php

@@ -0,0 +1,58 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\model\advert;
+
+use plugin\saiadmin\basic\BaseNormalModel;
+
+/**
+ * 媒体上报日志模型
+ */
+class CallbackPushLog extends BaseNormalModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 数据库表名称
+     * @var string
+     */
+    protected $table = 'callback_push_log';
+
+    /**
+     * 数据库连接
+     * @var string
+     */
+    protected $connection = 'db_advert_log';
+
+    /**
+     * 用户名 搜索
+     */
+    public function searchUserNameAttr($query, $value)
+    {
+        $query->where('user_name', 'like', '%'.$value.'%');
+    }
+
+    /**
+     * 注册时间 搜索
+     */
+    public function searchRegTimeAttr($query, $value)
+    {
+        $query->whereTime('reg_time', 'between', $value);
+    }
+
+    /**
+     * 上报时间 搜索
+     */
+    public function searchAddTimeAttr($query, $value)
+    {
+        $query->whereTime('add_time', 'between', $value);
+    }
+
+}

+ 34 - 0
app/v1/model/center/GamePayChannel.php

@@ -0,0 +1,34 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\model\center;
+
+use plugin\saiadmin\basic\BaseNormalModel;
+
+/**
+ * 游戏支付渠道模型
+ */
+class GamePayChannel extends BaseNormalModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 数据库表名称
+     * @var string
+     */
+    protected $table = 'game_pay_channel';
+
+    /**
+     * 数据库连接
+     * @var string
+     */
+    protected $connection = 'db_center';
+
+}

+ 38 - 0
app/v1/validate/advert/CallbackPushLogValidate.php

@@ -0,0 +1,38 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\validate\advert;
+
+use think\Validate;
+
+/**
+ * 媒体上报日志验证器
+ */
+class CallbackPushLogValidate extends Validate
+{
+    /**
+     * 定义验证规则
+     */
+    protected $rule =   [
+    ];
+
+    /**
+     * 定义错误信息
+     */
+    protected $message  =   [
+    ];
+
+    /**
+     * 定义场景
+     */
+    protected $scene = [
+        'save' => [
+        ],
+        'update' => [
+        ],
+    ];
+
+}

+ 42 - 0
app/v1/validate/center/GamePayChannelValidate.php

@@ -0,0 +1,42 @@
+<?php
+// +----------------------------------------------------------------------
+// | saiadmin [ saiadmin快速开发框架 ]
+// +----------------------------------------------------------------------
+// | Author: your name
+// +----------------------------------------------------------------------
+namespace app\v1\validate\center;
+
+use think\Validate;
+
+/**
+ * 游戏支付渠道验证器
+ */
+class GamePayChannelValidate extends Validate
+{
+    /**
+     * 定义验证规则
+     */
+    protected $rule =   [
+        'game_id' => 'require',
+    ];
+
+    /**
+     * 定义错误信息
+     */
+    protected $message  =   [
+        'game_id' => '游戏必须填写',
+    ];
+
+    /**
+     * 定义场景
+     */
+    protected $scene = [
+        'save' => [
+            'game_id',
+        ],
+        'update' => [
+            'game_id',
+        ],
+    ];
+
+}

+ 13 - 1
plugin/saiadmin/basic/BaseLogic.php

@@ -270,7 +270,7 @@ class BaseLogic
      * @param $fields
      * @return mixed
      */
-    public function trandformListColumn($data, $fields=['site', 'agent', 'game', 'auth', 'media',  'pay_channel']){
+    public function trandformListColumn($data, $fields=['site', 'agent', 'game', 'auth', 'media',  'pay_channel', 'game_pay_channel']){
 
         if(in_array('site', $fields)){
             $agentSiteList = Db::connect('db_advert')->table('agent_site')->field('id,name')->select()->toArray();
@@ -306,6 +306,12 @@ class BaseLogic
             $payChannelList = array_column($payChannelList, 'name', 'id');
         }
 
+        if(in_array('game_pay_channel', $fields)){
+            $gamePayChannelList = Db::connect('db_center')->table('pay_channel')->field('id,name')->where('status',1)->select()->toArray();
+            $gamePayChannelList = array_column($gamePayChannelList, 'name', 'id');
+        }
+
+
 
         foreach ($data as $key => $value) {
     
@@ -318,6 +324,12 @@ class BaseLogic
             $data[$key]['media_name'] = !empty($mediaList) ? $mediaList[$value['media_id']] ?? '':'';
             // $data[$key]['package_name'] = !empty($packageList) ? $packageList[$value['package_id']] ?? '':'';
             $data[$key]['pay_channel_name'] = !empty($payChannelList) ? $payChannelList[$value['pay_channel_id']] ?? '':'';
+
+            $data[$key]['alipay_wap_name'] = !empty($gamePayChannelList) ? $gamePayChannelList[$value['alipay_wap']] ?? '':'';
+            $data[$key]['inapp_name'] = !empty($gamePayChannelList) ? $gamePayChannelList[$value['inapp']] ?? '':'';
+            $data[$key]['wechat_wap_name'] = !empty($gamePayChannelList) ? $gamePayChannelList[$value['wechat_wap']] ?? '':'';
+            $data[$key]['wechat_scan_name'] = !empty($gamePayChannelList) ? $gamePayChannelList[$value['wechat_scan']] ?? '':'';
+            $data[$key]['wechat_jsapi_name'] = !empty($gamePayChannelList) ? $gamePayChannelList[$value['wechat_jsapi']] ?? '':'';
         }
         return $data;
     }