牛骨文教育服务平台(让学习变的简单)
博文笔记

thinkphp 5缓存 数据状态 的切换

创建时间:2017-06-19 投稿人: 浏览次数:1341

方法描述:对输入的课程id进行判断,并进行相应的操作。
1.相关知识tp5缓存类
2.时间比较
3.json数据格式化——json_decode
4.加入返回码,方便查找原因

function getscene($id) {
    if($id > 0){
        //查找缓存
        $scene = F("scene.". $id, "", "file");
        if($scene){
            $time = time();
            //对存在的缓存的课程状态判断并做相应的操作
            if($scene["begin"] == 1){
                //时间比较
                if($time >= strtotime("+2 day", $scene["endtime"])) {//当前时间大于等于结束后两天
                    F("scene." . $id . ".begin", -1, "file");
                    //为什么?
                    F("user_" . $id, null);
                    $result = [
                        "code" => -1,
                        "msg" => "课程已结束"
                    ];
                } elseif(($time <= strtotime("-30 minute", $scene["startime"]))){//当前时间大于等于开始前30分钟
                    $result = [
                        "code" => 0,
                        "msg" => "课程未开始"
                    ];
                } else {
                    $result = [
                        "code" => 1,
                        "msg" => "课程已开始"
                    ];
                }
                return $result;
            } elseif($scene["begin"] == 0) {
                if(($time >= strtotime("-30 minute", $scene["startime"]))){//当前时间大于等于开始前30分钟
                    F("scene." . $id . ".begin", 1, "file");
                    $result = [
                        "code" => 1,
                        "msg" => "课程已开始"
                    ];
                } elseif($time >= strtotime("+2 day", $scene["endtime"])) {//当前时间大于等于结束后两天
                    F("scene." . $id . ".begin", -1, "file");
                    F("user_" . $id, null);
                    $result = [
                        "code" => -1,
                        "msg" => "课程已结束"
                    ];
                } else {
                    $result = [
                        "code" => 0,
                        "msg" => "课程未开始"
                    ];
                }
                return $result;
            } elseif($scene["begin"] == -1) {
                F("user_" . $id, null);
                $result = [
                    "code" => -1,
                    "msg" => "课程已结束"
                ];
                return $result;
            }
        } else {
            $allscene = http_get(config("getallsceneinfo"));
            $res = json_decode($allscene, true);
            if($res["code"] == "200"){
                foreach($res["data"] as $k => $v){
                    $scene = [
                        "startime" => $v["startime"] / 1000,
                        "endtime" => $v["endtime"] / 1000,
                        "begin" => 0
                    ];
                    F("scene.". $v["sceneid"], $scene, "file");
                }
                if(F("scene.". $id, "", "file")){
                    return getscene($id);
                } else {
                    $result = [
                        "code" => -2,
                        "msg" => "课程不存在"
                    ];
                    return $result;
                }
            }
        }
    } else {
        $result = [
            "code" => -3,
            "msg" => "课程ID错误"
        ];
        return $result;
    }
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。