vali 6 年之前
父節點
當前提交
837d19448c
共有 1 個文件被更改,包括 49 次插入0 次删除
  1. 49 0
      app/Logic/DataLogic.php

+ 49 - 0
app/Logic/DataLogic.php

@@ -25,6 +25,7 @@ use App\Http\Model\StZqLocalMatch as MatchModel;
 use App\Http\Model\StZqOdds as OddsModel;
 use App\Http\Model\StZqOdds as OddsModel;
 use App\Http\Model\StZqOddsRecord as OddsRecordModel;
 use App\Http\Model\StZqOddsRecord as OddsRecordModel;
 use App\Http\Model\StZqResult as ZqResultModel;
 use App\Http\Model\StZqResult as ZqResultModel;
+use App\Http\Model\St_area_country as StAreaCountryModel;
 
 
 class DataLogic
 class DataLogic
 {
 {
@@ -41,6 +42,7 @@ class DataLogic
             DB::beginTransaction();
             DB::beginTransaction();
             $obt = $data['data'];
             $obt = $data['data'];
             //请求 数据 为空
             //请求 数据 为空
+
             if(empty($obt)) throw new \Exception(Response::generate('请求数据为空,',Response::ABNORMAL));
             if(empty($obt)) throw new \Exception(Response::generate('请求数据为空,',Response::ABNORMAL));
             $getData = $this->getAddData($obt);
             $getData = $this->getAddData($obt);
             //不是 联赛 数据
             //不是 联赛 数据
@@ -90,6 +92,15 @@ class DataLogic
                             if($v['last_time']){
                             if($v['last_time']){
                                 $last_time = $v['last_time'];
                                 $last_time = $v['last_time'];
                             }
                             }
+                            //获取联赛所属国家或地区
+                            $getArea = $this->getArea($v['name_chinese']);
+                            if($getArea['pid'] == 0){
+                                $area_id = $getArea['id'];
+                                $country_id = 0;
+                            }else{
+                                $area_id = $getArea['pid'];
+                                $country_id = $getArea['id'];
+                            }
                             if(empty($v['uuid'])) throw new \Exception(Response::generate($gameName.'联赛-lg_id:'.$v['lg_id'].';',Response::LG__UUID_NULL));
                             if(empty($v['uuid'])) throw new \Exception(Response::generate($gameName.'联赛-lg_id:'.$v['lg_id'].';',Response::LG__UUID_NULL));
                             $set_lg['name_chinese'] = $v['name_chinese'];
                             $set_lg['name_chinese'] = $v['name_chinese'];
                             $set_lg['kind'] = $v['kind'];
                             $set_lg['kind'] = $v['kind'];
@@ -98,6 +109,8 @@ class DataLogic
                             $set_lg['identity'] = $v['uuid'];
                             $set_lg['identity'] = $v['uuid'];
                             $set_lg['last_time'] = $last_time;
                             $set_lg['last_time'] = $last_time;
                             $set_lg['utime'] = date('Y-m-d H:i:s');
                             $set_lg['utime'] = date('Y-m-d H:i:s');
+                            $set_lg['area_id'] = $area_id;
+                            $set_lg['country_id'] = $country_id;
                             //写入联赛
                             //写入联赛
                             $id = $models['model_league']::insertGetId($set_lg);
                             $id = $models['model_league']::insertGetId($set_lg);
                             $m_lg_id = $id;
                             $m_lg_id = $id;
@@ -1227,6 +1240,42 @@ class DataLogic
         return $set_match_r;
         return $set_match_r;
     }
     }
 
 
+    /**
+     * 根据联赛名称 获取 国家 地区
+     */
+    public function getArea($leagueName = ''){
+        //如果联赛名称有括号,去除
+        $leagueName = preg_replace('/\(.*?\)/', '', $leagueName);
+
+        //获取所有国家/地区
+        $areaData = StAreaCountryModel::select('id','pid','name')->get()->toArray();
+
+        //获取当前联赛所属国家
+        if(strpos($leagueName,'NBA') !== false){
+            $data = [
+                'id'=>247,
+                'pid'=>0,
+                'name'=>'世界'
+            ];
+            return $data;
+        }
+        //识别本地 国家地区数据
+        foreach($areaData as $v => $k){
+            if(strpos($leagueName,$k['name']) !== false){
+                return $k;
+            }
+        }
+
+        //如果不能识别,则返回未知
+        $data = [
+            'id'=>0,
+            'pid'=>0,
+            'name'=>'未知国家或地区'
+        ];
+        return $data;
+    }
+
+
     private function writeLog($body, $ret)
     private function writeLog($body, $ret)
     {
     {
         if (!is_string($body)) {
         if (!is_string($body)) {