public function act_orderWeighingFlat() { $orderid = isset($_POST['orderid']) ? $_POST['orderid'] : ""; $mailway = isset($_POST['channelId']) ? $_POST['channelId'] : ""; //$partionId = isset($_POST['partionId'])?$_POST['partionId']:"";//不作处理 $orderweight = isset($_POST['orderweight']) ? $_POST['orderweight'] : ""; if (!is_numeric($orderid) || empty($orderid)) { self::$errCode = 501; self::$errMsg = "错误的发货单号!"; return false; } $where = "where id={$orderid}"; $lists = orderWeighingModel::selectRecord($where); $calcweight = $lists[0]['calcWeight'] * 1000; //估算重量 $userName = $_SESSION['userCnName']; /**重量拦截的逻辑**/ $vip_users = C('weight_vip'); //获取具有VIP权限的 $lists = orderWeighingModel::selectOrderDetail($orderid); if (!in_array($userName, $vip_users)) { //判断是否具有vip操作权限 $minRate = 0.8; $maxRate = 1.2; } else { $minRate = 0.5; $maxRate = 2; } if ($calcweight < 50 && $orderweight < 50) { if (abs($orderweight - $calcweight) >= 20) { self::$errCode = 509; self::$errMsg = "该订单重量与实际不符合!系统重量为{$calcweight}称重重量为{$orderweight}"; return false; } } else { if (($orderweight < $calcweight * $minRate || $orderweight > $calcweight * $maxRate) && $calcweight != 0) { self::$errCode = 510; self::$errMsg = "该订单重量与实际不符合!系统重量为{$calcweight}称重重量为{$orderweight}"; return false; } } TransactionBaseModel::begin(); //更新状态,插入记录 $userId = $_SESSION['userId']; $msg = orderWeighingModel::insertRecord($orderid, $userId); if (!$msg) { self::$errCode = 511; self::$errMsg = "插入称重记录失败!"; TransactionBaseModel::rollback(); return false; } $msg = orderWeighingModel::updateRecord($orderid, $orderweight, $userId); if (!$msg) { self::$errCode = 512; self::$errMsg = "更新操作记录表失败!"; TransactionBaseModel::rollback(); return false; } //更新发货单实际重量和状态 $orderData = array('orderWeight' => $orderweight, 'orderStatus' => PKS_WDISTRICT); $msg = WhShippingOrderModel::update($orderData, $orderid); //orderWeighingModel::updateStatus($orderid); if (!$msg) { self::$errCode = 513; self::$errMsg = "更新发货单重量和状态失败!"; TransactionBaseModel::rollback(); return false; } //插入运输方式跟踪号申请记录表 $transportData = array('shipOrderId' => $orderid, 'createTime' => time()); $msg = WhWaveOrderTransportModel::insert($transportData); if (!$msg) { self::$errCode = 514; self::$errMsg = "插入运输方式跟踪号记录表失败!"; TransactionBaseModel::rollback(); return false; } WhPushModel::pushOrderStatus($orderid, 'PKS_WDISTRICT', $userId, time()); //状态推送 TransactionBaseModel::commit(); return true; }
if ($transport['fee'] < $shipFee) { $shipFee = $transport['fee']; $lastTransport = $transport; } } //运费最优策略,暂时只有EUB $bestTransport = getBestTransport($compareTrasprot, $lastTransport); $shipFee = $bestTransport['fee']; $transportId = $bestTransport['carrierId']; $channelId = $bestTransport['channelId']; $insertData = array('transportId' => $transportId, 'status' => 1, 'transportTime' => time()); //启用事物 WhWaveOrderTransportModel::begin(); //更新申请记录表 if (!WhWaveOrderTransportModel::update($insertData, ' shipOrderId = ' . $shipOrderId . ' AND status=0')) { $log .= "发货单:{$shipOrderId} 更新运输方式-{$transportId}记录表失败\n"; WhWaveOrderTransportModel::rollback(); continue; } //更新发货单表 $shipOrderData = array('transportId' => $transportId, 'actualShipping' => $shipFee, 'channelId' => $channelId); if (!WhShippingOrderModel::update($shipOrderData, $shipOrderId)) { $log .= "发货单:{$shipOrderId} 更新运输方式-{$transportId},运费-{$shipFee}发货单表失败\n"; WhWaveOrderTransportModel::rollback(); continue; } $log .= "发货单:{$shipOrderId} 更新运输方式 - {$transportId},运费 - {$shipFee}记录表成功\n"; WhWaveOrderTransportModel::commit(); } //写日志 write_log("transport_assign/" . date('Y-m') . "/" . date('H') . ".txt", $log);
} //限制 $limit = !empty($argv[1]) ? trim($argv[1]) : 100; $mctime = time(); $time_start = time(); echo "\n=====[" . date('Y-m-d H:i:s', $time_start) . "]申请【EUB】跟踪号订单开始\n"; $path = str_replace("\\", '/', __DIR__); //脚本绝对路径 require_once $path . '/scripts.comm.php'; date_default_timezone_set("Asia/Chongqing"); $wsdl = "http://shippingapi.ebay.cn/production/v3/orderservice.asmx?wsdl"; //$wsdl = "http://epacketws.pushauction.net/v3/orderservice.asmx?wsdl"; //测试沙盒 $soapclient = new soapclient($wsdl); //ebay账户的eub线上申请跟踪号,1为ebay平台,14为海外仓发货 $where = ' AND a.platformId in(1,14) AND a.transportId = 6'; $shipOrders = WhWaveOrderTransportModel::getOrderTransportRecords($limit, 1, $where); if (!$shipOrders) { echo "没有待申请的信息记录\n"; exit; } //批量获取订单详细信息 $orderids = array(); foreach ($shipOrders as $orderinfo) { $orderids[] = WhShippingOrderRelationModel::get_orderId($orderinfo['id']); } $orderisStr = implode("','", $orderids); //调用订单系统接口批量获取订单信息 $orders = CommonModel::get_orderInfoFromOrderSys($orderisStr); $orders = $orders['data']; if (empty($orders)) { exit('未获取申请跟踪号的订单详细信息');