110 lines
3.8 KiB
PHP
Executable File
110 lines
3.8 KiB
PHP
Executable File
<?php
|
|
//播放视频流程
|
|
//传入openid、口令码
|
|
//查询数据库中课程对应口令码
|
|
//用口令码注册课程 返回拥有的课程
|
|
//认证失败 返回null
|
|
|
|
// 声明JSON内容类型
|
|
header('Content-Type: application/json');
|
|
|
|
// 获取传入的 OpenID 值
|
|
$openid = $_GET['openid'];
|
|
|
|
// 获取传入的 课程ID 值
|
|
$passwordcode = $_GET['PasswordCode'];
|
|
|
|
|
|
// 引用配置,建立数据库连接
|
|
require_once 'ApiConfig.php';
|
|
$conn = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
|
|
$result1_end_data=null;
|
|
$courseid=null;
|
|
$coursename=null;
|
|
$courseinfo=null;
|
|
$result1_end_data=null;
|
|
$coursedate=null;
|
|
$returndata=null;
|
|
$codecount=null;
|
|
|
|
|
|
// 检查连接是否成功
|
|
if ($conn->connect_error) {
|
|
die("连接失败: " . $conn->connect_error);
|
|
}
|
|
|
|
//查询用户是否存在
|
|
$sql00 = "SELECT * FROM 用户信息 WHERE OpenID='$openid'";
|
|
$result00 = $conn->query($sql00);
|
|
if ($result00->num_rows > 0){
|
|
|
|
// 用户存在 则查询数据库中符合条件的记录
|
|
$sql = "SELECT * FROM 课程口令码 WHERE 口令码='$passwordcode' AND 剩余有效次数 > 0";
|
|
$result1 = $conn->query($sql);
|
|
|
|
// 如果查询结果不为空,则进行二次查询
|
|
if ($result1->num_rows > 0) {
|
|
$row1 = $result1->fetch_assoc();
|
|
$result1_end_data=$row1['口令结束日期'];
|
|
$courseid= $row1['课程id'];
|
|
$coursename= $row1['课程'];
|
|
$courseinfo= $row1['课程介绍'];
|
|
$codecount= $row1['剩余有效次数'];
|
|
//$coursedate= $row1['购课日期'];
|
|
|
|
// 获取当前时间戳
|
|
$currentDateTime = strtotime(date('Y-m-d H:i:s'));
|
|
// 将口令结束日期转换为时间戳
|
|
$endTime = strtotime($result1_end_data);
|
|
|
|
// 查询数据库的 用户已购课程 表
|
|
$sql2 = "SELECT * FROM 用户已购课程 WHERE OpenID='$openid' AND 课程id='$courseid'";
|
|
$result2 = $conn->query($sql2);
|
|
|
|
//用户已经购买了课程
|
|
if ($result2->num_rows > 0) {
|
|
// 这里返回提示即可
|
|
echo json_encode(["result" => "成功", "Data" => "您已购买该课程!", "ReturnData" => $returndata]);
|
|
} else if (($result2->num_rows === 0)&&($currentDateTime < $endTime)) {
|
|
//用户未购买课程 验证日期有效性后添加信息即可
|
|
$sql3="INSERT INTO 用户已购课程 (OpenID, 课程id, 课程, 课程介绍, 购课日期) VALUES ('$openid','$courseid','$coursename','$courseinfo', NOW())";
|
|
if ($conn->query($sql3) === TRUE) {
|
|
//口令码有效次数减 1 操作
|
|
$codecount=$codecount-1;
|
|
$sql5 = "UPDATE `课程口令码` SET `剩余有效次数` = '$codecount' WHERE `口令码` = '$passwordcode'";
|
|
$result5 = $conn->query($sql5);
|
|
|
|
|
|
//查询插入后的信息
|
|
$sql4 = "SELECT * FROM 用户已购课程 WHERE OpenID='$openid'";
|
|
$result4 = $conn->query($sql4);
|
|
if ($result4->num_rows > 0) {
|
|
// 这里返回所有已经购买的课程
|
|
$data = array();
|
|
while ($row = $result4->fetch_assoc()) {
|
|
$data[] = $row;
|
|
};
|
|
$returndata = $data;
|
|
echo json_encode(["result" => "添加成功!", "Data" => "课程添加成功", "ReturnData" => $returndata]);
|
|
} else {
|
|
echo json_encode(["result" => "插入信息查询失败!", "Data" => "课程添加成功", "ReturnData" => $returndata]);
|
|
}
|
|
|
|
|
|
} else {
|
|
echo json_encode(["result" => "添加失败!", "Data" => "课程添加失败", "ReturnData" => $returndata]);
|
|
};
|
|
} else {
|
|
echo json_encode(["result" => "失败", "Data" => "口令码已失效", "ReturnData" => $returndata]);};
|
|
} else {
|
|
echo json_encode(["result" => "失败", "Data" => "口令码无效", "ReturnData" => $returndata]);
|
|
}
|
|
|
|
} else {
|
|
echo json_encode(["result" => "失败", "Data" => "该用户不存在", "ReturnData" => $returndata]);
|
|
};
|
|
|
|
|
|
// 关闭数据库连接
|
|
$conn->close();
|
|
?>
|