thinkphp 5缓存 数据状态 的切换
方法描述:对输入的课程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;
}
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: ThinkPhp5数据库缓存分析
- 下一篇: tp字段缓存