瀏覽代碼

'代理联调'

Ethan 6 年之前
父節點
當前提交
f6cc37c9a3

+ 64 - 0
app/Http/Controllers/Api/AgentController.php

@@ -0,0 +1,64 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use Illuminate\Http\Request;
+use App\Http\Controllers\Controller;
+use \App\Http\Models;
+use \Exception;
+
+/**
+ * 代理管理类
+ */
+class AgentController extends Controller
+{
+
+
+    /**
+     * 代理登陆、注册
+     *
+     * @access public
+     * @param mixed $req 数据传输
+     * @return array JsonString
+     */
+    public function login(Request $req)
+    {
+        $code = -2;
+        $msg = '操作失败';
+        /*try {*/
+        // 获取游戏url及参数.
+        $gmenuModel = new Models\Agent;
+        $gmenuId = $req->input('id');
+        $getGameUrl = $gmenuModel->getGameUrl($gmenuId);
+
+        // 获取传参.
+        $data = json_decode($getGameUrl->gameUrl_data);
+        // 获取url
+        $url = json_decode($getGameUrl->gameUrl_url);
+        $dataString = '';
+        foreach ($data[0] as $key => $value) {
+            $dataString .= '&' . $key . '=' . urlencode($value);
+        }
+        $commonModel = new Models\Common;
+        $res = $commonModel->make_request($url[0], $dataString);echo print_r(json_decode($res)->data->token);die;
+        foreach ($data[0] as $key => $value) {
+            $dataString .= '&' . $key . '=' . urlencode($value);
+        }
+        $res = $this->make_request($getGameUrl, $dataString);print_r($res);die;
+
+        $str = base64_encode($dataString);
+        $key = md5($dataString);
+
+        $msg = '成功';
+        $msg = $getGameUrl;
+
+        return toJson($code, $msg, $getGameUrl);
+        /*} catch (Exception $e) {
+            return toJson($code, $msg, []);
+            // return toJson($code, $e->getMessage(), []);.
+        }*/
+
+    }//end login()
+
+
+}

+ 42 - 0
app/Http/Models/Agent.php

@@ -0,0 +1,42 @@
+<?php
+
+namespace App\Http\Models;
+
+use Illuminate\Database\Eloquent\Model;
+use \App\Models;
+use \App\Http\Models as HttpModel;
+
+/**
+ * 代理管理模型类
+ */
+class Agent extends Model
+{
+
+
+    /**
+     * 获取游戏url及参数
+     *
+     * @access public
+     * @param mixed $gmenuId 游戏Id
+     * @return String
+     */
+    public function getGameUrl($gmenuId)
+    {
+        // 获取游戏地址数据.
+        $gameUrlModel = new Models\GameUrl;
+        $getGameUrlSelect = ['gameUrl_url', 'gameUrl_data'];
+        $getameUrlWhere = [
+            'gmenu_id' => $gmenuId,
+            'gameUrl_type' => 'login',
+        ];
+        $getGameUrl = $gameUrlModel
+            ->select($getGameUrlSelect)
+            ->where($getameUrlWhere)
+            ->first();
+
+        return $getGameUrl;
+
+    }//end getGameUrl()
+
+
+}

+ 69 - 0
app/Http/Models/Common.php

@@ -0,0 +1,69 @@
+<?php
+
+namespace App\Http\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 代理管理模型类
+ */
+class Common extends Model
+{
+
+
+    /**
+     * 通用批量查询
+     *
+     * @access public
+     * @param mixed $database 数据库
+     * @param mixed $where 查询条件
+     * @param mixed $orWhere 或查询      [[['batch_id', '191'], ['batch_id', '186']],[['id', '55'], ['id', '59']]];
+     * @param mixed $orderBy 排序字段   ['sort' => 'asc']
+     * @return String
+     */
+    public function make_request($url, $params, $timeout = 30)
+    {
+        set_time_limit(0);
+        if (function_exists('curl_init')) {
+            // Use CURL if installed...
+            $ch = curl_init();
+            $header = array(
+                'Accept-Language: zh-cn',
+                'Connection: Keep-Alive',
+                'Cache-Control: no-cache'
+            );
+            curl_setopt($ch, CURLOPT_POST, 1);
+            curl_setopt($ch, CURLOPT_URL, $url);
+            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
+            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
+            if ($timeout > 0) curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
+            $result = curl_exec($ch);
+            $errno = curl_errno($ch);
+            curl_close($ch);
+            return $result;
+        } else {
+            $context = array(
+                'http' => array(
+                    'method' => 'POST',
+                    'header' => 'Content-type: application/x-www-form-urlencoded' . "\r\n" .
+                        'Content-length: ' . strlen($params),
+                    'content' => $params));
+            if ($timeout > 0) $context['http']['timeout'] = $timeout;
+            $contextid = stream_context_create($context);
+            $sock = @fopen($url, 'r', false, $contextid);
+            if ($sock) {
+                $result = '';
+                while (!feof($sock)) {
+                    $result .= fgets($sock, 8192);
+                }
+                fclose($sock);
+            } else {
+                return 'TimeOut';
+            }
+        }
+        return $result;
+    }//end commonSelect()
+
+
+}

+ 68 - 0
app/Http/Models/Database.php

@@ -0,0 +1,68 @@
+<?php
+
+namespace App\Http\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 数据库操作模型类
+ */
+class Database extends Model
+{
+
+
+    /**
+     * 循环获取or查询
+     *
+     * @access public
+     * @param mixed $database 数据库
+     * @param mixed $orWhere 或查询      [[['batch_id', '191'], ['batch_id', '186']],[['id', '55'], ['id', '59']]];
+     * @return String
+     */
+    public function whereOr($database, $orWhere=[])
+    {
+        $result = $database;
+
+        // 循环获取or查询.
+        foreach ($orWhere as $value) {
+            $result = $result->where(
+                function ($query) use ($value) {
+                    foreach ($value as $k => $v) {
+                        if ($k === 0) {
+                            $query = $query->where([$v[0] => $v[1]]);
+                        } else {
+                            $query = $query->orWhere([$v[0] => $v[1]]);
+                        }
+                    }
+                }
+            );
+        }
+
+        return $result;
+
+    }//end commonSelect()
+
+
+    /**
+     * 循环排序规则
+     *
+     * @access public
+     * @param mixed $database 数据库
+     * @param mixed $orderBy 排序字段   ['sort' => 'asc']
+     * @return String
+     */
+    public function orderBy($database, $orderBy=[])
+    {
+        $result = $database;
+
+        // 循环排序规则.
+        foreach ($orderBy as $key => $value) {
+            $result = $result->orderBy($key, $value);
+        }
+
+        return $result;
+
+    }//end commonFind()
+
+
+}

+ 16 - 0
app/Models/GameUrl.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 数据库gameUrl模型类
+ */
+class GameUrl extends Model
+{
+
+    protected $table = 'gameUrl';
+
+
+}