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;
|
|
|
|
}
|
|
|
|
|
2024-06-25 16:33:50 +08:00
|
|
|
$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;
|
|
|
|
}
|
|
|
|
|
|
|
|
|