tp5项目结算比赛
控制器
public function setbasguess(){
$id = input('id');
$list = db('basguess')->where('id',$id)->select();
$state = $list[0]['state'];
if($state=="比赛中"){
$this->assign('list',$list);
return $this->fetch();
}else{
$this->error('竞猜中的比赛无法结算');
}
//先检测状态,竞猜中的比赛没有封盘,是无法对其结算的
}
public function setbasgame(){
$id = input('id');
$odd = input('odd');
$list = db('bjingcai')->alias("a")->join('login b', 'a.uid = b.id')->where('a.gid',$id)->where('a.choice',$odd)->select();
//多表联合查询,所有竞猜胜利记录的二维数组
$count = db('bjingcai')->alias("a")->join('login b', 'a.uid = b.id')->where('a.gid',$id)->where('a.choice',$odd)->count();
//所有竞猜胜利记录的总和
for($i = 0;$i<$count;$i++){
$list[$i]['pro']+=$list[$i]['bet'];
//每次竞猜胜利记录的代币增加
$pro = $list[$i]['pro'];
$uid = $list[$i]['uid'];
db('login')->where('id',$uid)->update(['pro'=>$pro]);
//将增加的代币更新到数据库中
$list = db('bjingcai')->alias("a")->join('login b', 'a.uid = b.id')->where('a.gid',$id)->where('a.choice',$odd)->select();
//每更新一条记录,重新查询剩下的竞猜胜利记录,以免同一id的用户只进行最后一次胜利记录的更新
$this->redirect('index/bglist');
}
}
视图html
<div class="layui-content">
<div class="layui-row">
<div class="layui-card">
<div class="layui-card-header">结算</div>
{volist name="list" id="vo"}
<div style="margin-left: 100px;margin-bottom: 30px;">
一队: {$vo.team1}
</div>
<div style="margin-left: 100px;margin-bottom: 30px;">
二队: {$vo.team2}
</div>
<div style="margin-left: 100px;margin-bottom: 30px;">
竞猜项目一: {$vo.title1}
</div>
<div style="margin-left: 100px;margin-bottom: 50px;">
<a class="layui-btn" href="{:url('admin/set/setbasgame',['odd'=>'1a','id'=>$vo.gid])}">一队胜</a>
<a class="layui-btn" href="{:url('admin/set/setbasgame',['odd'=>'1b','id'=>$vo.gid])}">二队胜</a>
</div>
<div style="margin-left: 100px;margin-bottom: 30px;">
竞猜项目二: {$vo.title2}
</div>
<div style="margin-left: 100px;margin-bottom: 30px;">
<a class="layui-btn" href="{:url('admin/set/setbasgame',['odd'=>'2a','id'=>$vo.gid])}">大分胜</a>
<a class="layui-btn" href="{:url('admin/set/setbasgame',['odd'=>'2b','id'=>$vo.gid])}">小分胜</a>
</div>
{/volist}
</div>
</div>
</div>