核心代码:
$orderCount = 0; //实际订单推送订单数量
foreach ($newData as $key => $val)
{
$str .= " \r\n";
$str .= " {$val['lp_number']}\r\n";//LP号
$str .= " {$val['pdf_url']}\r\n";//面单地址
$str .= " \r\n";
foreach ($val['goods'] as $value) {
$str .= " \r\n";
$str .= " {$value['sku_number']}\r\n";//条形码
$str .= " {$value['external_product_id']}\r\n";//天猫ID
$str .= " {$value['sku_name']}\r\n";//,名称
$str .= " {$value['count']}\r\n";//数量
$str .= " \r\n";
}
/*
* step4 生成时间
*/
OrderFinally::updateAll(
[
'is_success' => '1',
'convert_num' => '1',
'update_time' => date('Y-m-d H:i:s', time())
],
[
'order_number'=>$val['order_number']
]);
$str .= " \r\n";
$str .= " \r\n";
$orderCount++;
}
$str .= " \r\n";
$str .= "\r\n";
$fullPath = $path . "/{$fileName}"; //文件的全路径
$file = fopen($fullPath, 'w');
fwrite($file, $str);
fclose($file);
生成的xml格式
这是一个定时脚本任务,自动执行的时候,它会有一定的概率少数据,手动执行的时候数据都是正常的.
比如一个订单下的实际商品是7个,但是最后生成XML文件的时候,商品只有5个了.
目前判断脚本本身应该是没问题的,请教各位还有哪种原因会造成偶发性的丢失数据.(推测过可能是服务器硬盘有坏道造成的偶发性丢失数据,但是感觉也不像~)