这段签到代码有问题吗
程序员文章站
2022-04-19 10:49:39
...
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四舍五入函数
下一篇: canvas动画时钟
推荐阅读
-
搞Jedis案例出现问题,有大佬帮我看看怎么解决吗?先感谢大佬点进来看了---Day31
-
你不知道的糯米小知识,糯米粉可以勾芡吗?这个问题有答案了
-
显卡驱动有什么用?显卡驱动更新有用吗的相关问题探讨
-
阿里P7架构师是如何解决跨域问题的!你有遇到吗?
-
魏忠贤对明朝影响有那么大吗 魏忠贤一死为何明朝就出问题了
-
在搜索引擎中购买竞品关键词,真的有问题吗?
-
月经期间喝茶有什么问题吗
-
请教各位大侠,这段爬猫眼电影的代码有什么问题?
-
Matplotlib动图保存遇到MovieWriter有问题,自己写gif保存的代码
-
有了解新版的JDK处理IO流吗?编写下基础代码, 从⼀个txt⽂本⾥⾯,拷⻉⾥⾯的内容到另外⼀个 txt⽂本⾥⾯