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