186 lines
7.0 KiB
PHP
186 lines
7.0 KiB
PHP
<?php
|
|
/**
|
|
* @Created by PhpStorm.
|
|
* @Author:Soar
|
|
* @Time:2023/11/24 9:25
|
|
*/
|
|
|
|
namespace app\index\service;
|
|
|
|
use \app\admin\model\cms\Archives;
|
|
use app\common\model\MatchContestant;
|
|
use app\common\model\Players;
|
|
use \app\admin\model\cms\Leaguearchives;
|
|
|
|
class MatchService extends Service
|
|
{
|
|
private $MATCH_MODEL = 2;
|
|
|
|
public function __construct()
|
|
{
|
|
// $this->archivesModel = new Archives();
|
|
$this->archivesModel = new Leaguearchives();
|
|
$this->addonproductModel = db("cms_addonproduct");
|
|
}
|
|
public function getAllMatch($param)
|
|
{
|
|
// $data = array('url'=>'dra.sdoijhflk','full'=>'sdfsd');
|
|
|
|
// return ($data);
|
|
// var_dump($this->MATCH_MODEL);exit;
|
|
if (!empty($param['date'])) {
|
|
$year = $param['date']."-01-01";
|
|
$lastYear = ($param['date']+1)."-01-01";
|
|
|
|
$match_list = $this->archivesModel
|
|
->alias("archives")
|
|
->join("cms_addonproduct" . ' addon', 'addon.id=archives.id', 'LEFT')
|
|
->where("model_id", "eq", $this->MATCH_MODEL)
|
|
->where("channel_id", "eq", 36)
|
|
->where("status", "eq", "normal")
|
|
->where("createtime", ">", strtotime($year))
|
|
->where("createtime", "<", strtotime($lastYear))
|
|
->whereNull("deletetime")
|
|
->order("archives.id", "DESC")
|
|
->paginate($param['limit']);
|
|
|
|
$years = $this->archivesModel->query("SELECT DATE_FORMAT(addon.starttime, '%Y') as date_key
|
|
FROM `peewee_cms_archives` `archives`
|
|
LEFT JOIN `peewee_cms_addonproduct` `addon`
|
|
ON `addon`.`id`=`archives`.`id`
|
|
WHERE ( `model_id` = 2
|
|
AND `channel_id` = 36
|
|
AND `deletetime` IS NULL )
|
|
AND `archives`.`deletetime` IS NULL GROUP BY `date_key`");
|
|
|
|
$result = array("total" => $match_list->total(), "rows" => $match_list->items(), "years" => $years);
|
|
|
|
} else {
|
|
$match_list = $this->archivesModel
|
|
->alias("archives")
|
|
->join("cms_addonproduct" . ' addon', 'addon.id=archives.id', 'LEFT')
|
|
|
|
->where("model_id", "eq", $this->MATCH_MODEL)
|
|
->where("channel_id", "eq", 36)
|
|
->whereNull("deletetime")
|
|
->where("status", "eq", "normal")
|
|
// ->fetchSql(true)
|
|
->order("archives.id", "DESC")
|
|
// ->select();
|
|
->paginate( $param['limit']);
|
|
|
|
|
|
foreach ($match_list->items() as $value){
|
|
$value['url'] = 'https://www.fpvone.cn/wurenjijingsusaicheng/'.$value['id'].'.html';
|
|
$value['fullurl'] = 'https://www.fpvone.cn/wurenjijingsusaicheng/'.$value['id'].'.html';
|
|
$value['status_text'] = 'Status Normal';
|
|
}
|
|
$match_lists = $this->archivesModel
|
|
->alias("archives")
|
|
|
|
->join("cms_addonproducts" . ' addons', 'addons.id=archives.id', 'LEFT')
|
|
->where("model_id in (6)",)
|
|
->where("channel_id in (73)")
|
|
->whereNull("deletetime")
|
|
->where("status", "eq", "normal")
|
|
// ->fetchSql(true)
|
|
->order("archives.id", "DESC")
|
|
// ->select();
|
|
->paginate( $param['limit']);
|
|
// var_dump(str_replace("www", "dra", $match_lists->items()[0]['url']));exit;
|
|
// $match_list->union($match_lists, true);
|
|
// $change = $match_lists->items()[0]->toArray();
|
|
// $change['url'] = '';
|
|
$match_lists->items()[0]['url'] = 'https://dra.fpvone.cn/matchs/804.html';
|
|
$match_lists->items()[0]['fullurl'] = 'https://dra.fpvone.cn/matchs/804.html';
|
|
$match_lists->items()[0]['status_text'] = 'Status Normal';
|
|
// $match_lists->items()[0]['admin_id'] = 666;
|
|
// var_dump($change[0]->toArray()['url']);exit;
|
|
// foreach ($match_lists->items()[0] as &$val){
|
|
// $val['url'] = str_replace("www", "dra", $val['url']);
|
|
// }
|
|
// var_dump($match_lists);exit;
|
|
$mergedArray = array_merge($match_lists->items(),$match_list->items());
|
|
// var_dump($mergedArray);exit;
|
|
array_multisort(array_column($mergedArray,'stime'), SORT_DESC,$mergedArray);
|
|
$years = $this->archivesModel->query("SELECT DATE_FORMAT(addon.starttime, '%Y') as date_key
|
|
FROM `peewee_cms_archives` `archives`
|
|
LEFT JOIN `peewee_cms_addonproduct` `addon`
|
|
ON `addon`.`id`=`archives`.`id`
|
|
WHERE ( `model_id` = 2
|
|
AND `channel_id` = 36
|
|
AND `deletetime` IS NULL )
|
|
AND `archives`.`deletetime` IS NULL GROUP BY `date_key`");
|
|
|
|
|
|
$result = array("total" => $match_lists->total(), "rows" => $mergedArray, "years" => $years);
|
|
|
|
}
|
|
|
|
if (!empty($result['rows'])) {
|
|
foreach ($result['rows'] as $key => $val) {
|
|
$matchContestant = new MatchContestant();
|
|
//宁波站
|
|
if($val->id == 1007){
|
|
$val->entry_player = $matchContestant->where("match_id", $val->id)
|
|
->whereIn("status", [1, 2])
|
|
->count("*");
|
|
}else{
|
|
$val->entry_player = '统计中';
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* 根据身份证查询选手是否参加赛事
|
|
* @Author:Soar
|
|
* @Time:2023/12/6 14:21
|
|
* @param $match_id
|
|
* @param $user_id
|
|
* @return void
|
|
*/
|
|
public function getMatchUserInfo($match_id, $user_id)
|
|
{
|
|
$players = new Players();
|
|
$matchContestant = new MatchContestant();
|
|
$player_info = $players->where("card_number", "eq", $user_id)->select();
|
|
|
|
if (empty($player_info)) {
|
|
return;
|
|
}
|
|
|
|
foreach ($player_info as $value) {
|
|
$match_info = $matchContestant->where("player_id", "eq", $value->id)
|
|
->where("match_id", "eq", $match_id)
|
|
->order("id", "DESC")
|
|
->find();
|
|
if (!empty($match_info)) {
|
|
$player_info = $value;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
if (empty($match_info)) {
|
|
return;
|
|
}
|
|
|
|
$archives_info = $this->archivesModel
|
|
->where("id", "eq", $match_id)
|
|
->find();
|
|
|
|
if (empty($archives_info)) {
|
|
return;
|
|
}
|
|
|
|
$res['title'] = $archives_info->title;
|
|
$res['status'] = $match_info->status;
|
|
$res['name'] = $player_info->real_name;
|
|
|
|
return $res;
|
|
}
|
|
} |