diff --git a/app/admin/controller/order/Order.php b/app/admin/controller/order/Order.php index f07f6c34..adb74256 100755 --- a/app/admin/controller/order/Order.php +++ b/app/admin/controller/order/Order.php @@ -103,7 +103,7 @@ class Order extends AdminBase { $id = $this->request->get('id'); $detail = OrderLogic::getDetail($id); - $detail['shipping'] = OrderLogic::shippingInfo($detail['id']); +// $detail['shipping'] = OrderLogic::shippingInfo($detail['id']); return view('', [ 'detail' => $detail ]); @@ -128,4 +128,14 @@ class Order extends AdminBase } return JsonServer::success('', $result); } + + // 查看对应商品的物流 + public function seeExpress() + { + $id = $this->request->get('id'); + $express = OrderLogic::seeExpress($id); + return view('', [ + 'express' => $express + ]); + } } \ No newline at end of file diff --git a/app/admin/logic/order/OrderLogic.php b/app/admin/logic/order/OrderLogic.php index 51f37634..85f11fe5 100755 --- a/app/admin/logic/order/OrderLogic.php +++ b/app/admin/logic/order/OrderLogic.php @@ -24,6 +24,7 @@ namespace app\admin\logic\order; use app\common\basics\Logic; use app\common\enum\OrderEnum; use app\common\enum\ShopEnum; +use app\common\model\Delivery; use app\common\model\order\Order; use app\common\enum\OrderLogEnum; use app\common\enum\PayEnum; @@ -235,6 +236,8 @@ class OrderLogic extends Logic $result['confirm_take_time'] = ''; } + // 获取商品物流简略信息 + $result['express_info'] = Delivery::where(['order_id' => $id])->field('id, order_goods_id, shipping_name, invoice_no, create_time')->select()->toArray(); return $result; } @@ -505,4 +508,88 @@ class OrderLogic extends Logic } } + // 查看对应单号的物流 + public static function seeExpress($id) + { + $express_data = array(); + + $delivery = Delivery::find($id); + if (!$delivery['invoice_no']) { + $traces['list'] = ['物流单号为空']; + return $traces; + } + + $express = ConfigServer::get('express', 'way'); + $key = ConfigServer::get($express, 'appkey'); + $app = ConfigServer::get($express, 'appsecret'); + if (empty($express) || empty($app) || empty($key)) { + $traces['list'] = ['暂无物流信息']; + return $traces; + } + + $result = Kd100Logic::expressDetail($id); + + // 如果当前时间大于了api接口限制的时间,则调用api接口 + if (!isset($result) || (time() > $result['sel_time'])) { + //快递配置设置为快递鸟时 + if ($express === 'kdniao') { + $expressage = (new Kdniao($app, $key, true)); + $shipping_field = 'codebird'; + } else { + $expressage = (new Kd100($app, $key, true)); + $shipping_field = 'code100'; + } + + //快递编码 + $shipping_code = Db::name('express') + ->where(['id' => $delivery['shipping_id']]) + ->value($shipping_field); + + //获取物流轨迹 + if ($shipping_code === 'SF' && $express === 'kdniao') { + $expressage->logistics($shipping_code, $delivery['invoice_no'], substr($delivery['mobile'],-4)); + }else { + $phone = ''; + if ($shipping_code === 'shunfeng') { + $phone = $delivery['mobile']; + } + $expressage->logistics($shipping_code, $delivery['invoice_no'], $phone); + } + + $traces = $expressage->logisticsFormat(); + $state = 0; + if (!$traces) { + $traces[] = [$expressage->getError()]; + } else { + $data = $expressage->logisticsFullInfo(); + $data['delivery_id'] = $id; + $data['order_id'] = $delivery['order_id']; + Kd100Logic::saveExpress($data); + $state = $data['state']; + + foreach ($traces as &$item) { + $item = array_values(array_unique($item)); + } + } + + $express_data['create_time'] = $delivery['create_time']; + $express_data['invoice_no'] = $delivery['invoice_no']; + $express_data['shipping_name'] = $delivery['shipping_name']; + $express_data['state'] = $state; + $express_data['state_text'] = Kd100Logic::$EXPRESS_STATE[$state]; + $express_data['list'] = $traces; + } else { + $express_data['create_time'] = $delivery['create_time']; + $express_data['invoice_no'] = $delivery['invoice_no']; + $express_data['shipping_name'] = $delivery['shipping_name']; + $express_data['state'] = $result['state']; + $express_data['state_text'] = Kd100Logic::$EXPRESS_STATE[$result['state']]; + $express_data['list'] = json_decode($result['data'], true); + foreach ($express_data['list'] as &$item) { + $item = array_values(array_unique($item)); + } + } + + return $express_data; + } } \ No newline at end of file diff --git a/app/admin/view/order/order/express.html b/app/admin/view/order/order/express.html index caea08b9..77534840 100755 --- a/app/admin/view/order/order/express.html +++ b/app/admin/view/order/order/express.html @@ -6,6 +6,12 @@ justify-content: left; } + .flex { + display: flex; + align-items: center; + justify-content: space-between; + } + .width-160 { width: 200px; } @@ -35,43 +41,12 @@
| 价格(元) | 数量 | 小计(元) | +物流 | ¥{$goods.goods_price} | {$goods.goods_num} | {$goods.total_pay_price} | +
+ {if condition="isset($detail.express_info[$k])"}
+
+
+ {/if}
+
+
+ 发货时间:{$detail.express_info[$k]['create_time']}
+ 快递方式:{$detail.express_info[$k]['shipping_name']}
+ 快递单号:{$detail.express_info[$k]['invoice_no']}
+
+
+
+ |
{/foreach}
|---|
| 轨迹 | -||
|---|---|---|
| {$value} | - {/foreach} - {else /} -{$item} | - {/if} -|
| 轨迹 | +||
|---|---|---|
| {$value} | + {/foreach} + {else /} +{$item} | + {/if} +|
| 商品信息 | -价格(元) | -数量 | -小计(元) | -||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ {/neq}
+
| 价格(元) | 数量 | 小计(元) | +物流 | ¥{$goods.goods_price} | {$goods.goods_num} | {$goods.total_pay_price} | +
+ {if condition="isset($detail.express_info[$k])"}
+
+
+ {/if}
+
+
+ 发货时间:{$detail.express_info[$k]['create_time']}
+ 快递方式:{$detail.express_info[$k]['shipping_name']}
+ 快递单号:{$detail.express_info[$k]['invoice_no']}
+
+
+
+ |
{/foreach}
|---|
| 轨迹 | -||
|---|---|---|
| {$value} | - {/foreach} - {else /} -{$item} | - {/if} -|
| 轨迹 | +||
|---|---|---|
| {$value} | + {/foreach} + {else /} +{$item} | + {/if} +|