www_fpvone_cn/application/api/controller/Club.php

152 lines
6.3 KiB
PHP

<?php
namespace app\api\controller;
use app\common\controller\Api;
use think\Config;
use app\admin\model\Club as ClubModel;
use app\admin\model\ClubInvate;
use app\common\model\Players;
use app\admin\model\cms\Archives;
use app\admin\model\LeagueClubIntegral;
use app\admin\model\MatchRanking;
use app\index\controller\League;
/**
* 首页接口
*/
class Club extends Api
{
protected $noNeedLogin = ['*'];
protected $noNeedRight = ['*'];
/**
* 首页
*
*/
public function index()
{
$data['banner'] = \addons\cms\model\Block::getBlockList(["id"=>"block","name"=>"indexfocus","row"=>"5","orderby"=>"weigh"]);
$data['hotNews'] = \addons\cms\model\Archives::getArchivesList(["id"=>"item","limit"=>"5","channel"=>"43","type"=>"sons"]);
$data['industry'] = \addons\cms\model\Archives::getArchivesList(["id"=>"item","limit"=>"4","channel"=>"44","type"=>"sons"]);
$data['fly'] = \addons\cms\model\Archives::getArchivesList(["id"=>"item","limit"=>"6","channel"=>"45","type"=>"sons"]);
$data['atlas'] = \addons\cms\model\Archives::getArchivesList(["id"=>"item","limit"=>"4","channel"=>"46","type"=>"sons"]);
$data['video'] = \addons\cms\model\Archives::getArchivesList(["id"=>"item","channel"=>"47","addon"=>"video","limit"=>"0,5"]);
foreach ($data as $keys => $vals) {
if (count($vals) > 1) {
foreach ($vals as $key => $val) {
$data[$key][$key] = $val->toArray();
}
}
}
return json($data);
}
//地区筛选
public function area_club(){
$club = new ClubModel();
$province = $this->request->param("province");
if($province) $where['province'] = $province;
$city = $this->request->param("city");
if($city) $where['city'] = $city;
$district = $this->request->param("district");
if($district) $where['district'] = $district;
// if(empty($club_id)) $this->error('缺少参数');
// var_dump($where);exit;
$club_res = $club->field('id,name,logo,flag,name_short')
->where($where)->where('status in (9)')
->orderRaw('convert(name_short using gbk) ASC')
->select();
return json($club_res);
}
public function all_club(){
$club = new ClubModel();
$club_res = $club->field('id,name,logo,flag,name_short')->where('status in (9)')
->orderRaw('convert(name_short using gbk) ASC')
->select();
return json($club_res);
}
public function club_detail(){
$club = new ClubModel();
$invate = new ClubInvate();
$player = new Players();
$Archives = new Archives();
$MatchRanking = new MatchRanking();
$League = new League();
$club_id = $this->request->param("club_id");
$LeagueClubIntegral = new LeagueClubIntegral();
if(empty($club_id)) $this->error('缺少参数');
$Archives_res = $Archives->where('channel_id',73)->select();
unset($Archives_res[1]);//国家集训队
unset($Archives_res[4]);//测试站
// var_dump($Archives_res);exit;
$station_integral = [];$j = 0;
$lastElement = end($Archives_res);
foreach ($Archives_res as $value){
$club_integral_res = $LeagueClubIntegral->where('club_id',$club_id)->where('match_id',$value['id'])->find();
if(!empty($club_integral_res)){
//复用积分排名
$res = $League->club_integral($value['id'],$club_integral_res['name_short']);
// var_dump($res['number']);exit;
$player_count = $MatchRanking->where('match_id',$value['id'])->where('name_short',$club_integral_res['name_short'])->where('course',101)->where('other_round',1)->count();
$station_integral[] = array('match_id'=>$value['id'],'name'=> $value['title'],'sum_grade'=>$club_integral_res['sum_grade'],'number'=>$res['integral_sort'],'player_number'=>$player_count,'nostart'=>0);
// var_dump($player_count);exit;
}else{
$station_integral[] = array('match_id'=>$value['id'],'name'=> $value['title'],'sum_grade'=>0,'number'=>0,'player_number'=>0,'nostart'=>0);
}
//判断最后一场比赛是否未开始
if($value['id'] == $lastElement['id']){
$res = db("cms_addonproducts")->where('id',$value['id'])->find();
if(strtotime($res['stime']) > time()){
// var_dump(strtotime($res['stime']));exit;
$station_integral[$j]['nostart'] = 1;
}
// var_dump($res['stime']);exit;
}
$j++;
// var_dump($club_integral_res);exit;
}
// var_dump($station_integral);exit;
$club_res = $club->field('id,user_id,name,name_short,province,city,district,logo,flag,competition_slogan,leader')->where('id',$club_id)->find();
$all_invate = $invate->where('club_id',$club_res['id'])->where('status',6)->where('deletetime',null)->select();
$all_player = []; $i = 0;
foreach ($all_invate as $v){
$player_info = $player->field('id,real_name,player_pic')->where('id',$v['player_id'])->find();
$all_player[$i] = $player_info;
$i++;
}
$club_res['all_player'] = $all_player;
$club_res['station_integral'] = $station_integral;
return json($club_res);
}
public function randclub(){
$club = new ClubModel();
$club_res = $club->field('id,user_id,name,name_short,province,city,district,logo,flag,competition_slogan,leader')->where('status',9)->orderRaw("rand()")->limit(6)->select();
$invate = new ClubInvate();
$player = new Players();
foreach ($club_res as &$val){
$all_invate = $invate->where('club_id',$val['id'])->where('status',6)->select();
$all_player = []; $i = 0;
foreach ($all_invate as $v){
$player_info = $player->field('id,real_name,player_pic')->where('id',$v['player_id'])->find();
$all_player[$i] = $player_info;
$i++;
}
$val['all_player'] = $all_player;
}
return json($club_res);
}
}