1. 程式人生 > >PHP--翻牌活動(概率中獎..............)

PHP--翻牌活動(概率中獎..............)

控制器:

public function Remake(){
      //距離下場秒殺開始時間
        if(date('Y-m-d') == '2017-12-12'){
            if(date('H') < '10'){
                $time=strtotime(date('2017-12-12 10:00:00'))-time();
            }else if(date('H') < '18'){
                $time=strtotime(date('2017-12-12 18:00:00'))-time();
            }
else{ $time=0; } } //翻牌 $this->Flop(); //翻牌end $this->assign('time',$time); $this->display(); }
private function Flop(){
        //翻牌
        if($this->uid){
            $flopcount_model=M('flopcount');
            
$flopcount=$flopcount_model->find($this->uid); if(empty($flopcount)){ $flopcount_model->uid=$this->uid; $flopcount_model->count=0; $flopcount_model->add(); $this->assign("flopcount",0); }else{
$this->assign("flopcount",$flopcount['count']); } $flop_ulist_model=M('flop_ulist'); $flop_ulist1=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>1])->find(); $flop_ulist2=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>2])->find(); $flop_ulist3=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>3])->find(); $flop_ulist4=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>4])->find(); $flop_ulist5=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>5])->find(); $flop_ulist6=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>6])->find(); $flop_ulist7=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>7])->find(); $flop_ulist8=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>8])->find(); $this->assign("flop_ulist1",$flop_ulist1); $this->assign("flop_ulist2",$flop_ulist2); $this->assign("flop_ulist3",$flop_ulist3); $this->assign("flop_ulist4",$flop_ulist4); $this->assign("flop_ulist5",$flop_ulist5); $this->assign("flop_ulist6",$flop_ulist6); $this->assign("flop_ulist7",$flop_ulist7); $this->assign("flop_ulist8",$flop_ulist8); }else{ $this->assign("flopcount",0); } //翻牌end }
public function open(){
        if($this->isAjax()){
            if(strtotime(C('FLOP_ENDTIMES'))<time())ajaxmsg('活動已結束',2);
            if(time()<strtotime(C('FLOP_STATUS_TIMES')))ajaxmsg('活動未開始',2);
            if(!$this->uid)ajaxmsg('請先登入',2);
            $flopcount_model=M('flopcount');
            $flopcount=$flopcount_model->getFieldByUid($this->uid,'count');
            if($flopcount>0){
                $flop_res=$flopcount_model->where(['uid'=>$this->uid])->setDec('count');
                if($flop_res){
                    if(mt_rand(0,1)){
                        $FLOP_TYPE=C('FLOP_TYPE');
                        $flop_goods_model=M('flop_goods');
                        $type_arr=$flop_goods_model->field('type')->where(['last_num'=>['gt',0]])->select();
                        if(!empty($type_arr)){//沒牌了就都是沒中的牌
                            $type=$type_arr[array_rand($type_arr,1)]['type'];//隨機
                            $flop_goods_updata['last_num']=['exp',"last_num-1"];
                            $flop_goods_updata['hits']=['exp',"hits+1"];
                            $flop_goods_model->where(['type'=>$type])->save($flop_goods_updata);//減少牌數
                            $flop_ulist_model=M('flop_ulist');
                            $flop_ulist_find=$flop_ulist_model->where(['type'=>$type,'uid'=>$this->uid])->find();//增加使用者裡面的牌
                            if(empty($flop_ulist_find)){//查詢有沒有記錄
                                $flop_ulist_model->uid=$this->uid;
                                $flop_ulist_model->type=$type;
                                $flop_ulist_model->num=1;
                                $flop_ulist_model->last_num=1;
                                $flop_ulist_model->hits=0;
                                $flop_ulist_model->add();
                            }else{
                                $flop_ulist_map['uid']=$this->uid;
                                $flop_ulist_map['type']=$type;
                                $flop_ulist_updata['num']=['exp',"num+1"];
                                $flop_ulist_updata['last_num']=['exp',"last_num+1"];
                                $flop_ulist_model->where($flop_ulist_map)->save($flop_ulist_updata);
                            }
                            ajaxmsg($FLOP_TYPE[$type]['imgurl']);
                        }else{
                            ajaxmsg('/Style/suim/pubilc/image/flop/bl_no.png');
                        }
                    }else{
                        ajaxmsg('/Style/suim/pubilc/image/flop/bl_no.png');
                    }
                }else{
                    ajaxmsg('伺服器繁忙',2);
                }
            }else{
                ajaxmsg('次數不足',2);
            }
        }
    }
 //兌換
    public function exchange(){
        if($this->isAjax()){
            if(!$this->uid)ajaxmsg('請先登入',2);
            $types=$this->_post('types');
            $flop_ulist_model=M('flop_ulist');
            if($types!=1 && $types!=2 && $types!=3 && $types!=4)ajaxmsg("引數錯誤",2);
            $flop_ulist1=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>1])->find();//
            $flop_ulist2=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>2])->find();//
            $flop_ulist3=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>3])->find();//
            $flop_ulist4=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>4])->find();//
            $flop_ulist5=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>5])->find();//
            $flop_ulist6=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>6])->find();//
            $flop_ulist7=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>7])->find();//
            $flop_ulist8=$flop_ulist_model->field('last_num')->where(['uid'=>$this->uid,'type'=>8])->find();//

            $market_log_model=M('market_log');
            $true=false;
            $flop_ulist_map['uid']=$this->uid;
            $flop_ulist_updata['last_num']=['exp','last_num-1'];
            $flop_ulist_updata['hits']=['exp','hits+1'];

            if($types==1 && $flop_ulist1['last_num']>0 && $flop_ulist2['last_num']>0){
                $market_log_model->gid=76;//商品ID
                $market_log_model->name='10元現金紅包';//名稱
                $market_log_model->price=10;//價值
                $market_log_model->cost=0;//兌換積分
                $flop_ulist_map['type']=['in','1,2'];
                $flop_ulist_model->where($flop_ulist_map)->save($flop_ulist_updata);
                $true=true;
            }
            if($types==2 && $flop_ulist1['last_num']>0 && $flop_ulist2['last_num']>0 && $flop_ulist3['last_num']>0 && $flop_ulist4['last_num']>0){
                $market_log_model->gid=77;//商品ID
                $market_log_model->name='20元現金紅包';//名稱
                $market_log_model->price=20;//價值
                $market_log_model->cost=0;//兌換積分
                $flop_ulist_map['type']=['in','1,2,3,4'];
                $flop_ulist_model->where($flop_ulist_map)->save($flop_ulist_updata);

                $true=true;
            }
            if($types==3 && $flop_ulist1['last_num']>0 && $flop_ulist2['last_num']>0 && $flop_ulist3['last_num']>0 && $flop_ulist4['last_num']>0 && $flop_ulist5['last_num']>0 && $flop_ulist6['last_num']>0){
                $market_log_model->gid=78;//商品ID
                $market_log_model->name='50元話費';//名稱
                $market_log_model->price=50;//價值
                $market_log_model->cost=0;//兌換積分
                $flop_ulist_map['type']=['in','1,2,3,4,5,6'];
                $flop_ulist_model->where($flop_ulist_map)->save($flop_ulist_updata);
                $true=true;
            }
            if($types==4 && $flop_ulist1['last_num']>0 && $flop_ulist2['last_num']>0 && $flop_ulist3['last_num']>0 && $flop_ulist4['last_num']>0 && $flop_ulist5['last_num']>0 && $flop_ulist6['last_num']>0 && $flop_ulist7['last_num']>0 && $flop_ulist8['last_num']>0){
                $market_log_model->gid=79;//商品ID
                $market_log_model->name='100元現金紅包';//名稱
                $market_log_model->price=100;//價值
                $market_log_model->cost=0;//兌換積分
                $flop_ulist_map['type']=['in','1,2,3,4,5,6,7,8'];
                $flop_ulist_model->where($flop_ulist_map)->save($flop_ulist_updata);
                $true=true;
            }
            if($true){
                $market_log_model->uid=$this->uid;
                $market_log_model->type=1;
                $market_log_model->style='';
                $market_log_model->num=1;//兌換數量
                $market_log_model->info="處理中";//資訊
                $market_log_model->add_ip=get_client_ip();
                $market_log_model->add_time=time();
                $market_log_model->status= 0;//未領取
                $market_log_model->way= 2;//快遞
                $market_log_model->way= 2;//快遞
                $market_log_model->add();
                ajaxmsg("兌換成功");
            }else{
                ajaxmsg("兌換失敗",2);
            }
        }
    }

前端展示:

<include file="Pub:header-up" />
<title>賺翻雙十二,翻卡牌贏大獎</title>
<style>
    .content {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        overflow: auto;}
    .activity img {
        width: 100%;
        margin: 0;
        padding: 0;
        display: block;
        /*pointer-events: none;*/
    }
    .activity-register {
        position: relative;
    }
    .activity-register-nav-2 {
        position: absolute;
        width: 90%;
        top: 0;
        left: 50%;
        right: 50%;
        margin-left: -45%;
        border-radius: .5rem;
        text-align: center;
    }
    .activity-register .activity-register-nav-2 .activity-input {
        width: 75%;
        height: 1.8rem;
        display: inline-block;
        border-radius: .2rem;
        display: inline-block;
        margin: 0 auto;
        background-color: white;
        text-align: left;
        margin-bottom: .6rem;
    }
    li{list-style-type:none;float:left}
    em{font-style: normal}
    .seckill_time{margin-top:2rem;color:#fff;font-size:.5rem;line-height:1.1rem}
    .opportunity em,.seckill_time em{display:inline-block;background:#fff;height:1rem;width:1rem;margin-right:.1rem;color:#000}
    .active_time{text-align:center;color:rgb(168,99,253);font-size:.6rem;line-height:1.1rem}
    .active_typw img{width:38%;float:left;text-align: center}
    .opportunity{font-size: .7rem;color:rgb(255,180,100);}
    .opportunity em{background:rgb(233,212,127);color:rgb(193,47,8);border-radius: 5px;text-align: center}
    .nu img{
        width: 10%;
    }
    .activity-register .my_num img{width: 10%;float: left}
    .duih{float:left;width: 40%;margin: 0rem 0.5rem}
    .duihuan{padding:0rem 1rem}
    .artGroup {display: block;width: 25%;height: 80px; position: relative;float: left;}
    .artwork {display: block;width: 100%;height: 100%;}
    .artGroup img {width: 100%;
        height: 100%;
        position: absolute;
        display: block;
    }
    .artGroup .detail {
        display: block;
        /*background: #fff;*/
        width: 100%;
        height: 100%;
        position: absolute;
    }
    .artGroup .detail h3 {
        font: 300 18px/1.1 Raleway,"Microsoft YaHei",Dosis, sans-serif;
        text-align: center;
        color: orange;
    }
    .artGroup .detail p {
        font: 200 13px/1.2 Raleway,"Microsoft YaHei",Dosis, sans-serif;
        text-align: left;
        padding: 0 0.25em;
    }
    article {
        clear: both;
        font: 300 15px/1.2 Raleway,"Microsoft YaHei",Dosis, sans-serif;
        margin: 2em auto;
        max-width: 600px;
    }

    /* Older Browsers */
    .artGroup.slide {
        overflow: hidden;
    }
    .artGroup.slide .detail {
        bottom: -364px;
    }
   /* .artGroup.flip .detail>img{
       display: none;
    }*/

    /* Newer Browsers */
    .artGroup.flip {
        -webkit-perspective: 800px;
        perspective: 800px;
    }
    .artGroup.flip .artwork {
        -webkit-transition: -webkit-transform 1s ease;
        transition: transform 1s ease;

        -webkit-transform-style: preserve-3d;
        transform-style: preserve-3d;
    }

    .artGroup.flip .detail, .artGroup.flip .theFlip {
        -webkit-transform: rotateY(-180deg);
        transform: rotateY(-180deg);
    }

    .artGroup.flip img {
        -webkit-backface-visibility: hidden;
        backface-visibility: hidden;
    }
    .content-padded {
        margin: .8rem;
    }
</style>
<div class="content activity">
    <img src="__ROOT__/Style/active/wapimg/bg_01.png">
    <a name="regist"></a>
    <div class="activity-register">
        <img src="__ROOT__/Style/active/wapimg/bg_02.png">
        <div class="activity-register-nav-2">
            <div class="seckill_time" id="seckill_time">距離下場秒殺開始時間:<em id='hour'></em><em id='minute'></em><em id='second'></em></div>
            <div class="active_time">活動時間:2017.12.12</div>
            <div style="text-align:center">
                <div class="active_typw">
                    <img src="__ROOT__/Style/active/wapimg/tzq_blue_g.png" id="am"style="margin:0rem 1.5rem">
                    <img src="__ROOT__/Style/active/wapimg/tzq_red_g.png" id="pm">
                </div>
            </div>
        </div>
    </div>
    <img src="__ROOT__/Style/active/wapimg/jk_01.png">
    <div class="activity-register">
        <img src="__ROOT__/Style/active/wapimg/jk_02.png">
        <div class="activity-register-nav-2">
            <div class="opportunity" style="height: .9rem"></div>
            <div style="margin:auto;background:rgb(193,47,8);width: 88%">
                <div style="width:7.5rem;color:rgb(255,180,100)">您還有<span id="count">{$flopcount}</span>次機會</div>
            </div>
            <div class="fpai">
                <div style="margin: auto;width:85%;overflow:auto">
                    <div class="fanpai" style="overflow: auto;text-align:center;">
                        <div class="artGroup slide">
                            <div class="artwork"> <img src="__ROOT__/Style/active/wapimg/kapian.png">
                                <div class="detail">
                                    <img src="__ROOT__/Style/active/wapimg/kapian_k.png" alt="">
                                </div>
                            </div>
                        </div>
                        <div class="artGroup slide">
                            <div class="artwork"> <img src="__ROOT__/Style/active/wapimg/kapian.png">
                                <div class="detail">
                                    <img src="__ROOT__/Style/active/wapimg/kapian_k.png" alt="">
                                </div>
                            </div>
                        </div>
                        <div class="artGroup slide">
                            <div class="artwork"> <img src="__ROOT__/Style/active/wapimg/kapian.png">
                                <div class="detail">
                                    <img src="__ROOT__/Style/active/wapimg/kapian_k.png" alt="">
                                </div>
                            </div>
                        </div>
                        <div class="artGroup slide">
                            <div class="artwork"> <img src="__ROOT__/Style/active/wapimg/kapian.png">
                                <div class="detail">
                                    <img src="__ROOT__/Style/active/wapimg/kapian_k.png" alt="">
                                </div>
                            </div>
                        </div>
                        <div class="artGroup slide">
                            <div class="artwork"> <img src="__ROOT__/Style/active/wapimg/kapian.png">
                                <div class="detail">
                                    <img src="__ROOT__/Style/active/wapimg/kapian_k.png" alt="">
                                </div>
                            </div>
                        </div>
                        <div class="artGroup slide">
                            <div class="artwork"> <img src="__ROOT__/Style/active/wapimg/kapian.png">
                                <div class="detail">
                                    <img src="__ROOT__/Style/active/wapimg/kapian_k.png" alt="">
                                </div>
                            </div>
                        </div>
                        <div class="artGroup slide">
                            <div class="artwork"> <img src="__ROOT__/Style/active/wapimg/kapian.png">
                                <div class="detail">
                                    <img src="__ROOT__/Style/active/wapimg/kapian_k.png" alt="">
                                </div>
                            </div>
                        </div>
                        <div class="artGroup slide">
                            <div class="artwork"> <img src="__ROOT__/Style/active/wapimg/kapian.png">
                                <div class="detail">
                                    <img src="__ROOT__/Style/active/wapimg/kapian_k.png" alt="">
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="activity-register-nav-2">
        </div>
        <div class="activity-register">
            <img src="__ROOT__/Style/active/wapimg/jk_03.png">
            <div class="activity-register-nav-2">
                <div style="height: .8rem"></div>
                <div style="margin: auto;width:95%;height: 160px;margin-top:0.3rem ">
                    <div class="content" style="margin-top:0.1rem">
                        <div class="content-padded grid-demo">
                            <div class="row">
                                <div class="col-25" style="text-align:right">
                                    <em style="margin-right:0.3rem;color:rgb(231,78,25)">{$flop_ulist1.last_num|default=0}</em>
                                    <li style="margin-top:-1.3rem"><img src="__ROOT__/Style/active/wapimg/text_1.png"></li>
                                </div>
                                <div class="col-25" style="text-align:right">
                                    <em style="margin-right:0.3rem;color:rgb(231,78,25)">{$flop_ulist2.last_num|default=0}</em>
                                    <li style="margin-top:-1.3rem"><img src="__ROOT__/Style/active/wapimg/text_2.png"></li>
                                </div>
                                <div class="col-25" style="text-align:right">
                                    <em style="margin-right:0.3rem;color:rgb(231,78,25)">{$flop_ulist3.last_num|default=0}</em>
                                    <li style="margin-top:-1.3rem"><img src="__ROOT__/Style/active/wapimg/text_3.png"></li>
                                </div>
                                <div class="col-25" style="text-align:right">
                                    <em style="margin-right:0.3rem;color:rgb(231,78,25)">{$flop_ulist4.last_num|default=0}</em>
                                    <li style="margin-top:-1.3rem"><img src="__ROOT__/Style/active/wapimg/text_4.png"></li>
                                </div>
                                <div class="col-25" style="text-align:right">
                                    <em style="margin-right:0.3rem;color:rgb(231,78,25)">{$flop_ulist5.last_num|default=0}</em>
                                    <li style="margin-top:-1.3rem"><img src="__ROOT__/Style/active/wapimg/text_5.png"></li>
                                </div>
                                <div class="col-25" style="text-align:right">
                                    <em style="margin-right:0.3rem;color:rgb(231,78,25)">{$flop_ulist6.last_num|default=0}</em>
                                    <li style="margin-top:-1.3rem"><img src="__ROOT__/Style/active/wapimg/text_6.png"></li>
                                </div>
                                <div class="col-25" style="text-align:right">
                                    <em style="margin-right:0.3rem;color:rgb(231,78,25)">{$flop_ulist7.last_num|default=0}</em>
                                    <li style="margin-top:-1.3rem"><img src="__ROOT__/Style/active/wapimg/text_7.png"></li>
                                </div>
                                <div class="col-25" style="text-align:right">
                                    <em style="margin-right:0.3rem;color:rgb(231,78,25);">{$flop_ulist8.last_num|default=0}</em>
                                    <li style="margin-top:-1.3rem"><img src="__ROOT__/Style/active/wapimg/text_8.png"></li>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <img src="__ROOT__/Style/active/wapimg/jkp_02.png" >
        </div>
        <div class="activity-register">
            <img src="__ROOT__/Style/active/wapimg/dhbg_01.png" alt="">
        </div>
        <div class="activity-register">
            <img src="__ROOT__/Style/active/wapimg/dhbg_02.png" width="100%">
            <div class="activity-register-nav-2">
                <div style="overflow: auto" class="duihuan">
                    <div class="duih" data="1">
                        <img src="__ROOT__/Style/active/wapimg/dhsp_01.png"  >
                    </div>
                    <div class="duih" data="2">
                        <img src="__ROOT__/Style/active/wapimg/dhsp_02.png">
                    </div>
                </div>
                <div style="overflow: auto;margin-top: 1rem" class="duihuan">
                    <div class="duih" data="3">
                        <img src="__ROOT__/Style/active/wapimg/dhsp_03.png"  >
                    </div>
                    <div class="duih" data="4">
                        <img src="__ROOT__/Style/active/wapimg/dhsp_04.png">
                    </div>
                </div>
            </div>
        </div>
        <div class="activity-register">
            <img src="__ROOT__/Style/active/wapimg/bg_05.jpg" width="100%">
        </div>
    </div>

</div>
<script src="__ROOT__/Style/active/js/jquery.js"></script>
<script type="text/javascript">
    $(function () {
        $('.artGroup').removeClass('slide').addClass('flip');
        $('.artGroup').on('click', function () {
            var ff=$(this);
            $.post({
                url:"__URL__/open",
                dataType:"json",
                type:"post",
                success:function (data) {
                    if(data.status==1){
                        ff.find('.detail img').attr('src',data.message);
                        ff.find('.artwork').addClass('theFlip');
                        $("#count").text($("#count").text()-1);
                    }else{
                        alert(data.message);
                    }
                }
            });
        });
    });
    $(".duih").click(function () {
        $.post({
            url:"__URL__/exchange",
            dataType:"json",
            type:"post",
            data:{types:$(this).attr('data')},
            success:function (data) {
                alert(data.message);
                if(data.status==1){
                    setTimeout( function(){window.location.href="/market/my_exchange";} , 1500);
                }
            }
        });
    })
    $("#am").click(function(){
        var type = 1;
        $.ajax({
            url:'__URL__/envelopeSnatching',
            type:'post', 
            dataType:'json',
            data:{type:type}, 
            success:function(data){ 
                alert('您來晚了,券已搶完!'); 
            } 
        }); 
    }); 
    $("#pm").click(function(){ 
        var type = 2; 
        $.ajax({ 
            url:'__URL__/envelopeSnatching', 
            type:'post', 
            dataType:'json', 
            data:{type:type}, 
            success:function(data){ 
                alert('您來晚了,活動已經結束了!'); 
            } 
        }); 
    }); 
    var time='{$time}'; 
    if(time == 0){ 
        $("#hour").html('00');//計算小時  
        $("#minute").html('00');//計算分鐘  
        $("#second").html('00');//計算秒殺  
    }else{ 
        var hour_elem = $('#hour'); 
        var minute_elem = $('#minute'); 
        var second_elem = $('#second'); 
        var timer = setInterval(function(){ 
            if(time > 1){ 
                var hour = Math.floor((time / 3600) % 24); 
                var minute = Math.floor((time / 60) % 60);
                var second = Math.floor(time % 60); 
                $("#hour").text(hour<10?"0"+hour:hour);//計算小時  
                $("#minute").text(minute<10?"0"+minute:minute);//計算分鐘  
                $("#second").text(second<10?"0"+second:second);//計算秒殺 --time; 
            }else{ 
                clearInterval(timer); 
            } },1000); 
    } 
    </script>