<?php
$BoxId       = $Lin->PN("boxid", "1", "1", "BoxId");
$Back_TaskId = $Lin->PN("taskid", "1", "1", "Back_TaskId");
$Back_Return = $Lin->PN("teturn", "0", "0", "Back_Return");
$Back_Error  = $Lin->PN("error", "0", "0", "Back_Error");
$Back_State  = $Lin->PN("state", "1", "1", "Back_State");
$Task_Date   = date("Y-m-d");

$LinDB->OpenConn();
$rstask = $LinDB->Sel("SELECT Task_DoNum FROM tvbox_task WHERE ID = ? LIMIT 1", [$Back_TaskId]);
$Task_DoNum = $rstask ? $rstask["Task_DoNum"] : "0";
// 根据Task_DoNum设置条件
if ($Task_DoNum == "1") {
    $SqlTwo = "AND Back_DoTime = ? AND Back_DoNum = '1'";
    $params = [$Task_Date];
} else {
    $SqlTwo = "AND Back_DoNum = '0'";
    $params = [];
}
$rsall = $LinDB->Sel("SELECT * FROM tvbox_tasks WHERE BoxId = ? AND Back_TaskId = ? $SqlTwo LIMIT 1", array_merge([$BoxId, $Back_TaskId], $params));

if (!$rsall) {
    // 如果不存在，创建新记录
    $data = [
        "BoxId" => $BoxId,
        "Back_TaskId" => $Back_TaskId,
        "Back_State" => $Back_State,
        "Back_AddTime" => date("Y-m-d H:i:s"),
        "Back_DoTime" => $Task_Date,
        "Back_DoNum" => $Task_DoNum
    ];
    
    // 处理返回数据
    if ($Back_Return == "0" || $Back_Return == "") {
        $data["Back_Return"] = "0";
    } else {
        $Back_Return = $Lin->PN("teturn", "1", "1", "Back_Return");
        $data["Back_Return"] = $Back_Return;
        $data["Back_ReturnTime"] = date("Y-m-d H:i:s");
        $data["Back_ReturnError"] = $Back_Error;
    }
    // 插入新记录
    $LinDB->Insert("TvBox_Tasks", $data);
} else {
    // 如果存在，更新记录
    $updateData = [
        "Back_State" => $Back_State
    ];
    // 处理返回数据
    if ($Back_Return == "0" || $Back_Return == "") {
        $updateData["Back_Return"] = "0";
    } else {
        $Back_Return = $Lin->PN("teturn", "1", "1", "Back_Return");
        $updateData["Back_Return"] = $Back_Return;
        $updateData["Back_ReturnTime"] = date("Y-m-d H:i:s");
        $updateData["Back_ReturnError"] = $Back_Error;
    }
    // 更新记录
    $LinDB->Update("TvBox_Tasks", $updateData, "BoxId = ? AND Back_TaskId = ? $SqlTwo", array_merge([$BoxId, $Back_TaskId], $params));
}
$LinDB->CloseConn();
die($LinJson->ok("任务回调成功"));
?>