|
@@ -49,10 +49,23 @@ class Delivery
|
|
|
$express = Dever::db('porder/source_delivery_express')->select(['order_id' => $data['order_id']]);
|
|
|
$delivery = [];
|
|
|
$detail_id = [];
|
|
|
+
|
|
|
+ # 这几个是微信发货相关的,以后优化吧
|
|
|
+ $delivery_express = [];
|
|
|
+ $delivery_express_detail = [];
|
|
|
+ $delivery_virtual = [];
|
|
|
+ $delivery_virtual_detail = [];
|
|
|
+ $mode = 1;
|
|
|
if ($express) {
|
|
|
foreach ($express as $k => $v) {
|
|
|
if ($v['delivery_id']) {
|
|
|
$delivery_info = Dever::db('sector/delivery')->find($v['delivery_id']);
|
|
|
+ if ($v['content']) {
|
|
|
+ if (!$delivery_express_detail) {
|
|
|
+ $delivery_express_detail = Dever::db('porder/source_detail')->find($v['detail_id']);
|
|
|
+ }
|
|
|
+ $delivery_express[] = ['code' => $delivery_info['code'], 'content' => $v['content']];
|
|
|
+ }
|
|
|
if (!$v['content']) {
|
|
|
$v['content'] = '无单号';
|
|
|
}
|
|
@@ -68,6 +81,16 @@ class Delivery
|
|
|
$delivery_info = Dever::db('sector/delivery')->find($v['delivery_id']);
|
|
|
$delivery[] = $delivery_info['name'] . ',' . $v['content'];
|
|
|
$detail_id[] = $v['detail_id'];
|
|
|
+ if ($v['content']) {
|
|
|
+ if (!$delivery_virtual_detail) {
|
|
|
+ $delivery_virtual_detail = Dever::db('porder/source_detail')->find($v['detail_id']);
|
|
|
+ }
|
|
|
+ $delivery_virtual[] = ['code' => $delivery_info['code'], 'content' => $v['content']];
|
|
|
+ if ($delivery_express) {
|
|
|
+ # 分拆发货
|
|
|
+ $mode = 2;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -75,10 +98,26 @@ class Delivery
|
|
|
$msg = '已发货:' . implode('、', $delivery);
|
|
|
Dever::db('porder/source_detail')->update(['id' => ['in', $detail_id]], ['status' => 2, 'ddate' => time()]);
|
|
|
$state = Dever::db('porder/source_detail')->find(['order_id' => $data['order_id'], 'status' => 1]);
|
|
|
- if (!$state) {
|
|
|
+ $delivered = false;
|
|
|
+ if ($state) {
|
|
|
+ $delivered = false;
|
|
|
+ if ($mode == 1) {
|
|
|
+ $mode = 2;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $delivered = true;
|
|
|
Dever::db('porder/source')->update($data['order_id'], ['status' => 3, 'ddate' => time()]);
|
|
|
}
|
|
|
Dever::load(\Porder\Lib\Source\Log::class)->up(2, Dever::getData('muser')['id'], $data['order_id'], $msg, $data['id']);
|
|
|
+
|
|
|
+ # 微信小程序发货
|
|
|
+ if ($delivery_express) {
|
|
|
+ Dever::load(\Place\Lib\Account::class)->delivery($order, $delivery_express_detail, $delivery_express, $mode, $delivered);
|
|
|
+ }
|
|
|
+ if ($delivery_virtual) {
|
|
|
+ Dever::load(\Place\Lib\Account::class)->delivery($order, $delivery_virtual_detail, $delivery_virtual, $mode, $delivered);
|
|
|
+ }
|
|
|
+
|
|
|
} else {
|
|
|
Dever::error('发货失败,请检查重试');
|
|
|
}
|