diff --git a/backend/modules/shop/logic/delivery/DeliveryManager.php b/backend/modules/shop/logic/delivery/DeliveryManager.php index 2a95b5b..1a97af1 100644 --- a/backend/modules/shop/logic/delivery/DeliveryManager.php +++ b/backend/modules/shop/logic/delivery/DeliveryManager.php @@ -44,6 +44,7 @@ class DeliveryManager $model->goods_id = $value->goods_id; $model->goods_name = $value->goods_name; $model->goods_count = $value->goods_count; + /*如果是部分发货*/ if ($model->goods_count < $value->lack_number) { $order->status = Order::STATUS_SHIPMENT_PORTION; } @@ -51,10 +52,17 @@ class DeliveryManager throw new Exception('delivery_goods save false'); } } - if (!$order->save()) { throw new Exception('order shipping_status update false'); } + if ($order->status == Order::STATUS_SHIPMENT_PORTION|| Delivery::findOne(['!=', 'id', $delivery->id])) { + $delivery->type = Delivery::TYPE_SHIPMENT_PORTION; + } else { + $delivery->type = Delivery::TYPE_SHIPMENT_ALL; + } + if (!$delivery->save()) { + throw new Exception('保存物流信息失败'); + } $transaction->commit(); return ['status' => true]; diff --git a/backend/modules/shop/models/ars/Delivery.php b/backend/modules/shop/models/ars/Delivery.php index 6cc1dbe..866b413 100755 --- a/backend/modules/shop/models/ars/Delivery.php +++ b/backend/modules/shop/models/ars/Delivery.php @@ -21,6 +21,8 @@ use yii\behaviors\TimestampBehavior; */ class Delivery extends \yii\db\ActiveRecord { + const TYPE_SHIPMENT_ALL = 1; + const TYPE_SHIPMENT_PORTION = 2; /** * {@inheritdoc} */