From 1cdbbc98012dcca8f539976fd04834308a793618 Mon Sep 17 00:00:00 2001 From: chenping Date: Wed, 13 May 2026 16:47:49 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91?= =?UTF-8?q?=E5=A4=A9=E7=8C=AB=E4=B8=BB=E5=93=81=E5=88=A0=E9=99=A4=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=A0=E9=99=A4=E8=B5=A0=E5=93=81=E9=97=AE=E9=A2=98?= =?UTF-8?q?=202=E3=80=81=E3=80=90=E5=8A=9F=E8=83=BD=E3=80=91=E6=8A=96?= =?UTF-8?q?=E9=9F=B3=E6=8A=BD=E5=A5=96=E8=AE=A2=E5=8D=95=E6=89=93=E6=A0=87?= =?UTF-8?q?=203=E3=80=81=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91=E6=8A=96?= =?UTF-8?q?=E9=9F=B3=E9=80=80=E6=AC=BE=E8=BD=AC=E9=80=80=E8=B4=A7=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/dchain/lib/order.php | 4 +++ .../matrix/luban/response/aftersalev2.php | 4 +-- .../lib/shop/matrix/luban/response/order.php | 6 +++- .../lib/shop/response/process/aftersalev2.php | 28 +++++++++++++++++-- config/deploy.xml | 2 +- 5 files changed, 37 insertions(+), 7 deletions(-) diff --git a/app/dchain/lib/order.php b/app/dchain/lib/order.php index 614f8a65..21b72d00 100644 --- a/app/dchain/lib/order.php +++ b/app/dchain/lib/order.php @@ -152,6 +152,10 @@ class dchain_order extends dchain_abstract if($white_delivery_cps && in_array($corpInfo['type'], $white_delivery_cps)){ return $this->succ(); } + + if ($extendInfo['cpup_service'] == '218') { + return $this->error('该订单为加价发顺丰平台集采订单,请修改为顺丰快递'); + } $error_msg = '当前订单在猫淘平台对消费者进行了服务承诺,建议按照平台要求进行择配,否则存在赔付风险。'; return $this->error($error_msg); diff --git a/app/erpapi/lib/shop/matrix/luban/response/aftersalev2.php b/app/erpapi/lib/shop/matrix/luban/response/aftersalev2.php index e8880ad2..7d28c019 100644 --- a/app/erpapi/lib/shop/matrix/luban/response/aftersalev2.php +++ b/app/erpapi/lib/shop/matrix/luban/response/aftersalev2.php @@ -255,7 +255,7 @@ class erpapi_shop_matrix_luban_response_aftersalev2 extends erpapi_shop_response $refundApplyInfo = $refundApplyObj->getList('refund_apply_bn', array('return_id'=>$refundOriginalInfo[0]['return_id'],'status' =>array('0','1','2','5','6')) , 0 , 1); if($refundApplyInfo){ $sdf['refund_bn'] = $refundApplyInfo[0]['refund_apply_bn']; - $sdf['has_finished_return_product'] = true; + $sdf['tmall_has_finished_return_product'] = true; } } } @@ -278,7 +278,7 @@ class erpapi_shop_matrix_luban_response_aftersalev2 extends erpapi_shop_response }elseif($sdf['refund_refer'] == 'aftersale'){ //售后仅退款(场景:已发货、未签收) return 'refund'; - }elseif(in_array($sdf['order']['ship_status'],array('3','4')) && $sdf['has_finished_return_product']){ + }elseif(in_array($sdf['order']['ship_status'],array('3','4')) && $sdf['tmall_has_finished_return_product']){ //退款单 return 'refund'; }else{ diff --git a/app/erpapi/lib/shop/matrix/luban/response/order.php b/app/erpapi/lib/shop/matrix/luban/response/order.php index 4994dd6e..eb72fff2 100644 --- a/app/erpapi/lib/shop/matrix/luban/response/order.php +++ b/app/erpapi/lib/shop/matrix/luban/response/order.php @@ -215,7 +215,11 @@ class erpapi_shop_matrix_luban_response_order extends erpapi_shop_response_order if($this->_ordersdf['extend_field']['platform_order_tag_ui']){ foreach($this->_ordersdf['extend_field']['platform_order_tag_ui'] as $tag_val){ $dy_added_service .= $tag_val['key'].','; - + + //抽奖类型订单 只打标自发订单 + if ($tag_val['key'] == 'draw_lottery' && $this->__channelObj->channel['delivery_mode'] == 'self') { + $this->_ordersdf['extend_field']['is_lucky_flag'] = true; + } // 集运标识转成oms本地标识(二期) // 改用platform_order_tag_ui识别, // key=logistics_transit是偏远中转;key=remote_derict是偏远直邮,偏远直邮不用打标 diff --git a/app/erpapi/lib/shop/response/process/aftersalev2.php b/app/erpapi/lib/shop/response/process/aftersalev2.php index 75b71eaa..af2e9ce1 100644 --- a/app/erpapi/lib/shop/response/process/aftersalev2.php +++ b/app/erpapi/lib/shop/response/process/aftersalev2.php @@ -2040,7 +2040,7 @@ class erpapi_shop_response_process_aftersalev2 { kernel::single('ome_order_object_amount')->recalculateOrderAmount($order_id, [$item]); // custom 根据子订单id查询是否有关联赠品 - $this->__deletePlatformGift($item['oid'], $order_id, $needChangeFreezeItem); + $this->__deletePlatformGift($item['oid'], $order_id, $needChangeFreezeItem, $order_detail); } } if($needChangeFreezeItem) { @@ -2358,7 +2358,7 @@ class erpapi_shop_response_process_aftersalev2 { * @param $order_id * @return void */ - public function __deletePlatformGift($oid, $order_id, &$needChangeFreezeItem) + public function __deletePlatformGift($oid, $order_id, &$needChangeFreezeItem, $order_detail = []) { $orderObjectObj = app::get('ome')->model('order_objects'); $orderItemObj = app::get('ome')->model("order_items"); @@ -2372,12 +2372,26 @@ class erpapi_shop_response_process_aftersalev2 { 'delete' => 'false', 'sale_price' => '0', ]; - $giftOrderObjects = $orderObjectObj->getList('obj_id,main_oid,part_mjz_discount,divide_order_fee,amount,pmt_price', $giftFilter); + $giftOrderObjects = $orderObjectObj->getList('obj_id,main_oid,part_mjz_discount,divide_order_fee,amount,pmt_price,oid', $giftFilter); if (empty($giftOrderObjects)) { return; } + $refundOids = []; + if ($order_detail['shop_type'] == 'taobao' || $order_detail['shop_type'] == 'tmall') { + $refundRs = kernel::single('erpapi_router_request')->set('shop', $order_detail['shop_id'])->finance_getRefundStatus(['order_bn' => $order_detail['order_bn']]); + + if ($refundRs['rsp'] == 'succ' && !empty($refundRs['data']) && is_array($refundRs['data'])) { + $refundOids = ['NON_PLATFORM_REFUND']; + foreach ($refundRs['data'] as $refund) { + if ($refund['status'] == 'SUCCESS' && isset($refund['oid'])) { + $refundOids[] = $refund['oid']; + } + } + } + } + // 不为空,则逐个循环,检查关联销售子订单是否都已删除 foreach ($giftOrderObjects as $giftOrderObject) { // check1 子订单明细已审单,则不处理 @@ -2392,6 +2406,14 @@ class erpapi_shop_response_process_aftersalev2 { continue; } + // 如果平台赠品未退款,则不处理 + if (in_array($order_detail['shop_type'], ['taobao', 'tmall']) + && $giftOrderObject['oid'] + && $refundOids + && !in_array($giftOrderObject['oid'], $refundOids)) { + continue; + } + // check2 赠品还存在未删除的关联销售子订单,则不处理 /* $giftMainFilter = [ 'order_id' => $order_id, diff --git a/config/deploy.xml b/config/deploy.xml index 74a40251..6315318d 100644 --- a/config/deploy.xml +++ b/config/deploy.xml @@ -1,5 +1,5 @@ - 8.3.0.20260424 + 8.3.4.20260508 ONEX OMS taog