首页 > 其他 > 详细

签到的一些基本逻辑

时间:2020-09-25 18:58:21      阅读:50      评论:0      收藏:0      [点我收藏+]

思维导图

技术分享图片

 

 

 

控制器

//签到
    public function userQian(Request $request){
        if(empty($request[‘user_id‘])){
            return [‘code‘=>1,‘msg‘=>‘参数不能为空‘,‘result‘=>null];
        }

        $current_time = date(‘Y-m-d‘,time());
        //调用方法查看今天是否签到过
        $count = Qian::getCount($request[‘user_id‘],$current_time);
        if($count>0){
            return [‘code‘=>1,‘msg‘=>‘已经签过了‘,‘result‘=>null];
        }

        //查询上次签到的时间
        $res = Qian::lastDay($request[‘user_id‘]);

        //当前时间-最近一次签到的时间 = 中间的时间差
        $timec = (strtotime($current_time)-strtotime($res[‘q_time‘]))/60/60/24;

        if($timec==1){
            //表示是连续签到
            $last_days = $res[‘q_day‘]+1;
        }else{
            $last_days = 1;
        }

        //调用方法完成签到的功能
        if(Qian::qiandao($request[‘user_id‘],$current_time,$last_days)){
            return [‘code‘=>0,‘msg‘=>‘签到成功‘,‘result‘=>$last_days];
        }else{
            return [‘code‘=>1,‘msg‘=>‘签到失败‘,‘result‘=>null];
        }

    }

 

 

模型层

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Qian extends Model
{
    protected $table = ‘qian‘;
    public $timestamps = false;

    //查询用户当天是否签到成功
    static public function getCount($user,$time){
        return self::where(‘user_id‘,$user)
            ->where(‘q_time‘,$time)
            ->count();
    }

    //查询上次签到的时间
    static public function lastDay($user){
        return self::where(‘user_id‘,$user)
            ->orderByDesc(‘q_id‘)
            ->limit(1)
            ->select([‘q_time‘,‘q_day‘])
            ->first();
    }

    static public function qiandao($user_id,$ctime,$num){
        //根据用户id查看有没有记录
        $count = self::where(‘user_id‘,$user_id)->count();
        if($count>0){
            //有记录更新
            return self::where(‘user_id‘,$user_id)->update([
                ‘q_time‘=>$ctime,
                ‘q_day‘=>$num
            ]);
        }else{
            //没有记录入库
            return self::insert([
                ‘user_id‘=>$user_id,
                ‘q_time‘=>$ctime,
                ‘q_day‘=>$num
            ]);
        }


    }
}

 

 

数据表

CREATE TABLE `qian` (
`q_id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键id‘,
`user_id` int(11) DEFAULT NULL,
`q_time` date DEFAULT NULL,
`q_day` int(11) DEFAULT ‘0‘,
PRIMARY KEY (`q_id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

 

签到的一些基本逻辑

原文:https://www.cnblogs.com/jiangshiguo/p/13731408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!