commonFunction = C()->get('commonFunction'); //当前时间 $this->newTime = date('Y-m-d H:m:i'); } /** * 体育数据入库接口 */ 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 'match_result'://赛事结果 $ret = $this->com_result($data); break; case 'match_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')); } //写入地区数据 弃用 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); $data = $opt['data']; if(empty($data['belong'])) Render([], '10013', lang('Tips','Sports')->get('country_error')); //获取联赛所属 国家/地区id $belong = St_area_countryModel::getID($data['belong']); $set_lg['area_id'] = $belong['area_id']; $set_lg['country_id'] = $belong['country_id']; //查询中间表 是否已记录 $lg_id = lm($model['model_local_league'],'Sports') ->select('lg_id') ->where(['others_lg_id'=>$data['lg_id'],'source'=>$data['source']]) ->first()->lg_id; //如果没有记录 if(empty($lg_id)){ //查询联赛是否已存在 $id = lm($model['model_league'],'Sports') ->select('id') ->where('name_chinese','=',$data['name_chinese']) ->first()->id; if(empty($id)){ $set_lg['name_chinese'] = $data['name_chinese']; $set_lg['kind'] = $data['kind']; $set_lg['match_mode'] = $data['match_mode']; $set_lg['if_stop'] = $data['if_stop']; $set_lg['last_time'] = $data['last_time']; $set_lg['utime'] = $this->newTime; $id = lm($model['model_league'],'Sports')->insertGetId($set_lg); $m_lg_id = $id; if($m_lg_id < 1) Render([], '10012', lang('Tips','Sports')->get('insert_error')); } $set_local = [ 'lg_id'=>$id, 'others_lg_id'=>$data['lg_id'], 'source'=>$data['source'], ]; $ret = lm($model['model_local_league'],'Sports')-> insertGetId($set_local); if($ret < 1) Render([], '10017', lang('Tips','Sports')->get('local_league_error')); } Render([], '1', lang('Tips','Sports')->get('success')); } //弃用 public function __league($opt = []){ $game_code = $opt['game_code']; //根据球类代码获取相关model $model = $this->commonFunction->getModels($game_code,1); $data = $opt['data']; // foreach ($opt['data'] as $k => $v){ //验证联赛所属国家 if(!empty($data['country_id'])){ $country = lm('st_country','Sports') ->where(['country_id'=>$data['country_id']]) ->count(); if($country < 1) Render([], '10013', lang('Tips','Sports')->get('country_error')); } //验证联赛所属地区 if(!empty($data['area_id'])){ $area = lm('st_area','Sports') ->where(['id'=>$data['area_id']]) ->count(); if($area < 1) Render([], '10014', lang('Tips','Sports')->get('area_error')); } $post = lm($model['model_league'],'Sports') ->where(['lg_id'=>$data['lg_id']]) ->count(); //更新操作 if($post > 0){ $ret = lm($model['model_league'],'Sports') -> where(['lg_id'=>$data['lg_id']]) -> update($data); if($ret < 1) Render([], '10011', lang('Tips','Sports')->get('update_error')); }else{ //写入操作 $ret = lm($model['model_league'],'Sports')->insert($data); 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); $data = $opt['data']; if(empty($data['lg_id'])) Render([], '10015', lang('Tips','Sports')->get('league_error')); //根据源联赛ID 获取本地关联id $lg_id = lm($model['model_local_league'],'Sports') ->select('lg_id') ->where(['others_lg_id'=>$data['lg_id'],'source'=>$data['source']]) ->first()->lg_id; if(empty($lg_id)) Render([], '10015', lang('Tips','Sports')->get('league_error')); //查询关联记录是否存在 $match_id = lm($model['model_local_match'],'Sports') ->select('match_id') ->where(['others_match_id'=>$data['match_id'],'source'=>$data['source']]) ->first()->match_id; if(empty($match_id)){ //查询赛事是否存在 $id = lm($model['model_match'],'Sports') ->select('id') ->where(['home_team'=>$data['home_team'],'guest_team'=>$data['guest_team'],'match_date'=>$data['match_date'],'match_time'=>$data['match_time']]) ->first()->id; //写入赛事 if(empty($id)){ $set_match = [ 'ctime'=>$this->newTime, 'utime'=>$this->newTime, 'expire_time'=>date('Y-m-d H:m:i',time()+60), 'home_team'=>$data['home_team'], 'guest_team'=>$data['guest_team'], 'lg_id'=>$lg_id, 'status'=>$data['status'], 'match_date'=>$data['match_date'], 'match_time'=>$data['match_time'], 'tag'=>$data['tag'], 'is_rollball'=>$data['is_rollball'], 'is_today'=>$data['is_today'], 'is_morningplate'=>$data['is_morningplate'], 'is_stringscene'=>$data['is_stringscene'], 'us_time'=>$data['us_time'], ]; $id = lm($model['model_match'],'Sports')->insertGetId($set_match); if($id < 1) Render([], '10012', lang('Tips','Sports')->get('insert_error')); } $set_local = [ 'match_id'=>$id, 'others_match_id'=>$data['match_id'], 'source'=>$data['source'], ]; $ret = lm($model['model_local_match'],'Sports')-> insertGetId($set_local); if($ret < 1) Render([], '10018', lang('Tips','Sports')->get('local_match_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); $data = $opt['data']; // foreach ($opt['data'] as $k => $v){ //验证赛事所属联赛 if(!empty($data['lg_id'])){ $lg = lm($model['model_league'],'Sports') ->where(['lg_id'=>$data['lg_id']]) ->count(); if($lg < 1) Render([], '10015', lang('Tips','Sports')->get('league_error')); } $post = lm($model['model_match'],'Sports') ->where(['match_id'=>$data['match_id']]) ->count(); //更新操作 if($post > 0){ $ret = lm($model['model_match'],'Sports') -> where(['match_id'=>$data['match_id']]) -> update($data); if($ret < 1) Render([], '10011', lang('Tips','Sports')->get('update_error')); }else{ //写入操作 $ret = lm($model['model_match'],'Sports')->insert($data); 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); $data = $opt['data']; $match = lm($model['model_local_match'],'Sports') ->select('match_id','others_match_id') ->where(['others_match_id'=>$data['match_id'],'source'=>$data['source']]) ->first(); if(count($match) < 1) Render([], '10016', lang('Tips','Sports')->get('match_error')); //获取赛事 本地/源ID $others_match_id = $match->others_match_id; $match_id = $match->match_id; $lg = lm($model['model_local_league'],'Sports') ->select('lg_id','others_lg_id') ->where(['others_lg_id'=>$data['lg_id'],'source'=>$data['source']]) ->first(); if(count($lg) < 1) Render([], '10015', lang('Tips','Sports')->get('league_error')); //获取联赛 本地/源ID $others_lg_id = $lg->others_lg_id; $lg_id = $lg->lg_id; //查询 赔率数据是否存在 $oddsID = lm($model['model_odds'],'Sports') ->where(['lg_id'=>$lg_id,'others_lg_id'=>$others_lg_id,'match_id'=>$match_id,'others_match_id'=>$others_match_id,'odds_code'=>$data['odds_code'],'sort'=>$data['sort']]) ->value('id'); $set_odds = [ 'match_id'=> $match_id, 'others_match_id'=> $others_match_id, 'odds_code'=> $data['odds_code'], 'status'=> $data['status'], 'sort'=> $data['sort'], 'p_code'=> $data['p_code'], 'odds'=> $data['odds'], 'condition'=> $data['condition'], 'odds_only'=> $data['odds_only'], 'sole'=> $data['sole'], 'source'=> $data['source'], 'type'=> $data['type'], 'team'=> $data['team'], 'lg_id'=> $lg_id, 'others_lg_id'=> $others_lg_id, 'ctime'=> $this->newTime, 'utime'=> $this->newTime, 'expire_time'=>date('Y-m-d H:m:i',time()+60), ]; //更新或写入赔率数据 if(!empty($oddsID)){ $ret = lm($model['model_odds'],'Sports') ->where(['id'=>$oddsID]) -> update($set_odds); if($ret < 1) Render([], '10019', lang('Tips','Sports')->get('add_odds_error')); }else{ $ret = lm($model['model_odds'],'Sports')->insert($set_odds); if($ret != true) Render([], '10019', lang('Tips','Sports')->get('add_odds_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); $data = $opt['data']; //验证结果所属联赛 $lg_id = lm($model['model_local_league'],'Sports') ->select('lg_id') ->where(['others_lg_id'=>$data['lg_id'],'source'=>$data['source']]) ->first()->lg_id; if($lg_id < 1) Render([], '10015', lang('Tips','Sports')->get('league_error')); $lg_result_id = lm($model['model_league_result'],'Sports') ->where(['lg_id'=>$lg_id,'game_name'=>$data['game_name']]) ->value('id'); $set_lg_result = [ 'lg_id'=>$lg_id, 'game_name'=>$data['game_name'], 'result'=>json_encode($data['result'],JSON_UNESCAPED_UNICODE), 'status'=>$data['status'], 'ctime'=> $this->newTime, 'utime'=> $this->newTime, ]; //联赛结果数据处理 if(!empty($lg_result_id)){ $ret = lm($model['model_league_result'],'Sports') ->where(['id'=>$lg_result_id]) -> update($set_lg_result); if($ret < 1) Render([], '10021', lang('Tips','Sports')->get('add_lg_r_error')); }else{ $ret = lm($model['model_league_result'],'Sports')->insert($set_lg_result); if($ret != true) Render([], '10021', lang('Tips','Sports')->get('add_lg_r_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); $data = $opt['data']; //验证结果所属联赛 $lg_id = lm($model['model_local_league'],'Sports') ->select('lg_id') ->where(['others_lg_id'=>$data['lg_id'],'source'=>$data['source']]) ->first()->lg_id; if($lg_id < 1) Render([], '10015', lang('Tips','Sports')->get('league_error')); //验证结果所属赛事 $match_id = lm($model['model_local_match'],'Sports') ->select('match_id') ->where(['others_match_id'=>$data['match_id'],'source'=>$data['source']]) ->value('match_id'); if($match_id < 1) Render([], '10016', lang('Tips','Sports')->get('match_error')); //查询结果是否存在 $match_r_id = lm($model['model_result'],'Sports') ->where(['match_id'=>$match_id]) ->value('id'); $set_match_r = [ "home_team"=>$data['home_team'], "guest_team"=>$data['guest_team'], "lg_id"=>$lg_id, "home_rate"=> $data['home_rate'], "guest_rate"=> $data['guest_rate'], "home_score"=> $data['home_score'], "guest_score"=> $data['guest_score'], "all_goal"=> $data['all_goal'], "status"=>$data['status'], "first_score"=>$data['first_score'], "last_score"=> $data['last_score'], "match_score"=> $data['match_score'], "match_winer"=> $data['match_winer'], "match_time"=> $data['match_time'], "match_process"=> $data['match_process'], "tag"=> $data['tag'], "match_id"=> $match_id, "u_home_score"=> $data['u_home_score'], "u_guest_score"=> $data['u_guest_score'], "p_code"=> $data['p_code'], "update_time"=>$this->newTime ]; //赛事结果数据处理 if(!empty($match_r_id)){ $ret = lm($model['model_result'],'Sports') -> where(['id'=>$match_r_id]) -> update($set_match_r); if($ret < 1) Render([], '10022', lang('Tips','Sports')->get('add_match_r_error')); }else{ $ret = lm($model['model_result'],'Sports')->insert($set_match_r); if($ret != true) Render([], '10022', lang('Tips','Sports')->get('add_match_r_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); $data = $opt['data']; //验证结果所属联赛 $lg_id = lm($model['model_local_league'],'Sports') ->select('lg_id') ->where(['others_lg_id'=>$data['lg_id'],'source'=>$data['source']]) ->first()->lg_id; if($lg_id < 1) Render([], '10015', lang('Tips','Sports')->get('league_error')); //验证结果所属赛事 $match_id = lm($model['model_local_match'],'Sports') ->select('match_id') ->where(['others_match_id'=>$data['match_id'],'source'=>$data['source']]) ->value('match_id'); if($match_id < 1) Render([], '10016', lang('Tips','Sports')->get('match_error')); $match_r_id = lm($model['model_result_record'],'Sports') ->where(['match_id'=>$match_id,'match_time'=>$data['match_time']]) ->value('id'); $set_match_r = [ "home_team"=>$data['home_team'], "guest_team"=>$data['guest_team'], "lg_id"=>$lg_id, "home_rate"=> $data['home_rate'], "guest_rate"=> $data['guest_rate'], "home_score"=> $data['home_score'], "guest_score"=> $data['guest_score'], "all_goal"=> $data['all_goal'], "status"=>$data['status'], "first_score"=>$data['first_score'], "last_score"=> $data['last_score'], "match_score"=> $data['match_score'], "match_winer"=> $data['match_winer'], "match_time"=> $data['match_time'], "match_process"=> $data['match_process'], "tag"=> $data['tag'], "match_id"=> $match_id, "p_code"=> $data['p_code'], "update_time"=>$this->newTime ]; //赛事结果记录处理 if($match_r_id > 0){ $ret = lm($model['model_result_record'],'Sports') ->where(['id'=>$match_r_id]) ->update($set_match_r); if($ret < 1) Render([], '10022', lang('Tips','Sports')->get('add_match_r_r_error')); }else{ $ret = lm($model['model_result_record'],'Sports')->insert($set_match_r); if($ret != true) Render([], '10022', lang('Tips','Sports')->get('add_match_r_r_error')); } Render([], '1', lang('Tips','Sports')->get('success')); } //写入赔率记录 public function odds_record($opt){ $game_code = $opt['game_code']; //根据球类代码获取相关model $model = $this->commonFunction->getModels($game_code,1); $data = $opt['data']; $match = lm($model['model_local_match'],'Sports') ->select('match_id','others_match_id') ->where(['others_match_id'=>$data['match_id'],'source'=>$data['source']]) ->first(); if(count($match) < 1) Render([], '10016', lang('Tips','Sports')->get('match_error')); //获取赛事 本地/源ID $others_match_id = $match->others_match_id; $match_id = $match->match_id; $lg = lm($model['model_local_league'],'Sports') ->select('lg_id','others_lg_id') ->where(['others_lg_id'=>$data['lg_id'],'source'=>$data['source']]) ->first(); if(count($lg) < 1) Render([], '10015', lang('Tips','Sports')->get('league_error')); //获取联赛 本地/源ID $others_lg_id = $lg->others_lg_id; $lg_id = $lg->lg_id; //查询 赔率数据是否存在 $oddsID = lm($model['model_odds_record'],'Sports') ->where(['odds_only'=>$data['odds_only']]) ->value('id'); $set_odds = [ 'match_id'=> $match_id, 'others_match_id'=> $others_match_id, 'odds_code'=> $data['odds_code'], 'status'=> $data['status'], 'sort'=> $data['sort'], 'p_code'=> $data['p_code'], 'odds'=> $data['odds'], 'condition'=> $data['condition'], 'odds_only'=> $data['odds_only'], 'source'=> $data['source'], 'type'=> $data['type'], 'team'=> $data['team'], 'lg_id'=> $lg_id, 'others_lg_id'=> $others_lg_id, 'ctime'=> $this->newTime, 'utime'=> $this->newTime, ]; //更新或写入赔率记录 if(!empty($oddsID)){ $ret = lm($model['model_odds_record'],'Sports') ->where(['id'=>$oddsID]) -> update($set_odds); if($ret < 1) Render([], '10020', lang('Tips','Sports')->get('add_odds_r_error')); }else{ $ret = lm($model['model_odds_record'],'Sports')->insert($set_odds); if($ret != true) Render([], '10020', lang('Tips','Sports')->get('add_odds_r_error')); } Render([], '1', lang('Tips','Sports')->get('success')); } /** * @param $data * @return mixed * json转数组 */ public function getAddData($data){ $data = json_decode($data,true); return $data; } }