<?php
include("ai_common.php");
include 'database.php'; // 包含数据库连接信息

set_time_limit(0);
//_log("计划任务——发送指令-1");
// 查询待执行状态(status=0)的数据
$arrStatus=['NOT_START'=>'待执行','SUBMITTED'=>'提交中','IN_PROGRESS'=>'绘制中','SUCCESS'=>'已完成','FAILURE'=>'任务失败'];
$sql = "SELECT status FROM rockai_task_imagelist WHERE (status = 'IN_PROGRESS' or status='NOT_START' or status='SUBMITTED') and isdel=0";
$result2 = $conn->query($sql);
//_log("计划任务——发送指令-2");
$in_count = $result2->num_rows;
if($in_count>=3){
    echo "任务满3个了，无法执行，稍后执行！";
}
else{
   $limit = 3-$in_count;
   // _log("计划任务——发送指令-3");
    // 查询待执行状态(status=0)的数据
    $sql = "SELECT id, cmd,postparam FROM rockai_cmdlist WHERE status = 0 order by id asc limit ".$limit;
    $result = $conn->query($sql);
    
    if ($result->num_rows > 0) {
        // 循环处理每一条数据
        while ($row = $result->fetch_assoc()) {
            //_log("计划任务——发送指令-4");
            $id = $row['id'];
            $cmd = $row['cmd'];
            $postparam = $row['postparam'];
            $postparam = json_decode($postparam,true);
            
            $ai_params = [];
            if(count($postparam['stylereferencePic'])>0){
                foreach($postparam['stylereferencePic'] as $v){
                    $ai_params['stylereferencePic'][]=file_get_contents($v);
                }
                $ai_params['sw']=(int)$postparam['sw'];
            }
            $ai_params['customInstruct']=$postparam['customInstruct'];
           // _log("计划任务——发送指令-5");
            // 调用处理函数
            $return = ai_newImg($cmd,$ai_params); // 假设处理函数为 newImg，传入参数为 cmd
            //_log("计划任务——发送指令-6");
            // 根据处理结果更新状态
            if($return['code']==200 && $return['success']==1)
            {
                $updateSql = "UPDATE rockai_cmdlist SET status = 1,send_time=".time()." WHERE id = $id";
                $conn->query($updateSql);
                echo date('Y-m-d H:i:s')."命令下发成功-<br>";
            }
            else{
                if($return['message']=='当前管理员限制同时最大任务数量为3、请等待任务结束后继续！'){
                    
                }
                else{
                   if($return['message']=='May contains sensitive words') $return['message']='包含敏感关键词，请检查';
                    $updateSql = "UPDATE rockai_cmdlist SET status = 2,error_msg='".$return['message']."' WHERE id = $id";
                    $conn->query($updateSql);
                    // _log("图片生成失败！".print_r($return,true)); 
                }
                echo date('Y-m-d H:i:s')."命令下发失败-".$return['message']."<br>";
            }
    
            
        }
    } else {
        echo date('Y-m-d H:i:s')."暂无需要执行的命令！";
    } 
}


$conn->close();

$auto_time=3;        //几秒后自动刷新本页面
?>
<br>
<strong style="color:red;font-size:30px;margin-top:30px;">倒计时<span id="time"><?=$auto_time?></span>秒后自动刷新本页面！</strong>
<script>
    setTimeout("location.reload()",<?=$auto_time*1000?>);
    setInterval(timeauto,1000);
    var t=<?=$auto_time?>;
    function timeauto(){
        t=t-1;
        document.getElementById('time').innerHTML=t;
    }
</script>