欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

这段签到代码有问题吗

程序员文章站 2022-04-09 17:13:58
...
check_login();
        
        $m_time=$this->getMillisecond();
        $con['si_time']=array('gt',date('Y-m-d'));
                $ranking=M('sign')->where($con)->count();
                if($ranking){
                    $haha=intval($ranking);
                    switch ($haha){
                        case 1:
                          $pm=5;//给5块
                          $row=2;
                          $ch="亚军";
                          break;
                        case 2:
                          $pm=3;//给两块
                          $row=2;
                          $ch="季军";
                          break;
                        default:
                          $pm=0;
                        }
                }else{
                    $pm=10;//给10块赠金券
                    $row=1;
                    $ch="冠军";
                }
                if($pm>0){
                    $this->insertGiveCoupon($this->memberID,$pm);
                    $memo="
您是今天的签到{$ch},成功领取{$pm}赠金券"; } $dao=M('sign');//实例化sign对象 $current=date('Y-m-d H:i:s',time()); $hasSign=$dao->where("userId={$this->memberID}")->find(); $count=$hasSign['si_count']; //查找会员名 $member=M('Members'); $where['id']=$this->memberID; $memberName=$member->where($where)->field('name')->find(); //$this->membername=$memberName['name']; $this->uid=$this->memberID; //如果执行成功 if($hasSign){ $lastSignDay=strtotime("{$hasSign['si_time']}"); $lastSign=date('Y-m-d',$lastSignDay); $today=date('Y-m-d',time()); if($lastSign==$today){ //echo "今天已签到,您已连续签到 {$count} 天,连续签到5天每天+5元代金券!"; $this->ajaxReturn('', "今天已签到!", 0);exit(); } $residueHour=24+24-date('H',$lastSignDay); //有效的签到时间 (签到当天剩余的小时+1天的时间) $formatHour=strtotime(date('Y-m-d H',$lastSignDay).':00:00');//签到当天 2014-12-07 18:00:00 $lastSignDate=strtotime("+{$residueHour}hour",$formatHour);//在2014-12-07 18:00:00 基础上+ 有效的签到时间 if(time()>$lastSignDate){ //当前时间 > 上一次签到时间 $count=1; }else{ $count=$count+1; } $sign=$dao->where("userId={$this->memberID}")->save(array('si_time'=>$current,'si_count'=>$count,'m_second'=>$m_time)); //签到表 }else{ $sign=$dao->add(array('userId'=>$this->memberID,'si_count'=>1,'si_time'=>$current,'m_second'=>$m_time)); //签到表 $count=1; } if($sign){ //第一天签到+1 第二天签到+2 第三天签到+3 第四天签到+4 第五天+5 连续5天每天+5 switch ($count){ case 1: $sc_score=1; break; case 2: $sc_score=2; break; case 3: $sc_score=3; break; case 4: $sc_score=4; break; default: $sc_score=5; } $dao->where("userId={$this->memberID}")->setInc('coin',$sc_score); //签到金额累加 $coin=$dao->where("userId={$this->memberID}")->field('coin')->find(); if($coin['coin']>=20){ $dao->where("userId={$this->memberID}")->setDec('coin',20);//如果满20将生成一张20的代金券 $this->insertCoupon('会员签到代金券',20,$this->memberID); } $data=array( 'userId'=>$this->memberID, 'sc_score'=>$sc_score, 'sc_detail'=>'签到+'.$sc_score, 'sc_type'=>1 ); M('score')->add($data); //积分表 if($count>0){ $this->ajaxReturn('', "签到成功!您已签到,成功领取{$sc_score}元代金券!{$memo}", 1);exit(); }else{ $this->ajaxReturn('', "您已签到!", 1);exit(); } }else{ $this->ajaxReturn('', "签到失败,请稍后重试!", 0);exit(); } } //私有方法,生成代金券 private function insertCoupon($name,$amount,$mid){ $data['name']=trim($name); $data['amount']=$amount; $data['coupon'] = array(); $data['coupon']=md5(uniqid(md5(microtime(true)),true)); $data['start_time']=time(); $data['expire_time']=strtotime("+2 year"); $data['dateline']=time(); $data['status']=1; $data['user_id']=$mid; M('coupon')->add($data); } //私有方法,生成赠金券 private function insertGiveCoupon($mid,$amount){ $map['user_id']=$mid; $map['status']=1; $res=M('givecoupon')->where($map)->find(); if($res){ M('givecoupon')->where($map)->setInc('amount',$amount); }else{ $data['name']='赠金券'; $data['amount']=$amount; $data['coupon'] = array(); $data['coupon']=md5(uniqid(md5(microtime(true)),true)); $data['start_time']=time(); $data['expire_time']=strtotime("next year"); $data['dateline']=time(); $data['status']=1; $data['user_id']=$mid; M('givecoupon')->add($data); } }

回复内容:

check_login();
        
        $m_time=$this->getMillisecond();
        $con['si_time']=array('gt',date('Y-m-d'));
                $ranking=M('sign')->where($con)->count();
                if($ranking){
                    $haha=intval($ranking);
                    switch ($haha){
                        case 1:
                          $pm=5;//给5块
                          $row=2;
                          $ch="亚军";
                          break;
                        case 2:
                          $pm=3;//给两块
                          $row=2;
                          $ch="季军";
                          break;
                        default:
                          $pm=0;
                        }
                }else{
                    $pm=10;//给10块赠金券
                    $row=1;
                    $ch="冠军";
                }
                if($pm>0){
                    $this->insertGiveCoupon($this->memberID,$pm);
                    $memo="
您是今天的签到{$ch},成功领取{$pm}赠金券"; } $dao=M('sign');//实例化sign对象 $current=date('Y-m-d H:i:s',time()); $hasSign=$dao->where("userId={$this->memberID}")->find(); $count=$hasSign['si_count']; //查找会员名 $member=M('Members'); $where['id']=$this->memberID; $memberName=$member->where($where)->field('name')->find(); //$this->membername=$memberName['name']; $this->uid=$this->memberID; //如果执行成功 if($hasSign){ $lastSignDay=strtotime("{$hasSign['si_time']}"); $lastSign=date('Y-m-d',$lastSignDay); $today=date('Y-m-d',time()); if($lastSign==$today){ //echo "今天已签到,您已连续签到 {$count} 天,连续签到5天每天+5元代金券!"; $this->ajaxReturn('', "今天已签到!", 0);exit(); } $residueHour=24+24-date('H',$lastSignDay); //有效的签到时间 (签到当天剩余的小时+1天的时间) $formatHour=strtotime(date('Y-m-d H',$lastSignDay).':00:00');//签到当天 2014-12-07 18:00:00 $lastSignDate=strtotime("+{$residueHour}hour",$formatHour);//在2014-12-07 18:00:00 基础上+ 有效的签到时间 if(time()>$lastSignDate){ //当前时间 > 上一次签到时间 $count=1; }else{ $count=$count+1; } $sign=$dao->where("userId={$this->memberID}")->save(array('si_time'=>$current,'si_count'=>$count,'m_second'=>$m_time)); //签到表 }else{ $sign=$dao->add(array('userId'=>$this->memberID,'si_count'=>1,'si_time'=>$current,'m_second'=>$m_time)); //签到表 $count=1; } if($sign){ //第一天签到+1 第二天签到+2 第三天签到+3 第四天签到+4 第五天+5 连续5天每天+5 switch ($count){ case 1: $sc_score=1; break; case 2: $sc_score=2; break; case 3: $sc_score=3; break; case 4: $sc_score=4; break; default: $sc_score=5; } $dao->where("userId={$this->memberID}")->setInc('coin',$sc_score); //签到金额累加 $coin=$dao->where("userId={$this->memberID}")->field('coin')->find(); if($coin['coin']>=20){ $dao->where("userId={$this->memberID}")->setDec('coin',20);//如果满20将生成一张20的代金券 $this->insertCoupon('会员签到代金券',20,$this->memberID); } $data=array( 'userId'=>$this->memberID, 'sc_score'=>$sc_score, 'sc_detail'=>'签到+'.$sc_score, 'sc_type'=>1 ); M('score')->add($data); //积分表 if($count>0){ $this->ajaxReturn('', "签到成功!您已签到,成功领取{$sc_score}元代金券!{$memo}", 1);exit(); }else{ $this->ajaxReturn('', "您已签到!", 1);exit(); } }else{ $this->ajaxReturn('', "签到失败,请稍后重试!", 0);exit(); } } //私有方法,生成代金券 private function insertCoupon($name,$amount,$mid){ $data['name']=trim($name); $data['amount']=$amount; $data['coupon'] = array(); $data['coupon']=md5(uniqid(md5(microtime(true)),true)); $data['start_time']=time(); $data['expire_time']=strtotime("+2 year"); $data['dateline']=time(); $data['status']=1; $data['user_id']=$mid; M('coupon')->add($data); } //私有方法,生成赠金券 private function insertGiveCoupon($mid,$amount){ $map['user_id']=$mid; $map['status']=1; $res=M('givecoupon')->where($map)->find(); if($res){ M('givecoupon')->where($map)->setInc('amount',$amount); }else{ $data['name']='赠金券'; $data['amount']=$amount; $data['coupon'] = array(); $data['coupon']=md5(uniqid(md5(microtime(true)),true)); $data['start_time']=time(); $data['expire_time']=strtotime("next year"); $data['dateline']=time(); $data['status']=1; $data['user_id']=$mid; M('givecoupon')->add($data); } }

楼主代码都没有贴全!
而且就算贴全了,你这变量名称估计大家也懒得看!

相关标签: php