上代码
<?php
/*
15天后自动确认订单
*/
function auto() {
//后台设定的时间 单位(天)
//查询一个节点的最少充值金额
$auao_time = $this->query("select `value` from ecs_drp_config where keyword = 'auao_time'");
$auao_time = $auao_time[0]['value']*24*3600;
ignore_user_abort();//关闭浏览器后,继续执行php代码
set_time_limit(0);//程序执行时间无限制
$sleep_time = $auao_time;//多长时间执行一次 1296000 15天执行一次
$x=1;
while($x<=5) {
//未确认收货的所有订单
$sql = "select order_id from ecs_order_info where order_status = 5 and shipping_status = 1";
$order = $this->query($sql);
$time = time();
foreach ($order as $k => $v) {
//订单的交易时间
$sql1 = "SELECT pay_time FROM ecs_order_info where order_id = ".$v['order_id'];
$pay_time = $this->row($sql1);
//var_dump($pay_time);exit;
//1296000 15天秒数(时间戳)
if( $time > $pay_time["pay_time"] + $auao_time){
$order_id = $v['order_id'];
$sql = "UPDATE " . $this->pre . "order_info SET shipping_status = '" . SS_RECEIVED . "' WHERE order_id = '$order_id'";
if ($this->query($sql)) {
// 记录日志
model('OrderBase')->order_action($order['order_sn'], $order['order_status'], SS_RECEIVED, $order['pay_status'], '', L('buyer'));
return true;
} else {
die(M()->errorMsg());
}
}
}
// 查询订单信息,检查状态
$sql = "SELECT user_id, order_sn , order_status, shipping_status, pay_status FROM " . $this->pre . "order_info WHERE order_id = '$order_id'";
$order = $this->row($sql);
// 如果用户ID大于 0 。检查订单是否属于该用户
// 修改订单发货状态为“确认收货”
$sql = "UPDATE " . $this->pre . "order_info SET shipping_status = '" . SS_RECEIVED . "' WHERE order_id = '$order_id'";
if ($this->query($sql)) {
// 记录日志
model('OrderBase')->order_action($order['order_sn'], $order['order_status'], SS_RECEIVED, $order['pay_status'], '', L('buyer'));
return true;
}else{
die(M()->errorMsg());
}
sleep($sleep_time);//等待时间,进行下一次操作。
}
}
?>