db = new MdbLib(); $this->common = new CommonLib(); $this->skey = '2019'; } //show public function getOrders(){ if(!isset($_GET['now']) || !isset($_GET['shop']) || !isset($_GET['status']) || !isset($_GET['startDate']) || !isset($_GET['endDate']) || !isset($_GET['type'])){ return false; }else{ $now = $this->common->my_filter_input($_GET['now']); $shop = $this->common->my_filter_input($_GET['shop']); $status = $this->common->my_filter_input($_GET['status']); $type = $this->common->my_filter_input($_GET['type']); $time_type=isset($_GET['time_type'])?$this->common->my_filter_input($_GET['time_type']):1; $startDate = $_GET['startDate'] . ' 00:00:00'; $endDate = $_GET['endDate'].' 23:59:59'; $key = $this->common->my_filter_input($_GET['key']); $pnsn = isset($_GET['pnsn'])?$this->common->my_filter_input($_GET['pnsn']):15; } $shop_type = ''; switch($shop){ case 1: $shop_type = 'AAASSS'; break; case 2: $shop_type = 'Alipearl'; break; case 3: $shop_type = 'QQ'; break; case 4: $shop_type = 'SuperNova'; break; case 5: $shop_type = 'West-Kiss'; break; case 6: $shop_type = 'Yolissa'; break; default: $shop_type = ''; } $offset = ($now-1)*$pnsn; $sql = 'SELECT `oid`,`order_barcode`,`order_status`,`goods_no`,`goods_info`,`out_time`,`gir`,`in_time`,`print_time`,`memo`,`transport`,`print_times`,`print_date` '; $sql .= 'FROM `app_wigsout` '; if($time_type==1){ $sql .= "WHERE `print_time` BETWEEN '{$startDate}' AND '{$endDate}'"; }else{ $sql .= "WHERE `print_date` BETWEEN '{$startDate}' AND '{$endDate}'"; } if($shop != 0){ $sql .= " AND `order_barcode` LIKE '{$shop_type}%' "; } if($status != 0){ $sql .= " AND `order_status`='{$status}' "; } if($type != 0){ $sql .= " AND `type`='{$type}' "; } $sql .= "ORDER BY `order_status` ASC,`in_time` DESC,`print_time` DESC LIMIT {$offset},$pnsn;"; $query = $this->db->querySql($sql); $line = ""; while($item = $this->db->queryRs($query)) { if($item['order_status'] == '2'){ $order_status = "已入库"; $in_time = $item['in_time']; $out_time = '暂无'; $class = 'ok1'; }elseif($item['order_status'] == '5'){ $order_status = "未入库"; $in_time = '暂无'; $out_time = '暂无'; $class = 'no'; }elseif($item['order_status'] == '3'){ $order_status = "已出库"; $in_time = $item['in_time']; $out_time = $item['out_time']; $class = 'ok2'; }elseif($item['order_status'] == '4'){ $order_status = "已取消"; $in_time = '暂无'; $out_time = '暂无'; $class = 'canceled'; }elseif($item['order_status'] == '6'){ $order_status = "未分配"; $in_time = '暂无'; $out_time = '暂无'; // $class = 'canceled'; } if($item['gir'] == 1){ $repeat = 'repeat'; }else{ $repeat = ''; } if($item['print_times'] == 0){ $print_status = "未打印"; $print_clazz = 'no'; }else{ $print_status = "已打印"; $print_clazz = 'ok2'; } $line .= '
'; $line .= "{$item['oid']}"; $line .= "{$item['order_barcode']}"; // $line .= "{$item['goods_no']}"; $line .= "{$item['goods_info']}"; // $line .= "{$item['transport']}"; $line .= "{$order_status}"; $line .= "{$item['print_time']}"; $line .= "{$in_time}"; $line .= "{$out_time}"; $line .= "{$item['memo']}"; $line .= "{$print_status}"; $line .= "{$item['print_date']}"; $line .= ''; $line .= ""; if(!empty($key) && $key==$this->skey){ $line .= ""; if($item['order_status'] == '1' || $item['order_status'] == '2'){ $line .= ""; } } $line .= '
'; } return $line; } public function searchOrders(){ if(!isset($_GET['key'])){ return false; }else{ $key = $this->common->my_filter_input($_GET['key']); } $sql = 'SELECT `oid`,`order_barcode`,`order_status`,`goods_no`,`goods_info`,`out_time`,`gir`,`in_time`,`print_time`,`memo`,`transport`,`print_times`,`print_date` '; $sql .= 'FROM `app_wigsout` '; if(isset($_GET['code'])){ $code = $this->common->my_filter_input($_GET['code']); $sql .= "WHERE `order_barcode`='{$code}' OR `goods_no`='{$code}';"; } $query = $this->db->querySql($sql); $line = ""; while($item = $this->db->queryRs($query)) { if($item['order_status'] == '2'){ $order_status = "已入库"; $in_time = $item['in_time']; $out_time = '暂无'; $class = 'ok1'; }elseif($item['order_status'] == '5'){ $order_status = "未入库"; $in_time = '暂无'; $out_time = '暂无'; $class = 'no'; }elseif($item['order_status'] == '3'){ $order_status = "已出库"; $in_time = $item['in_time']; $out_time = $item['out_time']; $class = 'ok2'; }elseif($item['order_status'] == '6'){ $order_status = "未分配"; $in_time = '暂无'; $out_time = '暂无'; // $class = 'canceled'; } if($item['gir'] == 1){ $repeat = 'repeat'; }else{ $repeat = ''; } if($item['print_times'] == 0){ $print_status = "未打印"; $print_clazz = 'no'; }else{ $print_status = "已打印"; $print_clazz = 'ok2'; } $line .= '
'; $line .= "{$item['oid']}"; $line .= "{$item['order_barcode']}"; // $line .= "{$item['goods_no']}"; $line .= "{$item['goods_info']}"; // $line .= "{$item['transport']}"; $line .= "{$order_status}"; $line .= "{$in_time}"; $line .= "{$out_time}"; $line .= "{$item['memo']}"; $line .= "{$print_status}"; $line .= "{$item['print_date']}"; $line .= ''; $line .= ""; if(!empty($key) && $key==$this->skey){ $line .= ""; if($item['order_status'] == '1' || $item['order_status'] == '2'){ $line .= ""; } } $line .= '
'; } if(!empty($line)){ return $line; }else{ return -1; } } public function updateOrder(){ if(isset($_GET['code']) && !empty($_GET['code']) && isset($_GET['status']) && !empty($_GET['status'])){ $code = $this->common->my_filter_input($_GET['code']); $order_status = $this->common->my_filter_input($_GET['status']); }else{ return false; } $sql_status = "SELECT `order_status`,`out_time`,`in_time`,`update_time` FROM `app_wigsout` WHERE `order_barcode`='{$code}' ORDER BY `oid` DESC;"; $query = $this->db->querySql($sql_status); $arr_status = $this->db->queryRsAll($query); if(empty($arr_status)){ return json_encode(array( 'no' => '-10' )); } $now = date("Y-m-d H:i:s", time()); $sql = "UPDATE `app_wigsout` SET `order_status`='{$order_status}',`in_time`='{$now}',`out_time`='{$now}' WHERE `order_barcode`='{$code}' AND `order_status`!=4;"; if($arr_status[0]['order_status'] == 5 && $order_status == 2){ $this->db->querySql($sql); if($this->db->queryAR() == 1){ return json_encode(array( 'no' => '1' )); }else{ return json_encode(array( 'no' => '-1' )); } }elseif($arr_status[0]['order_status'] == 2 && $order_status == 3){ $this->db->querySql($sql); if($this->db->queryAR() == 1){ return json_encode(array( 'no' => '2' )); }else{ return json_encode(array( 'no' => '-2' )); } }elseif(($arr_status[0]['order_status'] == 5 OR $arr_status[0]['order_status'] == 2) && $order_status == 4){ $this->db->querySql($sql); if($this->db->queryAR() == 1){ return json_encode(array( 'no' => '3' )); }else{ return json_encode(array( 'no' => '-3' )); } }elseif($arr_status[0]['order_status'] == 5 && $order_status == 3){ return json_encode(array( 'no' => '-4' )); }elseif($arr_status[0]['order_status'] == 2 && $order_status == 2){ return json_encode(array( 'no' => '-5', 'time' => $arr_status[0]['in_time'], )); }elseif($arr_status[0]['order_status'] == 3 && $order_status == 2){ return json_encode(array( 'no' => '-6', 'time' => $arr_status[0]['out_time'], )); }elseif($arr_status[0]['order_status'] == 3 && $order_status == 3){ return json_encode(array( 'no' => '-7', 'time' => $arr_status[0]['out_time'], )); }elseif($arr_status[0]['order_status'] == 4 && $order_status == 2){ return json_encode(array( 'no' => '-8', 'time' => $arr_status[0]['update_time'], )); }elseif($arr_status[0]['order_status'] == 4 && $order_status == 3){ return json_encode(array( 'no' => '-9', 'time' => $arr_status[0]['update_time'], )); }elseif($arr_status[0]['order_status'] == 5 && $order_status == 6){ $this->db->querySql($sql); if($this->db->queryAR() == 1){ return json_encode(array( 'no' => '4' )); }else{ return json_encode(array( 'no' => '-12' )); } }elseif($arr_status[0]['order_status'] == 6 && $order_status == 2){ $this->db->querySql($sql); if($this->db->queryAR() == 1){ return json_encode(array( 'no' => '1' )); }else{ return json_encode(array( 'no' => '-1' )); } }else{ return json_encode(array( 'no' => '-11' )); } } public function getStatistics(){ if(!isset($_GET['startDate']) || !isset($_GET['endDate'])){ return false; } else { $startDate = $_GET['startDate'] . ' 00:00:00'; $endDate = $_GET['endDate'].' 23:59:59'; } $time_type=isset($_GET['time_type'])?$this->common->my_filter_input($_GET['time_type']):1; if($time_type==1){ $search_time='print_time'; }else{ $search_time='print_date'; } $yesterday_start = date("Y-m-d", strtotime('-1 day')) . ' 00:00:00'; $yesterday_end = date("Y-m-d", strtotime('-1 day')) . ' 23:59:59'; $sql_yesterday = "SELECT COUNT(`oid`) AS `total_yesterday_out` FROM `app_wigsout`"; $sql_yesterday .= " WHERE `print_time` BETWEEN '{$yesterday_start}' AND '{$yesterday_end}' AND `order_status`='3';"; $sql_total = "SELECT COUNT(`oid`) AS `total_num` FROM `app_wigsout` "; $sql_total .= "WHERE `{$search_time}` BETWEEN '{$startDate}' AND '{$endDate}';"; $sql_in = "SELECT COUNT(`oid`) AS `total_in` FROM `app_wigsout` "; $sql_in .= "WHERE `{$search_time}` BETWEEN '{$startDate}' AND '{$endDate}' AND `order_status`='2';"; $sql_out = "SELECT COUNT(`oid`) AS `total_out` FROM `app_wigsout` "; $sql_out .= "WHERE `{$search_time}` BETWEEN '{$startDate}' AND '{$endDate}' AND `order_status`='3';"; $sql_cancel = "SELECT COUNT(`oid`) AS `total_out` FROM `app_wigsout` "; $sql_cancel .= "WHERE `{$search_time}` BETWEEN '{$startDate}' AND '{$endDate}' AND `order_status`='4';"; $query_yesterday = $this->db->querySql($sql_yesterday); $rs_yesterday = $this->db->queryRs($query_yesterday); $query_total = $this->db->querySql($sql_total); $rs_total = $this->db->queryRs($query_total); $query_in = $this->db->querySql($sql_in); $rs_in = $this->db->queryRs($query_in); $query_out = $this->db->querySql($sql_out); $rs_out = $this->db->queryRs($query_out); $query_cancel = $this->db->querySql($sql_cancel); $rs_cancel = $this->db->queryRs($query_cancel); $rs = array(); $rs['yesterday'] = $rs_yesterday[0]; $rs['total'] = $rs_total[0]; $rs['in'] = $rs_in[0]; $rs['out'] = $rs_out[0]; $rs['cancel'] = $rs_cancel[0]; $rs['not_in'] = $rs['total'] - $rs['out'] - $rs['cancel'] - $rs['in']; return json_encode($rs); } public function exportExcel(){ set_time_limit(120); $PHPExcel = new \PHPExcel(); if(!isset($_GET['shop']) || !isset($_GET['status']) || !isset($_GET['startDate']) || !isset($_GET['endDate']) || !isset($_GET['type'])){ return false; }else{ $shop = $this->common->my_filter_input($_GET['shop']); $status = $this->common->my_filter_input($_GET['status']); $type = $this->common->my_filter_input($_GET['type']); $time_type=isset($_GET['time_type'])?$this->common->my_filter_input($_GET['time_type']):1; $startDate = $_GET['startDate'] . ' 00:00:00'; $endDate = $_GET['endDate'].' 23:59:59'; } $shop_type = ''; switch($shop){ case 1: $shop_type = 'AAASSS'; break; case 2: $shop_type = 'Alipearl'; break; case 3: $shop_type = 'QQ'; break; case 4: $shop_type = 'SuperNova'; break; case 5: $shop_type = 'West-Kiss'; break; case 6: $shop_type = 'Yolissa'; break; default: $shop_type = ''; } $sql = 'SELECT `oid`,`order_barcode`,`order_status`,`goods_no`,`goods_info`,`out_time`,`in_time`,`print_time`,`print_date`,`transport` '; $sql .= 'FROM `app_wigsout` '; if($time_type==1){ $sql .= "WHERE `print_time` BETWEEN '{$startDate}' AND '{$endDate}' "; }else{ $sql .= "WHERE `print_date` BETWEEN '{$startDate}' AND '{$endDate}' "; } if($shop != 0){ $sql .= " AND `order_barcode` LIKE '{$shop_type}%' "; } if($status != 0){ $sql .= " AND `order_status`='{$status}' "; } if($type != 0){ $sql .= " AND `type`='{$type}' "; } $query = $this->db->querySql($sql); $PHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '序号') ->setCellValue('B1', '条码编号') ->setCellValue('C1', '订单编号') ->setCellValue('D1', '货物明细') ->setCellValue('E1', '物流方式') ->setCellValue('F1', '状态') ->setCellValue('G1', '成品仓打印日期') ->setCellValue('H1', '布条打印日期') ->setCellValue('I1', '入库日期') ->setCellValue('J1', '出库日期'); $k = 2; while($item = $this->db->queryRs($query)) { $print_date="暂无"; if($item['order_status'] == '2'){ $order_status = "已入库"; $in_time = $item['in_time']; $out_time = '暂无'; $print_date=$item['print_date']; }elseif($item['order_status'] == '1'){ $order_status = "未出库"; $in_time = '暂无'; $out_time = '暂无'; }elseif($item['order_status'] == '3'){ $order_status = "已出库"; $in_time = $item['in_time']; $out_time = $item['out_time']; }elseif($item['order_status'] == '5'){ $order_status = "未入库"; $in_time = '暂无'; $out_time = '暂无'; }elseif($item['order_status'] == '6'){ $order_status = "未分配"; $in_time = '暂无'; $out_time = '暂无'; } $PHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$k, $k-1) ->setCellValue('B'.$k, $item['order_barcode']) ->setCellValue('C'.$k, $item['goods_no']) ->setCellValue('D'.$k, $item['goods_info']) ->setCellValue('E'.$k, $item['transport']) ->setCellValue('F'.$k, $order_status) ->setCellValue('G'.$k, $item['print_time']) ->setCellValue('H'.$k, $print_date) ->setCellValue('I'.$k, $in_time) ->setCellValue('J'.$k, $out_time); $k++; } // set wdith $PHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(5); $PHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25); $PHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25); $PHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(40); $PHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(25); $PHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15); $PHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(25); $PHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(25); $PHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(25); // set align // $PHPExcel->getActiveSheet()->getStyle( 'A1:I1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $PHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $filename = 'wigsmgmt.'.date('His',time()).'.xls'; $PHPExcel->getActiveSheet()->setTitle('wigsmgmt'); $PHPExcel->setActiveSheetIndex(0); header("Content-Type: application/ms-excel; charset=utf-8"); header("Content-Disposition: attachment; filename={$filename}"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); $PHPWriter = new PHPExcel_Writer_Excel5($PHPExcel, 'Excel5'); $PHPWriter->save('php://output'); } public function pagination(){ if(!isset($_GET['shop']) || !isset($_GET['status']) || !isset($_GET['startDate']) || !isset($_GET['endDate']) || !isset($_GET['wh']) || !isset($_GET['type'])){ return false; }else{ $shop = $this->common->my_filter_input($_GET['shop']); $status = $this->common->my_filter_input($_GET['status']); $startDate = $_GET['startDate'] . ' 00:00:00'; $endDate = $_GET['endDate'].' 23:59:59'; $wh = $this->common->my_filter_input($_GET['wh']); $pnsn = isset($_GET['pnsn'])?$this->common->my_filter_input($_GET['pnsn']):15; $type = $this->common->my_filter_input($_GET['type']); $time_type=isset($_GET['time_type'])?$this->common->my_filter_input($_GET['time_type']):1; } $shop_type = ''; switch($shop){ case 1: $shop_type = 'AAASSS'; break; case 2: $shop_type = 'Alipearl'; break; case 3: $shop_type = 'QQ'; break; case 4: $shop_type = 'SuperNova'; break; case 5: $shop_type = 'West-Kiss'; break; case 6: $shop_type = 'Yolissa'; break; default: $shop_type = ''; } $sql = "SELECT `oid` FROM `app_wigsout` "; if($time_type==1){ $sql .= "WHERE `print_time` BETWEEN '{$startDate}' AND '{$endDate}' "; }else{ $sql .= "WHERE `print_date` BETWEEN '{$startDate}' AND '{$endDate}' "; } if($shop != 0){ $sql .= " AND `order_barcode` LIKE '{$shop_type}%'"; } if($status != 0){ $sql .= " AND `order_status`='{$status}'"; } if($type != 0){ $sql .= " AND `type`='{$type}'"; } $sql .= ';'; $query = $this->db->querySql($sql); $total = $this->db->queryNum($query); if($total == 0){ $num = '0'; }else{ $num = ceil($total/$pnsn); $wh_max = ceil($num/10); } $direction = substr($wh, 0, 1); $wh = substr($wh, 1); if($direction == 'h'){ $whh = ($wh==0)?'0':$wh-1; $wht = ($wh==0)?'1':$wh; }elseif($direction == 't'){ $whh = ($wh==$wh_max)?($wh-1):$wh; $wht = ($wh==$wh_max)?$wh:($wh+1); }else{ $whh = '0'; $wht = '1'; } $pagination = '共 '.$num.' 页'; if($num > 1){ $pagination .= ($num>10)?"<<":''; $clazz = ''; for($i=1+$whh*10; $i<=10+$whh*10; $i++){ if($i > $num){ break; }else{ if($i != 1+$whh*10){ $clazz = 'page'; }else{ $clazz = 'page pn'; } $param = $i . '_' . $shop .'_' . $status . '_' . substr($startDate, 0, 10) . '_' . substr($endDate, 0, 10); $pagination .= "".$i.""; } } $pagination .= ($num>10)?">>":''; } $pagination .= "展示 记录"; return $pagination; } //DISABLED public function apiWigsOut(){ if($this->common->getIp() !== '39.98.183.27'){ return json_encode(array( 'code' => '0', 'msg' => 'Error: auth error' )); } $input = file_get_contents('php://input'); parse_str($input, $post); // 解析http_build_query数据 if(isset($post['timestamp']) && isset($post['key']) && isset($post['data'])){ $key = substr(md5($post['timestamp'].'.wigs'), 1, 20); if($key !== $post['key']){ return json_encode(array( 'code' => '-2', 'msg' => 'Error: verify error' )); } }else{ return json_encode(array( 'code' => '-1', 'msg' => 'Error: params error' )); } $insertValues = ''; $cancelOld = ''; foreach($post['data'] as $dk => $dv){ $insertValues .= '('; $values = ''; foreach($dv as $wk => $wv){ $values .= "\"{$wv}\","; if($wk == 'order_barcode'){ $cancelOld .= "\"$wv\","; } } $values .= '2,"n/a"'; $insertValues .= $values . '),'; } $cancelOld = trim($cancelOld, ','); $sql_cancel_old = "UPDATE `app_wigsout` SET `order_status`=4 WHERE `order_barcode` IN ({$cancelOld});"; $insertValues = trim($insertValues, ','); $sql = "INSERT INTO `app_wigsout`(`transport`,`order_barcode`,`print_times`,`goods_no`,`goods_info`,`print_time`,`type`,`memo`) VALUES {$insertValues};"; $this->db->querySql("SET AUTOCOMMIT=0"); $this->db->begin(); if(!($this->db->querySql($sql_cancel_old))){ $this->db->querySql("ROLLBACK"); return json_encode(array( 'code' => '-5', 'msg' => 'Error: server error' )); }else{ if(!($this->db->querySql($sql))){ $this->db->querySql("ROLLBACK"); return json_encode(array( 'code' => '-3', 'msg' => 'Error: server error' )); }else{ $sql_gir = "UPDATE `app_wigsout` SET `gir`=1 WHERE `goods_no` IN ("; $sql_gir .= "SELECT * FROM (SELECT `goods_no` FROM `app_wigsout` GROUP BY `goods_no` HAVING COUNT(`goods_no`)>1) AS `tmp`) AND `gir`!=1;"; if($this->db->querySql($sql_gir)){ $this->db->commit(); return json_encode(array( 'code' => '1', 'msg' => 'Success: request complete' )); }else{ $this->db->querySql("ROLLBACK"); return json_encode(array( 'code' => '-4', 'msg' => 'Error: server error' )); } } } } public function updateMemo(){ if(isset($_POST['oid']) && !empty($_POST['oid']) && isset($_POST['memo']) && !empty($_POST['memo'])){ $oid = $this->common->my_filter_input($_POST['oid']); $memo = $this->common->my_filter_input($_POST['memo']); }else{ return false; } $sql = "UPDATE `app_wigsout` SET `memo`='{$memo}' WHERE `oid`='{$oid}';"; if($this->db->querySql($sql)){ return 1; }else{ return -1; } } public function updatePrint(){ if(isset($_POST['oid']) && !empty($_POST['oid'])){ $oid = $this->common->my_filter_input($_POST['oid']); }else{ return false; } $time_now = date("Y-m-d H:i:s", time()); $sql = "UPDATE `app_wigsout` SET `print_times`=`print_times`+1,`print_date`='{$time_now}' WHERE `oid`='{$oid}';"; if($this->db->querySql($sql)){ return 1; }else{ return -1; } } public function printAll(){ $sql = 'SELECT `order_barcode`,`goods_info`,`transport`,`print_time` FROM `app_wigsout` WHERE `order_status`=2 AND `print_times`=0 ORDER BY `in_time`;'; $query = $this->db->querySql($sql); $rs = $this->db->queryRsAll($query); if(empty($rs)){ return -1; }else{ $time_now = date("Y-m-d H:i:s", time()); $sql_update = "UPDATE `app_wigsout` SET `print_times`=`print_times`+1,`print_date`='{$time_now}' WHERE `order_status`=2 AND `print_times`=0;"; $query_update = $this->db->querySql($sql_update); $str = ''; $arr = array(); foreach($rs as $val){ $str = '
'.$val['order_barcode'] . '*' . $val['goods_info'] . '*' . $val['transport'] . '*' . $val['print_time'].'
'; $arr[] = array( 'barcode' => $val['order_barcode'], 'str' => $str ); } return json_encode($arr); } } public function syncData(){ $t = time()-864000; $post = array(); for($i=1; $i<3; $i++){ $url = "http://1.wepolicy.cn/api/headgear/{$t}/{$i}"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $input = curl_exec($curl); curl_close($curl); if(preg_match('/^\xEF\xBB\xBF/',$input)){ $input = substr($input,3); } $post[$i] = json_decode(trim($input), true); foreach($post[$i] as $pik=>$piv){ $post[$i][$pik]['type'] = $i; } } $data = array_merge($post[1], $post[2]); $insertValues = ''; $up_num = 0; foreach($data as $dk => $dv){ $sql_check = "SELECT oid,goods_info FROM `app_wigsout` WHERE `order_barcode`='{$dv['number']}';"; $query_check = $this->db->querySql($sql_check); $rs_num = $this->db->queryNum($query_check); if($rs_num == 0){ $values = ''; foreach($dv as $wk => $wv){ $wv = preg_replace('/"/', "''", $wv); $values .= "\"{$wv}\","; } $insertValues .= '(' . $values . '"n/a"),'; }else{ $rs = $this->db->queryRsAll($query_check); if( strcmp($rs[0]['goods_info'],$dv['shipremarks'] )==0 ){ continue; }else{ $up_sql = "UPDATE `app_wigsout` SET `goods_info`='{$dv['shipremarks']}' WHERE `order_barcode`='{$dv['number']}';"; $this->db->querySql($up_sql); $up_num++; } } } $insertValues = trim($insertValues, ','); $sql = "INSERT INTO `app_wigsout`(`transport`,`order_barcode`,`goods_no`,`goods_info`,`print_time`,`type`,`memo`) VALUES {$insertValues};"; $this->db->querySql("SET AUTOCOMMIT=0"); $this->db->begin(); if(!empty($insertValues)){ if(!($this->db->querySql($sql))){ $this->db->querySql("ROLLBACK"); return json_encode(array( 'code' => '-3', 'msg' => 'Error: server error'.$up_num )); }else{ $sql_gir = "UPDATE `app_wigsout` SET `gir`=1 WHERE `goods_no` IN ("; $sql_gir .= "SELECT * FROM (SELECT `goods_no` FROM `app_wigsout` GROUP BY `goods_no` HAVING COUNT(`goods_no`)>1) AS `tmp`) AND `gir`!=1;"; if($this->db->querySql($sql_gir)){ $this->db->commit(); return json_encode(array( 'code' => '1', 'msg' => 'Success: request complete'.$up_num )); }else{ $this->db->querySql("ROLLBACK"); return json_encode(array( 'code' => '-4', 'msg' => 'Error: server error'.$up_num )); } } }else{ return json_encode(array( 'code' => '0', 'msg' => 'Error: data null'.$up_num )); } // if(!empty($cancelOld) && !($this->db->querySql($sql_cancel_old))){ // $this->db->querySql("ROLLBACK"); // return json_encode(array( // 'code' => '-5', // 'msg' => 'Error: server error' // )); // }else{ // } } public function __destruct(){ //TODO } }