Ethan пре 6 година
родитељ
комит
b638acd642

+ 35 - 100
app/Http/Controllers/Api/AgentController.php

@@ -25,110 +25,45 @@ class AgentController extends Controller
     {
         $code = -2;
         $msg = '操作失败';
-        /*try {*/
-        // 获取Token url及参数.
-        $agentModel = new Models\Agent;
-        $gmenuId = $req->input('id');
-        $getGameUrlWhere = [
-            'gmenu_id' => $gmenuId,
-            'gameUrl_type' => 'getToken',
-        ];
-        $getGameUrl = $agentModel->getGameUrl($getGameUrlWhere);
+        try {
+            $agentModel = new Models\Agent;
+            $sportsAgentModel = new Models\SportsAgent;
+            // 获取Token url及参数.
+            $gmenuId = $req->input('id');
+            $backData = $sportsAgentModel->getSportsToken($gmenuId);
+            if ($backData !== 1) {
+                $msg = '链接失败1';
+                return toJson($code, $msg, []);
+            }
+
+            // 获取用户信息.
+            $getMemberInfo = $agentModel->getMember();
+            // 登陆.
+            $backData = $sportsAgentModel->loginSports($gmenuId, $getMemberInfo);
+            if ($backData !== 1) {
+                $msg = '远程登陆失败';
+                return toJson($code, $msg, []);
+            }
+
+            // 獲取余额.
+            $getMembersDetailed = $agentModel->getMembersDetailed();
+            if ($getMembersDetailed->membersDetailed_cash) {
+                // 转账.
+                $backData = $sportsAgentModel->transferSports($gmenuId, $getMembersDetailed->membersDetailed_cash, 0, $getMemberInfo, 'IN');
+                if ($backData !== 1) {
+                    $msg = '链接失败2';
+                    return toJson($code, $msg, []);
+                }
+            }
+
+            $msg = '成功';
+            $code = 1;
 
-        // 获取Token传参.
-        $data = json_decode($getGameUrl->gameUrl_data);
-        // 获取Token url.
-        $url = $getGameUrl->gameUrl_url;
-        $dataString = '';
-        foreach ($data as $key => $value) {
-            $dataString .= '&' . $key . '=' . urlencode($value);
-        }
-        $commonModel = new Models\Common;
-        // 获取token.
-        $getToken = $commonModel->make_request($url, $dataString);
-        if ($getToken && json_decode($getToken)->status !== 1) {
-            $msg = '链接失败';
-            return toJson($code, $msg, []);
-        }//end if
-        // 存儲token
-        S('sportsToken', json_decode($getToken)->data->token);
-
-        // 获取用户信息.
-        $getMemberInfo = $agentModel->getMember();
-        // 获取登陆 url及参数.
-        $getGameUrlWhere = [
-            'gmenu_id' => $gmenuId,
-            'gameUrl_type' => 'login',
-        ];
-        $getGameUrl = $agentModel->getGameUrl($getGameUrlWhere);
-
-        // 获取登陆传参.
-        $data = json_decode($getGameUrl->gameUrl_data);
-        // 获取登陆url.
-        $url = json_decode($getGameUrl->gameUrl_url);
-        // 登陆.
-        $paramsData = [
-            'agent' => $data->agent,
-            'username' => $getMemberInfo['name'],
-            'method' => $data->method,
-            'password' => $getMemberInfo['password'],
-        ];
-        $loginUrl = $commonModel->sportsAgentParams($paramsData, $url[1]);
-        $loginData = $commonModel->make_request($loginUrl, '');
-        if ($loginData && json_decode($loginData)->status !== 1) {
-            $msg = '远程登陆失败';
-            return toJson($code, $msg, []);
-        }//end if
-
-        // 獲取余额.
-        $getMembersDetailed = $agentModel->getMembersDetailed();
-        // 扣去用户余额.
-        $updateMembersDetailed = $agentModel->updateMembersDetailed();
-
-        // 获取转账 url及参数.
-        $getGameUrlWhere = [
-            'gmenu_id' => $gmenuId,
-            'gameUrl_type' => 'transfer',
-        ];
-        $getGameUrl = $agentModel->getGameUrl($getGameUrlWhere);
-
-        // 获取转账传参.
-        $data = json_decode($getGameUrl->gameUrl_data);
-        // 获取转账url.
-        $url = json_decode($getGameUrl->gameUrl_url);
-        // 转账.
-        $newUuid = getUUID();
-        $transferParams = [
-            'agent' => $data->agent,
-            'username' => $getMemberInfo['name'],
-            'method' => $data->method,
-            'password' => $getMemberInfo['password'],
-            'billno' => $newUuid,
-            'credit' => $getMembersDetailed->membersDetailed_cash,
-            'type' => $data->type,
-        ];
-        $transferUrl = $commonModel->sportsAgentParams($transferParams, $url[2]);
-        $transferData = $commonModel->make_request($transferUrl, '');
-        if ($transferData && json_decode($transferData)->status !== 1) {
-            $msg = '链接失败';
             return toJson($code, $msg, []);
-        }//end if
-
-        // 转账成功,添加转账记录.
-
-
-        print_r($loginDa);die;
-
-
-
-        $msg = '成功';
-        $msg = $getGameUrl;
-
-        return toJson($code, $msg, $getGameUrl);
-        /*} catch (Exception $e) {
+        } catch (Exception $e) {
             return toJson($code, $msg, []);
             // return toJson($code, $e->getMessage(), []);.
-        }*/
+        }
 
     }//end login()
 

+ 36 - 4
app/Http/Models/Agent.php

@@ -4,7 +4,6 @@ namespace App\Http\Models;
 
 use Illuminate\Database\Eloquent\Model;
 use \App\Models;
-use \App\Http\Models as HttpModel;
 
 /**
  * 代理管理模型类
@@ -105,20 +104,53 @@ class Agent extends Model
      * 修改用户余额
      *
      * @access public
+     * @param mixed $update 修改字段
      * @return array
      */
-    public function updateMembersDetailed()
+    public function updateMembersDetailed($update)
     {
         // 获取用户资金.
         $membersDetailedModel = new Models\MembersDetailed;
         $updateMbrDtlWhr['members_id'] = S('token_user_id');
         $updateMbrDtl = $membersDetailedModel
             ->where($updateMbrDtlWhr)
-            ->update(['membersDetailed_cash' => 0]);
+            ->update($update);
 
         return $updateMbrDtl;
 
-    }//end getMembersDetailed()
+    }//end updateMembersDetailed()
+
+
+    /**
+     * 添加转账记录
+     *
+     * @access public
+     * @param mixed $uuid 唯一标识
+     * @param mixed $money 金额
+     * @param mixed $type 类型    1增加2减少
+     * @param mixed $cash 剩余金额
+     * @param mixed $describe 描述
+     * @param mixed $status 状态  1成功2失败
+     * @return string
+     */
+    public function addMoneyDetails($uuid, $money, $type, $cash, $describe, $status=1)
+    {
+        $moneyDetailsModel = new Models\MoneyDetails;
+        $data = [
+            'moneyDetails_identity' => $uuid,
+            'members_id' => S('token_user_id'),
+            'moneyDetails_money' => $money,
+            'moneyDetails_time' => date('Y-m-d H:i:s'),
+            'moneyDetails_type' => $type,
+            'moneyDetails_cash' => $cash,
+            'moneyDetails_describe' => $describe,
+            'moneyDetails_status' => $status,
+        ];
+        $add = $moneyDetailsModel->insert($data);
+
+        return $add;
+
+    }//end addMoneyDetails()
 
 
 }

+ 148 - 0
app/Http/Models/SportsAgent.php

@@ -0,0 +1,148 @@
+<?php
+
+namespace App\Http\Models;
+
+use Illuminate\Database\Eloquent\Model;
+use \App\Http\Models as HttpModel;
+use Illuminate\Support\Facades\DB;
+
+/**
+ * 赛事代理管理模型类
+ */
+class SportsAgent extends Model
+{
+
+
+    /**
+     * 获取体育token
+     *
+     * @access public
+     * @param mixed $gmenuId 游戏ID
+     * @return string
+     */
+    public function getSportsToken($gmenuId)
+    {
+        $agentModel = new HttpModel\Agent;
+        // 获取url及参数.
+        $getGameUrlWhere = [
+            'gmenu_id' => $gmenuId,
+            'gameUrl_type' => 'getToken',
+        ];
+        $getGameUrl = $agentModel->getGameUrl($getGameUrlWhere);
+
+        // 获取Token传参.
+        $data = json_decode($getGameUrl->gameUrl_data);
+        // 获取Token url.
+        $url = $getGameUrl->gameUrl_url;
+        $dataString = '';
+        foreach ($data as $key => $value) {
+            $dataString .= '&' . $key . '=' . urlencode($value);
+        }
+        $commonModel = new HttpModel\Common;
+        // 获取token.
+        $getToken = $commonModel->make_request($url, $dataString);
+        if ($getToken && json_decode($getToken)->status === 1) {
+            // 存儲token
+            S('sportsToken', json_decode($getToken)->data->token);
+            return 1;
+        } else {
+            return 2;
+        }
+
+    }//end getSportsToken()
+
+
+    /**
+     * 登陆体育
+     *
+     * @access public
+     * @param mixed $gmenuId 游戏ID
+     * @param mixed $getMemberInfo 用户信息
+     * @return string
+     */
+    public function loginSports($gmenuId, $getMemberInfo)
+    {
+        $agentModel = new HttpModel\Agent;
+        // 获取登陆 url及参数.
+        $getGameUrlWhere = [
+            'gmenu_id' => $gmenuId,
+            'gameUrl_type' => 'login',
+        ];
+        $getGameUrl = $agentModel->getGameUrl($getGameUrlWhere);
+        // 获取登陆传参.
+        $data = json_decode($getGameUrl->gameUrl_data);
+        // 获取登陆url.
+        $url = $getGameUrl->gameUrl_url;
+        // 登陆.
+        $paramsData = [
+            'agent' => $data->agent,
+            'username' => $getMemberInfo['name'],
+            'method' => $data->method,
+            'password' => $getMemberInfo['password'],
+        ];
+        $commonModel = new HttpModel\Common;
+        $loginUrl = $commonModel->sportsAgentParams($paramsData, $url);
+        $loginData = $commonModel->make_request($loginUrl, '');
+        if ($loginData && json_decode($loginData)->status === 1) {
+            return 1;
+        } else {
+            return 2;
+        }
+
+    }//end loginSports()
+
+
+    /**
+     * 体育转账
+     *
+     * @access public
+     * @param mixed $gmenuId 游戏ID
+     * @param mixed $money 金额
+     * @param mixed $cash 余额
+     * @param mixed $getMemberInfo 用户信息
+     * @param mixed $type IN转入OUT转出
+     * @return string
+     */
+    public function transferSports($gmenuId, $money, $cash, $getMemberInfo, $type)
+    {
+        $agentModel = new HttpModel\Agent;
+        // 扣去用户余额.
+        DB::beginTransaction();
+        $newUuid = getUUID();
+        $agentModel->updateMembersDetailed(['membersDetailed_cash' => $cash]);
+        // 添加转账记录.
+        $agentModel->addMoneyDetails($newUuid, $money, 2, $cash, '转账至体育赛事');
+        // 获取转账 url及参数.
+        $getGameUrlWhere = [
+            'gmenu_id' => $gmenuId,
+            'gameUrl_type' => 'transfer',
+        ];
+        $getGameUrl = $agentModel->getGameUrl($getGameUrlWhere);
+        // 获取转账传参.
+        $data = json_decode($getGameUrl->gameUrl_data);
+        // 获取转账url.
+        $url = $getGameUrl->gameUrl_url;
+        // 转账.
+        $transferParams = [
+            'agent' => $data->agent,
+            'username' => $getMemberInfo['name'],
+            'method' => $data->method,
+            'password' => $getMemberInfo['password'],
+            'billno' => $newUuid,
+            'credit' => $money,
+            'type' => $type,
+        ];
+        $commonModel = new HttpModel\Common;
+        $transferUrl = $commonModel->sportsAgentParams($transferParams, $url);
+        $transferData = $commonModel->make_request($transferUrl, '');
+        if ($transferData && json_decode($transferData)->status === 1) {
+            DB::commit();
+            return 1;
+        } else {
+            DB::rollBack();
+            return 2;
+        }
+    }//end transferSports()
+
+
+}

+ 14 - 0
app/Models/MoneyDetails.php

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