作者 何书鹏

拆单

... ... @@ -26,6 +26,20 @@ class Payed
// 有门店相关的订单
$storeIds = [];
/* 拆单-参数-开始 */
$item_count = count($items);
if($item_count > 1){
// 在这里将支付金额平均分割到每个订单 item 上, 计算每一块钱应该分配的支付金额
$every_total_fee = 0;
$every_pay_fee = 0;
if ($order['goods_amount']) {
$every_total_fee = round(($order['total_fee'] / $order['goods_amount']), 4);
$every_pay_fee = round(($order['pay_fee'] / $order['goods_amount']), 4);
}
}
/* 拆单-参数-结束 */
foreach ($items as $item) {
if (in_array($item['dispatch_type'], ['store', 'selfetch']) && $item['store_id']) {
$storeIds[] = $item['store_id'];
... ... @@ -50,6 +64,56 @@ class Payed
$dealer_stock->setDec('stock',1); //减少库存
$dealer_stock->setInc('sales',1); //增加销量
}
/* 拆单-生成子订单-开始 */
if($item_count > 1) {
$orderData = [];
$goods_amount = ($item->goods_price * $item->goods_num);
$orderData['order_sn'] = Order::getSn($order->user_id);
$orderData['user_id'] = $order->user_id;
$orderData['type'] = $order->type;
$orderData['activity_type'] = $order->activity_type;
$orderData['goods_amount'] = $goods_amount;
$orderData['dispatch_amount'] = $item['dispatch_fee'];
$orderData['total_amount'] = ($goods_amount + $item['dispatch_fee']);
$orderData['score_amount'] = 0;
$orderData['total_fee'] = round(($goods_amount * $every_total_fee), 2);
$orderData['discount_fee'] = $item['discount_fee'];
$orderData['score_fee'] = 0; // 记录score 支付数
$orderData['coupon_fee'] = $item['discount_fee'];
$orderData['goods_original_amount'] = $item['goods_original_price'];
// 收货地址
$orderData['phone'] = $order->phone;
$orderData['consignee'] = $order->consignee;
$orderData['province_name'] = $order->province_name;
$orderData['city_name'] = $order->city_name;
$orderData['area_name'] = $order->area_name;
$orderData['address'] = $order->address;
$orderData['province_id'] = $order->province_id;
$orderData['city_id'] = $order->city_id;
$orderData['area_id'] = $order->area_id;
$orderData['status'] = $order->status;
$orderData['remark'] = $order->remark;
$orderData['coupons_id'] = $order->coupons_id;
$orderData['platform'] = 'wxMiniProgram'; // request()->header('platform')
$orderData['pay_fee'] = round(($goods_amount * $every_pay_fee), 2);
$orderData['score_fee'] = 0;
$orderData['transaction_id'] = $order->transaction_id;
$orderData['payment_json'] = $order->payment_json;
$orderData['pay_type'] = $order->pay_type;
$orderData['paytime'] = $order->paytime;
$orderData['ext'] = $order->ext;
$orderData['pid'] = $order->id; // 绑定父ID
$order_son = new Order();
$order_son->allowField(true)->save($orderData);
// 修改成子订单的ID
$item->order_id = $order_son->id;
$item->save();
}
/* 拆单-生成子订单-结束 */
}
$data = [];
... ... @@ -93,6 +157,13 @@ class Payed
);
}
}
/* 拆单-删除原始订单-开始 */
if($item_count > 1) {
$order->delete();
}
/* 拆单-删除原始订单-结束 */
}
}
... ...