更新委托商品处理

This commit is contained in:
yaooo 2023-09-07 15:40:16 +08:00
parent aef33c660c
commit 01cfd79803
2 changed files with 26 additions and 10 deletions

View File

@ -155,7 +155,7 @@ class StoreCart extends BaseModel
'activity_id' => $this->source_id,
'product_type' => $this->product_type,
];
if ($this->product_type == 98) {
if ($this->product_type == 98 || $this->product_type == 99) {
$where['product_id'] = $this->product_id;
}
} else {

View File

@ -97,11 +97,10 @@ class StoreOrderCreateRepository extends StoreOrderRepository
}
}
}
if ($order_type == 98 && count($merchantCartList) > 1) {
throw new ValidateException('采购商品不支持跨店购买');
if (($order_type == 98 || $order_type == 99) && count($merchantCartList) > 1) {
throw new ValidateException('采购、委托商品不支持跨店购买');
}
$community = [];
// 99 委托商品是否设置收货方式 ?
if ($order_type == 98) {
$sourceIdArray = [];
foreach($merchantCart['list'] as $prod){
@ -120,6 +119,24 @@ class StoreOrderCreateRepository extends StoreOrderRepository
}
}
}
if ($order_type == 99) {
$sourceIdArray = [];
foreach($merchantCart['list'] as $prod){
if ($prod['source_id'] > 0) {
$sourceIdArray[] = $prod['source_id'];
}
}
if (count($sourceIdArray)) {
if (count(array_unique($sourceIdArray)) > 1) {
throw new ValidateException('委托商品数据异常');
}
$community = Db::name('Community')->where('community_id', $sourceIdArray[0] ?? 0)->field('community_id, title, image')->fetchSql(false)->find();
if ($community) {
$deliverMethod = Db::name('entrust')->where('community_id', $sourceIdArray[0] ?? 0)->value('deliver_method');
$deliverMethodArray = explode(',', $deliverMethod);
}
}
}
unset($merchantCart, $cart);
$order_price = 0;
$total_true_price = 0;
@ -141,7 +158,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository
$order_svip_discount = 0;
// 循环计算每个店铺的订单数据 委托商品是否设置收货方式 ?
foreach ($merchantCartList as &$merchantCart) {
if ($order_type == 98 && !empty($deliverMethodArray)) {
if (($order_type == 98 || $order_type == 99) && !empty($deliverMethodArray)) {
$merchantCart['delivery_way'] = $deliverMethodArray;
}
$postageRule = [];
@ -173,8 +190,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository
$product_cart = [];
foreach ($merchantCart['list'] as $k => $cart) {
//处理转售送货方式 委托商品是否设置收货方式 ?
if ($order_type == 98) {
if ($order_type == 98 || $order_type == 99) {
$merchantCart['list'][$k]['product']['delivery_way'] = $cart['product']['delivery_way'] = $deliverMethod ?? '';
}
//获取订单类型, 活动商品单次只能购买一个
@ -962,7 +978,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository
if ($orderType == 0 && $pay_type == StoreGroupOrder::PAY_TYPE_CREDIT_BUY) {
throw new ValidateException('该商品不支持先货后款');
}
if (!in_array($orderType, [0, 98]) && (count($orderInfo['order']) > 1 || ($orderType != 10 && count($orderInfo['order'][0]['list']) > 1))) {
if (!in_array($orderType, [0, 98, 99]) && (count($orderInfo['order']) > 1 || ($orderType != 10 && count($orderInfo['order'][0]['list']) > 1))) {
throw new ValidateException('活动商品请单独购买');
}
@ -987,8 +1003,8 @@ class StoreOrderCreateRepository extends StoreOrderRepository
}
}
}
if ($orderType == 98 && count($merchantCartList) > 1) {
throw new ValidateException('采购商品不支持跨店购买');
if (($orderType == 98 || $orderType == 99) && count($merchantCartList) > 1) {
throw new ValidateException('采购、委托商品不支持跨店购买');
}
if ($hasTake) {
app()->make(UserAddressValidate::class)->scene('take')->check($post);