yzms/show/jd_task.php

160 lines
6.0 KiB
PHP
Raw Normal View History

2024-04-01 15:54:27 +08:00
<?php
//ini_set("display_errors","On");
//error_reporting(E_ALL);
$gdbname = 'yzms';
require_once(dirname(__FILE__)."/common.php");
if(isset($argv)){
$act = trim($argv[1]);
}else{
$act = trim($_GET['act']);
}
$fp = fopen(dirname(__FILE__)."/run/jd_task_lock.txt", "w+");
if (!flock($fp, LOCK_EX | LOCK_NB)) {
fclose($fp);
exit;
}
if($act == 'perform_task'){
ini_set('memory_limit', '1024M');
header("Content-type:text/html;charset=utf-8");
require_once(dirname(__FILE__)."/include/getexcel.inc.php");
$task_list = $db->get_all("select * from tb_jd_task where status='0'");
$date_time = date('Y-m-d H:i:s');
$res_arr = array();
foreach ($task_list as $k => $v){
$excel_path = $v['path'];
echo dirname(dirname(__FILE__)).$excel_path;
$excel_data = readexcel(dirname(dirname(__FILE__)).$excel_path);
if(empty($excel_data)){
exit("获取excel数据为空");
}
if ($db->get_one("select * from tb_jd_order where task_id='{$v['id']}'")){
echo "已删除原有的'{$v['name']}'任务数据";
$db->query("delete from tb_jd_order where task_id='{$v['id']}'");
}
$is_update = 0;
$is_error = 0;
$table_title = array();
foreach ($excel_data as $index => $data){
// echo "<pre>";
// print_r($data);
// echo "</pre>";
// exit();
// echo "<pre>";
// print_r( var_dump($data[0]));
// echo "</pre>";
// exit();
if (mb_strlen($data[0],"utf-8")!=""){
// echo "<pre>";
// print_r($excel_data);
// echo "</pre>";
// exit();
if($index == 0){
$table_title = $data;
continue;
}
$orderId = $data[1];
2024-04-01 15:54:27 +08:00
// $price = round($data[8],2) ; //金额应该是算上退款后的结果
// $price = round($data[12],2) ; //金额应该是算上退款后的结果
$price = round(doubleval($data[12])*100)/100;//金额应该是算上退款后的结果
$len = count($data);
$trs = $db->get_one("select * from tb_goods_wg_order where orderId = '{$orderId}'");
if($trs){
// 主单号
$jdwg_id = $trs['id'];
$item = $db->get_one("select * from tb_goods_order where jdwg_id = ".$jdwg_id);
if(empty($item)){
$data[$len] = "主单号匹配失败";
echo "select * from tb_goods_order where jdwg_id = ".$jdwg_id."\n";
exit;
}else{
//判断是否有产生退费
$refundRs = $db->get_one("SELECT orderId, sum( price ) refund FROM `tb_goods_wg_refund_log` WHERE orderId = '{$orderId}' GROUP BY orderId");
$totalMoney = round(doubleval($trs['totalMoney'] - $refundRs['refund'])*100)/100;
if($totalMoney == (double)$price){
$data[$len] = "主单号金额匹配";
}else{
$data[$len] = "主单号金额不匹配";
}
}
}else{
// 子单号
// $item = $db->get_one("select a.* from tb_goods_wg_order_childs a where a.childOrderId = '{$orderId}'");
$item = $db->get_one("SELECT
a.*,
b.refund
FROM
tb_goods_wg_order_childs a
LEFT JOIN ( SELECT childOrderId, sum( price ) refund FROM `tb_goods_wg_refund_log` GROUP BY childOrderId ) b ON a.childOrderId = b.childOrderId
WHERE
a.childOrderId = ".$orderId);
if(empty($item)){
$data[$len] = "子单号匹配失败";
}else{
$orderPrice = round(doubleval($item['orderPrice'] + $item['freight'] - $item['refund'])*100)/100;
if($orderPrice ==(double)$price ){
$data[$len] = "子单号金额匹配";
}else{
$data[$len] = "子单号金额不匹配";
}
}
}
$res_arr[] = $data;
$insert_data = array();
$insert_data['add_time'] = $date_time;
foreach ($data as $i => $d){
if($i != $len){
$insert_data['t'.$i] = iconv("gb2312", "utf-8", $d);
}else{
$insert_data['task_id'] = $v['id'];
$insert_data['status'] = $d;
}
}
// $check_insert = $db->get_one("select * from tb_jd_order where task_id='{$v['id']}' and t0='{$orderId}'");
// if($check_insert){
// echo $orderId . "该订单已存在,不能匹配";
// continue;
// }
print_r($insert_data);
$insert_id = $db->insert("tb_jd_order", $insert_data);
if(!$insert_id){
echo("订单插入失败,订单号:{$orderId}");
$is_error = 1;
$db->query("delete from tb_jd_order where task_id='{$v['id']}'");
break;
}
}else{
break;
}
}
if(!$is_update && $is_error == 0){
$is_update = 1;
$update = $db->update("tb_jd_task",array('status' => 1,'perform_time'=>$date_time), "id='{$v['id']}'");
if(!$update){
exit("更新任务失败");
}
}
}
echo "任务完成";
exit;
}