Browse Source

追加推送 体育数据写入接口 5/14

彭俊 6 years ago
parent
commit
48cb874e78

+ 312 - 6
Application/Sports/Controller/WriteSports.php

@@ -9,17 +9,323 @@ namespace App\Sports\Controller;
 use BaseController\Controller;
 use BaseController\Controller;
 
 
 class WriteSports extends Controller{
 class WriteSports extends Controller{
+    public function init() {
+        $this->commonFunction =  C()->get('commonFunction');
+
+    }
 
 
     /**
     /**
-     * 写入地区数据
+     * 体育数据入库接口
      */
      */
-    public function area(){
+    public function setSports(){
+        $obt = $_REQUEST['data'];
+
+        $data = $this->getAddData($obt);
+
+        //验证二维数组内是否有空值
+//        foreach ($data['data'] as $v){
+//            if(in_array('', $v)) Render([], '10001', lang('Tips','Sports')->get('PARAM_ERROR'));
+//        }
+        switch ($data['title']){
+            case 'area'://地区
+                $ret = $this->area($data['data']);
+                break;
+            case 'country'://国家
+                $ret = $this->country($data['data']);
+                break;
+            case 'league'://联赛
+                $ret = $this->league($data);
+                break;
+            case 'competition'://赛事
+                $ret = $this->competition($data);
+                break;
+            case 'odds'://赔率
+                $ret = $this->odds($data);
+                break;
+            case 'league_result'://联赛结果
+                $ret = $this->league_result($data);
+                break;
+            case 'competition_result'://赛事结果
+                $ret = $this->com_result($data);
+                break;
+            case 'competition_result_record'://赛事结果记录
+                $ret = $this->com_result_record($data);
+                break;
+            case 'odds_record'://赔率记录
+                $ret = $this->odds_record($data);
+                break;
+            default:
+                Render([], '10007', lang('Tips','Sports')->get('abnormal'));
+        }
+
+        //写入成功
+        if($ret) Render([], '1', lang('Tips','Sports')->get('success'));
+        //写入失败
+        Render([], '10010', lang('Tips','Sports')->get('HANDLE_ERRORS'));
+    }
 
 
-        $data = $_REQUEST['data'];
-        $area = $this->getAddData($data);
+    //写入地区数据
+    public function area($opt = []){
+        $ret = lm('st_area','Sports')->insert($opt);
+        return $ret;
+    }
+
+    //写入国家数据
+    public function country($opt = []){
+        $ret = lm('st_country','Sports')->insert($opt);
+        return $ret;
+    }
+
+    //写入联赛数据
+    public function league($opt = []){
+        $game_code = $opt['game_code'];
+        //根据球类代码获取相关model
+        $model = $this->commonFunction->getModels($game_code,1);
+        foreach ($opt['data'] as $k => $v){
+            //验证联赛所属国家
+            if(!empty($v['country_id'])){
+                $country = lm('st_country','Sports')
+                    ->where(['country_id'=>$v['country_id']])
+                    ->count();
+                if($country < 1) Render([], '10013', lang('Tips','Sports')->get('country_error'));
+            }
+            //验证联赛所属地区
+            if(!empty($v['area_id'])){
+                $area = lm('st_area','Sports')
+                    ->where(['id'=>$v['area_id']])
+                    ->count();
+                if($area < 1) Render([], '10014', lang('Tips','Sports')->get('area_error'));
+            }
+            $post = lm($model['model_league'],'Sports')
+                ->where(['lg_id'=>$v['lg_id']])
+                ->count();
+            //更新操作
+            if($post > 0){
+                $ret = lm($model['model_league'],'Sports')
+                    -> where(['lg_id'=>$v['lg_id']])
+                    -> update($v);
+                if($ret < 1) Render([], '10011', lang('Tips','Sports')->get('update_error'));
+            }else{
+                //写入操作
+                $ret = lm($model['model_league'],'Sports')->insert($v);
+                if($ret != true) Render([], '10012', lang('Tips','Sports')->get('insert_error'));
+            }
+        }
+        Render([], '1', lang('Tips','Sports')->get('success'));
+    }
+
+    //写入赛事数据
+    public function competition($opt = []){
+        $game_code = $opt['game_code'];
+        //根据球类代码获取相关model
+        $model = $this->commonFunction->getModels($game_code,1);
+        foreach ($opt['data'] as $k => $v){
+            //验证赛事所属联赛
+            if(!empty($v['lg_id'])){
+                $lg = lm($model['model_league'],'Sports')
+                    ->where(['lg_id'=>$v['lg_id']])
+                    ->count();
+                if($lg < 1) Render([], '10015', lang('Tips','Sports')->get('league_error'));
+            }
+            $post = lm($model['model_match'],'Sports')
+                ->where(['match_id'=>$v['match_id']])
+                ->count();
+            //更新操作
+            if($post > 0){
+                $ret = lm($model['model_match'],'Sports')
+                    -> where(['match_id'=>$v['match_id']])
+                    -> update($v);
+                if($ret < 1) Render([], '10011', lang('Tips','Sports')->get('update_error'));
+            }else{
+                //写入操作
+                $ret = lm($model['model_match'],'Sports')->insert($v);
+                if($ret != true) Render([], '10012', lang('Tips','Sports')->get('insert_error'));
+            }
+        }
+        Render([], '1', lang('Tips','Sports')->get('success'));
+    }
+
+    //写入赔率数据
+    public function odds($opt){
+        $game_code = $opt['game_code'];
+        //根据球类代码获取相关model
+        $model = $this->commonFunction->getModels($game_code,1);
+        foreach ($opt['data'] as $k => $v){
+            //验证赔率所属赛事
+            if(!empty($v['match_id'])){
+                $match = lm($model['model_match'],'Sports')
+                    ->where(['match_id'=>$v['match_id']])
+                    ->count();
+                if($match < 1) Render([], '10016', lang('Tips','Sports')->get('match_error'));
+            }
+            //验证赔率所属联赛 冠军盘口
+            if(!empty($v['lg_id'])){
+                $lg = lm($model['model_league'],'Sports')
+                    ->where(['lg_id'=>$v['lg_id']])
+                    ->count();
+                if($lg < 1) Render([], '10015', lang('Tips','Sports')->get('league_error'));
+            }
+            $post = lm($model['model_odds'],'Sports')
+                ->where(['match_id'=>$v['match_id'],'odds_code'=>$v['odds_code'],'sort'=>$v['sort']])
+                ->count();
+            //更新操作
+            if($post > 0){
+                $ret = lm($model['model_odds'],'Sports')
+                    ->where(['match_id'=>$v['match_id'],'odds_code'=>$v['odds_code'],'sort'=>$v['sort']])
+                    -> update($v);
+                if($ret < 1) Render([], '10011', lang('Tips','Sports')->get('update_error'));
+            }else{
+                //写入操作
+                $ret = lm($model['model_odds'],'Sports')->insert($v);
+                if($ret != true) Render([], '10012', lang('Tips','Sports')->get('insert_error'));
+            }
+        }
+        Render([], '1', lang('Tips','Sports')->get('success'));
+    }
+
+    //写入联赛结果
+    public function league_result($opt){
+        $game_code = $opt['game_code'];
+        //根据球类代码获取相关model
+        $model = $this->commonFunction->getModels($game_code,1);
+        foreach ($opt['data'] as $k => $v){
+            //验证结果所属联赛
+            if(!empty($v['lg_id'])){
+                $lg = lm($model['model_league'],'Sports')
+                    ->where(['lg_id'=>$v['lg_id']])
+                    ->count();
+                if($lg < 1) Render([], '10015', lang('Tips','Sports')->get('league_error'));
+            }
+            $post = lm($model['model_league_result'],'Sports')
+                ->where(['lg_id'=>$v['lg_id'],'game_name'=>$v['game_name']])
+                ->count();
+            //更新操作
+            if($post > 0){
+                $ret = lm($model['model_league_result'],'Sports')
+                    ->where(['lg_id'=>$v['lg_id'],'game_name'=>$v['game_name']])
+                    -> update($v);
+                if($ret < 1) Render([], '10011', lang('Tips','Sports')->get('update_error'));
+            }else{
+                //写入操作
+                $ret = lm($model['model_league_result'],'Sports')->insert($v);
+                if($ret != true) Render([], '10012', lang('Tips','Sports')->get('insert_error'));
+            }
+        }
+        Render([], '1', lang('Tips','Sports')->get('success'));
+    }
+
+    //写入赛事结果
+    public function com_result($opt){
+        $game_code = $opt['game_code'];
+        //根据球类代码获取相关model
+        $model = $this->commonFunction->getModels($game_code,1);
+        foreach ($opt['data'] as $k => $v){
+            //验证结果所属联赛
+            if(!empty($v['lg_id'])){
+                $lg = lm($model['model_league'],'Sports')
+                    ->where(['lg_id'=>$v['lg_id']])
+                    ->count();
+                if($lg < 1) Render([], '10015', lang('Tips','Sports')->get('league_error'));
+            }
+            //验证结果所属赛事
+            if(!empty($v['match_id'])){
+                $lg = lm($model['model_match'],'Sports')
+                    ->where(['match_id'=>$v['match_id']])
+                    ->count();
+                if($lg < 1) Render([], '10016', lang('Tips','Sports')->get('match_error'));
+            }
+            $post = lm($model['model_result'],'Sports')
+                ->where(['match_id'=>$v['match_id']])
+                ->count();
+            //更新操作
+            if($post > 0){
+                $ret = lm($model['model_result'],'Sports')
+                    -> where(['match_id'=>$v['match_id']])
+                    -> update($v);
+                if($ret < 1) Render([], '10011', lang('Tips','Sports')->get('update_error'));
+            }else{
+                //写入操作
+                $ret = lm($model['model_result'],'Sports')->insert($v);
+                if($ret != true) Render([], '10012', lang('Tips','Sports')->get('insert_error'));
+            }
+        }
+        Render([], '1', lang('Tips','Sports')->get('success'));
+    }
+
+    //写入赛事结果记录
+    public function com_result_record($opt){
+        $game_code = $opt['game_code'];
+        //根据球类代码获取相关model
+        $model = $this->commonFunction->getModels($game_code,1);
+        foreach ($opt['data'] as $k => $v){
+            //验证结果所属联赛
+            if(!empty($v['lg_id'])){
+                $lg = lm($model['model_league'],'Sports')
+                    ->where(['lg_id'=>$v['lg_id']])
+                    ->count();
+                if($lg < 1) Render([], '10015', lang('Tips','Sports')->get('league_error'));
+            }
+            //验证结果所属赛事
+            if(!empty($v['match_id'])){
+                $lg = lm($model['model_match'],'Sports')
+                    ->where(['match_id'=>$v['match_id']])
+                    ->count();
+                if($lg < 1) Render([], '10016', lang('Tips','Sports')->get('match_error'));
+            }
+            $post = lm($model['model_result_record'],'Sports')
+                ->where(['match_id'=>$v['match_id'],'match_time'=>$v['match_time']])
+                ->count();
+            //更新操作
+            if($post > 0){
+                $ret = lm($model['model_result_record'],'Sports')
+                    ->where(['match_id'=>$v['match_id'],'match_time'=>$v['match_time']])
+                    -> update($v);
+                if($ret < 1) Render([], '10011', lang('Tips','Sports')->get('update_error'));
+            }else{
+                //写入操作
+                $ret = lm($model['model_result_record'],'Sports')->insert($v);
+                if($ret != true) Render([], '10012', lang('Tips','Sports')->get('insert_error'));
+            }
+        }
+        Render([], '1', lang('Tips','Sports')->get('success'));
+    }
 
 
-        $ret = lm('st_area','Sports')->insert($data['data']);
-        dd($ret);
+    //写入赔率记录
+    public function odds_record($opt){
+        $game_code = $opt['game_code'];
+        //根据球类代码获取相关model
+        $model = $this->commonFunction->getModels($game_code,1);
+        foreach ($opt['data'] as $k => $v){
+            //验证赔率所属赛事
+            if(!empty($v['match_id'])){
+                $match = lm($model['model_match'],'Sports')
+                    ->where(['match_id'=>$v['match_id']])
+                    ->count();
+                if($match < 1) Render([], '10016', lang('Tips','Sports')->get('match_error'));
+            }
+            //验证赔率所属联赛 冠军盘口
+            if(!empty($v['lg_id'])){
+                $lg = lm($model['model_league'],'Sports')
+                    ->where(['lg_id'=>$v['lg_id']])
+                    ->count();
+                if($lg < 1) Render([], '10015', lang('Tips','Sports')->get('league_error'));
+            }
+            $post = lm($model['model_odds_record'],'Sports')
+                ->where(['match_id'=>$v['match_id'],'odds_code'=>$v['odds_code'],'sort'=>$v['sort']])
+                ->count();
+            //更新操作
+            if($post > 0){
+                $ret = lm($model['model_odds_record'],'Sports')
+                    ->where(['match_id'=>$v['match_id'],'odds_code'=>$v['odds_code'],'sort'=>$v['sort']])
+                    -> update($v);
+                if($ret < 1) Render([], '10011', lang('Tips','Sports')->get('update_error'));
+            }else{
+                //写入操作
+                $ret = lm($model['model_odds_record'],'Sports')->insert($v);
+                if($ret != true) Render([], '10012', lang('Tips','Sports')->get('insert_error'));
+            }
+        }
+        Render([], '1', lang('Tips','Sports')->get('success'));
     }
     }
 
 
     /**
     /**

+ 16 - 1
Application/Sports/Lang/Errors.php

@@ -34,6 +34,21 @@ return array(
     'error-10006' => '数据为空',
     'error-10006' => '数据为空',
     'error-10007' => '提交数据异常',
     'error-10007' => '提交数据异常',
     'error-10008' => '参数校验错误',
     'error-10008' => '参数校验错误',
-    'error-10009' => '无效的请求方法'
+    'error-10009' => '无效的请求方法',
+
+    //体育数据入库操作
+    'error-10010' => '数据处理失败',
+    'error-10011' => '有数据更新失败',
+    'error-10012' => '有数据插入失败',
+    'error-10013' => '国家不存在',
+    'error-10014' => '地区不存在',
+    'error-10015' => '联赛不存在',
+    'error-10016' => '赛事不存在',
+
+
+
+
+
+
 
 
 );
 );

+ 15 - 0
Application/Sports/Lang/Tips.php

@@ -4,6 +4,21 @@ return array(
     'PARAM_ERROR' => '参数错误',
     'PARAM_ERROR' => '参数错误',
     'no_odds' => '该赛事没有赔率数据',
     'no_odds' => '该赛事没有赔率数据',
     'empty' => '数据为空',
     'empty' => '数据为空',
+
+    //===体育数据写入===
+    'HANDLE_ERRORS' =>'数据处理失败',
+    'abnormal' =>'提交数据异常',
+    'update_error' =>'有数据更新失败',
+    'insert_error' =>'有数据插入失败',
+    'country_error' =>'国家不存在',
+    'area_error' =>'地区不存在',
+    'league_error' =>'联赛不存在',
+    'match_error' =>'赛事不存在',
+
+    // ====end===
+
+
+
 //    'fail' => '注册失败',
 //    'fail' => '注册失败',
 //    'no_null_account' => '用户已存在',
 //    'no_null_account' => '用户已存在',
 //    'no_problem' => '未提交密保问题',
 //    'no_problem' => '未提交密保问题',

+ 15 - 0
Application/Sports/Model/St_bq_league_result.php

@@ -0,0 +1,15 @@
+<?php
+namespace App\Sports\Model;
+
+use \System\Model;
+
+/**
+ * Class Account
+ * @package App\Sports\Model
+ * 用户账号
+ */
+class St_bq_league_result extends Model
+{
+
+    protected $table = 'st_bq_league_result';
+}

+ 14 - 0
Application/Sports/Model/St_bq_result.php

@@ -0,0 +1,14 @@
+<?php
+namespace App\Sports\Model;
+
+use \System\Model;
+
+/**
+ * Class Account
+ * @package App\Sports\Model
+ * 用户账号
+ */
+class St_bq_result extends Model
+{
+    protected $table = 'st_bq_result';
+}

+ 15 - 0
Application/Sports/Model/St_lq_league_result.php

@@ -0,0 +1,15 @@
+<?php
+namespace App\Sports\Model;
+
+use \System\Model;
+
+/**
+ * Class Account
+ * @package App\Sports\Model
+ * 用户账号
+ */
+class St_lq_league_result extends Model
+{
+
+    protected $table = 'st_lq_league_result';
+}

+ 14 - 0
Application/Sports/Model/St_lq_result.php

@@ -0,0 +1,14 @@
+<?php
+namespace App\Sports\Model;
+
+use \System\Model;
+
+/**
+ * Class Account
+ * @package App\Sports\Model
+ * 用户账号
+ */
+class St_lq_result extends Model
+{
+    protected $table = 'st_lq_result';
+}

+ 15 - 0
Application/Sports/Model/St_wq_league_result.php

@@ -0,0 +1,15 @@
+<?php
+namespace App\Sports\Model;
+
+use \System\Model;
+
+/**
+ * Class Account
+ * @package App\Sports\Model
+ * 用户账号
+ */
+class St_wq_league_result extends Model
+{
+
+    protected $table = 'st_wq_league_result';
+}

+ 14 - 0
Application/Sports/Model/St_wq_result.php

@@ -0,0 +1,14 @@
+<?php
+namespace App\Sports\Model;
+
+use \System\Model;
+
+/**
+ * Class Account
+ * @package App\Sports\Model
+ * 用户账号
+ */
+class St_wq_result extends Model
+{
+    protected $table = 'st_wq_result';
+}

+ 2 - 2
Application/Sports/Model/St_wq_result_record.php

@@ -8,7 +8,7 @@ use \System\Model;
  * @package App\Sports\Model
  * @package App\Sports\Model
  * 用户账号
  * 用户账号
  */
  */
-class St_zq_result_record extends Model
+class St_wq_result_record extends Model
 {
 {
-    protected $table = 'st_zq_result_record';
+    protected $table = 'st_wq_result_record';
 }
 }

+ 15 - 0
Application/Sports/Model/St_zq_league_result.php

@@ -0,0 +1,15 @@
+<?php
+namespace App\Sports\Model;
+
+use \System\Model;
+
+/**
+ * Class Account
+ * @package App\Sports\Model
+ * 用户账号
+ */
+class St_zq_league_result extends Model
+{
+
+    protected $table = 'st_zq_league_result';
+}

+ 14 - 0
Application/Sports/Model/St_zq_result.php

@@ -0,0 +1,14 @@
+<?php
+namespace App\Sports\Model;
+
+use \System\Model;
+
+/**
+ * Class Account
+ * @package App\Sports\Model
+ * 用户账号
+ */
+class St_zq_result extends Model
+{
+    protected $table = 'st_zq_result';
+}

+ 11 - 1
Biz/Common/CommonFunction.php

@@ -607,6 +607,8 @@ class CommonFunction {
                     $model_odds = 'st_zq_odds';
                     $model_odds = 'st_zq_odds';
                     $model_odds_record = 'st_zq_odds_record';
                     $model_odds_record = 'st_zq_odds_record';
                     $model_result = 'st_zq_result';
                     $model_result = 'st_zq_result';
+                    $model_result_record = 'st_zq_result_record';
+                    $model_league_result = 'st_zq_league_result';
 
 
                     break;
                     break;
                 case 'lq':
                 case 'lq':
@@ -615,6 +617,8 @@ class CommonFunction {
                     $model_odds = 'st_lq_odds';
                     $model_odds = 'st_lq_odds';
                     $model_odds_record = 'st_lq_odds_record';
                     $model_odds_record = 'st_lq_odds_record';
                     $model_result = 'st_lq_result';
                     $model_result = 'st_lq_result';
+                    $model_result_record = 'st_lq_result_record';
+                    $model_league_result = 'st_lq_league_result';
                     break;
                     break;
                 case 'wq':
                 case 'wq':
                     $model_league = 'st_wq_league';
                     $model_league = 'st_wq_league';
@@ -622,6 +626,8 @@ class CommonFunction {
                     $model_odds = 'st_wq_odds';
                     $model_odds = 'st_wq_odds';
                     $model_odds_record = 'st_wq_odds_record';
                     $model_odds_record = 'st_wq_odds_record';
                     $model_result = 'st_wq_result';
                     $model_result = 'st_wq_result';
+                    $model_result_record = 'st_wq_result_record';
+                    $model_league_result = 'st_wq_league_result';
                     break;
                     break;
                 case 'bq':
                 case 'bq':
                     $model_league = 'st_bq_league';
                     $model_league = 'st_bq_league';
@@ -629,6 +635,8 @@ class CommonFunction {
                     $model_odds = 'st_bq_odds';
                     $model_odds = 'st_bq_odds';
                     $model_odds_record = 'st_bq_odds_record';
                     $model_odds_record = 'st_bq_odds_record';
                     $model_result = 'st_bq_result';
                     $model_result = 'st_bq_result';
+                    $model_result_record = 'st_bq_result_record';
+                    $model_league_result = 'st_bq_league_result';
                     break;
                     break;
                 case 'gj':
                 case 'gj':
                     $model_league = 'st_zq_league';
                     $model_league = 'st_zq_league';
@@ -682,7 +690,9 @@ class CommonFunction {
             'model_match'=>$model_match,
             'model_match'=>$model_match,
             'model_odds'=>$model_odds,
             'model_odds'=>$model_odds,
             'model_result' =>$model_result,
             'model_result' =>$model_result,
-            'model_odds_record' => $model_odds_record
+            'model_odds_record' => $model_odds_record,
+            'model_result_record' =>$model_result_record,
+            'model_league_result'=>$model_league_result
         ];
         ];
         return $data;
         return $data;
     }
     }