From 51ef4da7de2e4ff2cb84898a35086ebd84ce7d6d Mon Sep 17 00:00:00 2001 From: Gosowong <1329847115@qq.com> Date: Fri, 19 May 2023 14:10:32 +0800 Subject: [PATCH 1/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E8=AE=A2=E5=8D=95=E4=B8=BA=E9=98=9F=E5=88=97=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E5=85=85=E5=80=BC=20=E4=BC=9A=E5=91=98=20?= =?UTF-8?q?=E8=87=AA=E6=8F=90=E8=AE=A2=E5=8D=95=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/jobs/MiniOrderJob.php | 27 ++++ .../listener/order/OrderShippingListener.php | 120 +++++++++++------- .../order/StoreOrderDeliveryServices.php | 3 +- .../services/order/StoreOrderTakeServices.php | 2 +- crmeb/app/services/pay/PayNotifyServices.php | 7 + .../services/user/UserRechargeServices.php | 2 + .../crmeb/services/app/MiniProgramService.php | 3 +- 7 files changed, 114 insertions(+), 50 deletions(-) create mode 100644 crmeb/app/jobs/MiniOrderJob.php diff --git a/crmeb/app/jobs/MiniOrderJob.php b/crmeb/app/jobs/MiniOrderJob.php new file mode 100644 index 000000000..c9236b71d --- /dev/null +++ b/crmeb/app/jobs/MiniOrderJob.php @@ -0,0 +1,27 @@ + 0) { - $delivery_mode = 2; - // 判断订单是否全部发货 - /** @var StoreOrderServices $orderServices */ - $orderServices = app()->make(StoreOrderServices::class); - $is_all_delivered = $orderServices->checkSubOrderNotSend((int)$order['pid'], (int)$order['id']); - $p_order = $orderServices->get((int)$order['pid']); - if (!$p_order) { - throw new AdminException('拆单异常'); - } - $out_trade_no = $p_order['order_id']; - } + //判断订单是否拆单 + $delivery_mode = 1; + $is_all_delivered = true; + if ($order_type == 'product') { // 商品订单 + if ($order['is_channel'] == 1 && $order['pay_type'] == 'weixin') { + $out_trade_no = $order['order_id']; + /** @var StoreOrderCartInfoServices $orderInfoServices */ + $orderInfoServices = app()->make(StoreOrderCartInfoServices::class); + $item_desc = $orderInfoServices->getCarIdByProductTitle((int)$order['id'], true); - // 整理商品信息 - /** @var StoreOrderCartInfoServices $orderInfoServices */ - $orderInfoServices = app()->make(StoreOrderCartInfoServices::class); - $item_desc = $orderInfoServices->getCarIdByProductTitle((int)$order['id'], true); - $shipping_list = [ - ['item_desc' => $item_desc] - ]; - //判断订单物流模式 - if ($order['shipping_type'] == 1) { - if ($delivery_type == 1) { - $shipping_list = [ - [ - 'tracking_no' => $delivery_id ?? '', - 'express_company' => $delivery_name ?? '', - 'item_desc' => $item_desc, - 'contact' => [ - 'receiver_contact' => $order['user_phone'] - ] - ] - ]; + if ($order['pid'] > 0) { + $delivery_mode = 2; + // 判断订单是否全部发货 + /** @var StoreOrderServices $orderServices */ + $orderServices = app()->make(StoreOrderServices::class); + $is_all_delivered = $orderServices->checkSubOrderNotSend((int)$order['pid'], (int)$order['id']); + $p_order = $orderServices->get((int)$order['pid']); + if (!$p_order) { + throw new AdminException('拆单异常'); + } + $out_trade_no = $p_order['order_id']; } - $logistics_type = $delivery_type; + $pay_uid = $order['pay_uid']; } else { - $logistics_type = 4; + return; } - //查找支付者openid - /** @var WechatUserServices $wechatUserService */ - $wechatUserService = app()->make(WechatUserServices::class); - $payer_openid = $wechatUserService->uidToOpenid($order['pay_uid'], 'routine'); - if (empty($payer_openid)) { - throw new AdminException('订单支付人异常'); + } else if ($order_type == 'recharge') { // 充值订单 + if ($order['recharge_type'] == 'routine' && $order['paid'] == 1) { + $delivery_type = 3; + $item_desc = '用户充值' . $order['price']; + $out_trade_no = $order['order_id']; + $pay_uid = $order['uid']; + } else { + return; } - MiniOrderService::shippingByTradeNo($out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered); + } else if ($order_type == 'member') { // 会员订单 + if ($order['pay_type'] == 'weixin') { + $delivery_type = 3; + $item_desc = '用户购买' . $order['member_type'] . '会员卡'; + $out_trade_no = $order['order_id']; + $pay_uid = $order['uid']; + } else { + return; + } + } else { + return; } + // 整理商品信息 + $shipping_list = [ + ['item_desc' => $item_desc] + ]; + //判断订单物流模式 + if ($order['shipping_type'] == 1) { + if ($delivery_type == 1) { + $shipping_list = [ + [ + 'tracking_no' => $delivery_id ?? '', + 'express_company' => $delivery_name ?? '', + 'item_desc' => $item_desc, + 'contact' => [ + 'receiver_contact' => $order['user_phone'] + ] + ] + ]; + } + $logistics_type = $delivery_type; + } else { + $logistics_type = 4; + } + //查找支付者openid + /** @var WechatUserServices $wechatUserService */ + $wechatUserService = app()->make(WechatUserServices::class); + $payer_openid = $wechatUserService->uidToOpenid($pay_uid, 'routine'); + if (empty($payer_openid)) { + throw new AdminException('订单支付人异常'); + } + MiniOrderJob::dispatch(compact($out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered)); } } } diff --git a/crmeb/app/services/order/StoreOrderDeliveryServices.php b/crmeb/app/services/order/StoreOrderDeliveryServices.php index e7519c69a..f3ee7d921 100644 --- a/crmeb/app/services/order/StoreOrderDeliveryServices.php +++ b/crmeb/app/services/order/StoreOrderDeliveryServices.php @@ -463,7 +463,8 @@ class StoreOrderDeliveryServices extends BaseServices if (!$data['delivery_id']) { $data['delivery_id'] = uniqid(); } - event('OrderShipping', [$orderInfo, $type, $data['delivery_id'], $data['delivery_name']]); + // 小程序订单管理 + event('OrderShipping', ['product', $orderInfo, $type, $data['delivery_id'], $data['delivery_name']]); //到期自动收货 event('OrderDeliveryListener', [$orderInfo, $storeName, $data, $type]); return $res; diff --git a/crmeb/app/services/order/StoreOrderTakeServices.php b/crmeb/app/services/order/StoreOrderTakeServices.php index 022f8a6d2..228220a7e 100644 --- a/crmeb/app/services/order/StoreOrderTakeServices.php +++ b/crmeb/app/services/order/StoreOrderTakeServices.php @@ -58,7 +58,7 @@ class StoreOrderTakeServices extends BaseServices //查找订单信息 $order = $this->dao->getOne(['order_id' => $merchant_trade_no]); if (!$order) { - throw new ApiException(410173); + return true; } if ($order['pid'] == -1) { // 有子订单 // 查找待收货的子订单 diff --git a/crmeb/app/services/pay/PayNotifyServices.php b/crmeb/app/services/pay/PayNotifyServices.php index b160463cb..50d429b3b 100644 --- a/crmeb/app/services/pay/PayNotifyServices.php +++ b/crmeb/app/services/pay/PayNotifyServices.php @@ -39,6 +39,11 @@ class PayNotifyServices $orderInfo = $services->getOne(['order_id' => $order_id]); if (!$orderInfo) return true; if ($orderInfo->paid) return true; + + // 小程序订单管理 (自提商品) + if ($orderInfo['shipping_type'] == 2) { + event('OrderShipping', ['product', $orderInfo]); + } return $services->paySuccess($orderInfo->toArray(), $payType, ['trade_no' => $trade_no]); } catch (\Exception $e) { return false; @@ -75,6 +80,8 @@ class PayNotifyServices $orderInfo = $services->getOne(['order_id' => $order_id]); if (!$orderInfo) return true; if ($orderInfo->paid) return true; + // 小程序订单服务 + event('OrderShipping', ['member', $orderInfo]); return $services->paySuccess($orderInfo->toArray(), $payType, ['trade_no' => $trade_no]); } catch (\Exception $e) { return false; diff --git a/crmeb/app/services/user/UserRechargeServices.php b/crmeb/app/services/user/UserRechargeServices.php index 9083d5a1d..cb7614c6d 100644 --- a/crmeb/app/services/user/UserRechargeServices.php +++ b/crmeb/app/services/user/UserRechargeServices.php @@ -490,6 +490,8 @@ class UserRechargeServices extends BaseServices $order['phone'] = $user['phone']; $capitalFlowServices->setFlow($order, 'recharge'); + // 小程序订单服务 + event('OrderShipping', ['recharge', $order]); //提醒推送 event('NoticeListener', [['order' => $order, 'now_money' => $now_money], 'recharge_success']); return true; diff --git a/crmeb/crmeb/services/app/MiniProgramService.php b/crmeb/crmeb/services/app/MiniProgramService.php index 1955ad0c3..cb7e7c775 100644 --- a/crmeb/crmeb/services/app/MiniProgramService.php +++ b/crmeb/crmeb/services/app/MiniProgramService.php @@ -13,6 +13,7 @@ namespace crmeb\services\app; use app\services\order\StoreOrderTakeServices; use crmeb\exceptions\AdminException; +use crmeb\services\easywechat\orderShipping\MiniOrderService; use crmeb\services\SystemConfigService; use app\services\pay\PayNotifyServices; use crmeb\services\easywechat\Application; @@ -887,7 +888,7 @@ class MiniProgramService break; case 'trade_manage_order_settlement': // 订单完成发货时 订单结算时 if (isset($message['estimated_settlement_time'])) { //订单完成发货时 - + MiniOrderService::notifyConfirmByTradeNo($message['merchant_trade_no'], time()); } if (isset($message['confirm_receive_method'])) { // 订单结算时 /** @var StoreOrderTakeServices $StoreOrderTakeServices */ From cae0c0fafee8a5a7475be9c7a194fcf8725c1c80 Mon Sep 17 00:00:00 2001 From: Gosowong <1329847115@qq.com> Date: Fri, 19 May 2023 15:29:08 +0800 Subject: [PATCH 2/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E8=AE=A2=E5=8D=95=20=E8=99=9A=E6=8B=9F=E5=95=86?= =?UTF-8?q?=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/jobs/MiniOrderJob.php | 4 ++-- crmeb/app/listener/order/OrderShippingListener.php | 2 +- crmeb/app/services/order/OtherOrderServices.php | 2 ++ crmeb/app/services/order/StoreOrderSuccessServices.php | 5 +++++ crmeb/app/services/pay/PayNotifyServices.php | 7 ------- crmeb/app/services/user/UserRechargeServices.php | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/crmeb/app/jobs/MiniOrderJob.php b/crmeb/app/jobs/MiniOrderJob.php index c9236b71d..f86933486 100644 --- a/crmeb/app/jobs/MiniOrderJob.php +++ b/crmeb/app/jobs/MiniOrderJob.php @@ -15,10 +15,10 @@ class MiniOrderJob extends BaseJobs /** * @throws HttpException */ - public function doJob($shippingOrder) + public function doJob(string $out_trade_no, int $logistics_type, array $shipping_list, string $payer_openid, int $delivery_mode = 1, bool $is_all_delivered = true) { try { - MiniOrderService::shippingByTradeNo($shippingOrder['out_trade_no'], $shippingOrder['logistics_type'], $shippingOrder['shipping_list'], $shippingOrder['payer_openid'], $shippingOrder['delivery_mode'] ?? 1, $shippingOrder['is_all_delivered'] ?? true); + MiniOrderService::shippingByTradeNo($out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered); } catch (HttpException $e) { // 订单异常处理 throw new HttpException($e); diff --git a/crmeb/app/listener/order/OrderShippingListener.php b/crmeb/app/listener/order/OrderShippingListener.php index dbe0594cf..d40ee08aa 100644 --- a/crmeb/app/listener/order/OrderShippingListener.php +++ b/crmeb/app/listener/order/OrderShippingListener.php @@ -95,7 +95,7 @@ class OrderShippingListener implements ListenerInterface if (empty($payer_openid)) { throw new AdminException('订单支付人异常'); } - MiniOrderJob::dispatch(compact($out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered)); + MiniOrderJob::dispatch(compact('out_trade_no', 'logistics_type', 'shipping_list', 'payer_openid', 'delivery_mode', 'is_all_delivered')); } } } diff --git a/crmeb/app/services/order/OtherOrderServices.php b/crmeb/app/services/order/OtherOrderServices.php index a188d2191..92e547b17 100644 --- a/crmeb/app/services/order/OtherOrderServices.php +++ b/crmeb/app/services/order/OtherOrderServices.php @@ -346,6 +346,8 @@ class OtherOrderServices extends BaseServices if ($spread_two && $spread_two_price > 0) $this->memberBrokerage($spread_two, $spread_two_price, 'get_two_member_brokerage', $orderInfo); } + // 小程序订单服务 + event('OrderShipping', ['member', $orderInfo, 3, '', '']); return false !== $res; } diff --git a/crmeb/app/services/order/StoreOrderSuccessServices.php b/crmeb/app/services/order/StoreOrderSuccessServices.php index 6c698238b..040e9cfa4 100644 --- a/crmeb/app/services/order/StoreOrderSuccessServices.php +++ b/crmeb/app/services/order/StoreOrderSuccessServices.php @@ -100,6 +100,11 @@ class StoreOrderSuccessServices extends BaseServices event('NoticeListener', [$orderInfo, 'admin_pay_success_code']); // 推送订单 event('OutPushListener', ['order_pay_push', ['order_id' => (int)$orderInfo['id']]]); + + // 小程序订单管理 (自提商品) + if ($orderInfo['shipping_type'] == 2) { + event('OrderShipping', ['product', $orderInfo, 4, '', '']); + } $res = $res1 && $resPink; return false !== $res; } diff --git a/crmeb/app/services/pay/PayNotifyServices.php b/crmeb/app/services/pay/PayNotifyServices.php index 50d429b3b..b160463cb 100644 --- a/crmeb/app/services/pay/PayNotifyServices.php +++ b/crmeb/app/services/pay/PayNotifyServices.php @@ -39,11 +39,6 @@ class PayNotifyServices $orderInfo = $services->getOne(['order_id' => $order_id]); if (!$orderInfo) return true; if ($orderInfo->paid) return true; - - // 小程序订单管理 (自提商品) - if ($orderInfo['shipping_type'] == 2) { - event('OrderShipping', ['product', $orderInfo]); - } return $services->paySuccess($orderInfo->toArray(), $payType, ['trade_no' => $trade_no]); } catch (\Exception $e) { return false; @@ -80,8 +75,6 @@ class PayNotifyServices $orderInfo = $services->getOne(['order_id' => $order_id]); if (!$orderInfo) return true; if ($orderInfo->paid) return true; - // 小程序订单服务 - event('OrderShipping', ['member', $orderInfo]); return $services->paySuccess($orderInfo->toArray(), $payType, ['trade_no' => $trade_no]); } catch (\Exception $e) { return false; diff --git a/crmeb/app/services/user/UserRechargeServices.php b/crmeb/app/services/user/UserRechargeServices.php index cb7614c6d..57f4e5b33 100644 --- a/crmeb/app/services/user/UserRechargeServices.php +++ b/crmeb/app/services/user/UserRechargeServices.php @@ -491,7 +491,7 @@ class UserRechargeServices extends BaseServices $capitalFlowServices->setFlow($order, 'recharge'); // 小程序订单服务 - event('OrderShipping', ['recharge', $order]); + event('OrderShipping', ['recharge', $order, 3, '', '']); //提醒推送 event('NoticeListener', [['order' => $order, 'now_money' => $now_money], 'recharge_success']); return true; From 516cf18bae15650786815d9c181c42181e6d811f Mon Sep 17 00:00:00 2001 From: Gosowong <1329847115@qq.com> Date: Fri, 19 May 2023 15:32:12 +0800 Subject: [PATCH 3/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E9=98=9F=E5=88=97?= =?UTF-8?q?=E4=BC=A0=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/listener/order/OrderShippingListener.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crmeb/app/listener/order/OrderShippingListener.php b/crmeb/app/listener/order/OrderShippingListener.php index d40ee08aa..a49da8677 100644 --- a/crmeb/app/listener/order/OrderShippingListener.php +++ b/crmeb/app/listener/order/OrderShippingListener.php @@ -95,7 +95,7 @@ class OrderShippingListener implements ListenerInterface if (empty($payer_openid)) { throw new AdminException('订单支付人异常'); } - MiniOrderJob::dispatch(compact('out_trade_no', 'logistics_type', 'shipping_list', 'payer_openid', 'delivery_mode', 'is_all_delivered')); + MiniOrderJob::dispatch([$out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered]); } } } From 02f490be6eb31b58a4071df6997a1104c0747821 Mon Sep 17 00:00:00 2001 From: Gosowong <1329847115@qq.com> Date: Fri, 19 May 2023 16:02:25 +0800 Subject: [PATCH 4/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=85=85=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/services/user/UserRechargeServices.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crmeb/app/services/user/UserRechargeServices.php b/crmeb/app/services/user/UserRechargeServices.php index 57f4e5b33..5945b8392 100644 --- a/crmeb/app/services/user/UserRechargeServices.php +++ b/crmeb/app/services/user/UserRechargeServices.php @@ -490,10 +490,13 @@ class UserRechargeServices extends BaseServices $order['phone'] = $user['phone']; $capitalFlowServices->setFlow($order, 'recharge'); - // 小程序订单服务 - event('OrderShipping', ['recharge', $order, 3, '', '']); //提醒推送 event('NoticeListener', [['order' => $order, 'now_money' => $now_money], 'recharge_success']); + + $order['pay_type'] = $other['pay_type']; + $order['paid'] = 1; + // 小程序订单服务 + event('OrderShipping', ['recharge', $order, 3, '', '']); return true; } From 59ca8dd82665785518a7afe03f6c5e2149fac03a Mon Sep 17 00:00:00 2001 From: Gosowong <1329847115@qq.com> Date: Fri, 19 May 2023 16:11:00 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E4=BC=9A=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/listener/order/OrderShippingListener.php | 2 +- crmeb/app/services/order/OtherOrderServices.php | 1 + crmeb/app/services/user/UserRechargeServices.php | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crmeb/app/listener/order/OrderShippingListener.php b/crmeb/app/listener/order/OrderShippingListener.php index a49da8677..d140a9aa7 100644 --- a/crmeb/app/listener/order/OrderShippingListener.php +++ b/crmeb/app/listener/order/OrderShippingListener.php @@ -46,7 +46,7 @@ class OrderShippingListener implements ListenerInterface return; } } else if ($order_type == 'recharge') { // 充值订单 - if ($order['recharge_type'] == 'routine' && $order['paid'] == 1) { + if ($order['recharge_type'] == 'weixin') { $delivery_type = 3; $item_desc = '用户充值' . $order['price']; $out_trade_no = $order['order_id']; diff --git a/crmeb/app/services/order/OtherOrderServices.php b/crmeb/app/services/order/OtherOrderServices.php index 92e547b17..fbd440d92 100644 --- a/crmeb/app/services/order/OtherOrderServices.php +++ b/crmeb/app/services/order/OtherOrderServices.php @@ -346,6 +346,7 @@ class OtherOrderServices extends BaseServices if ($spread_two && $spread_two_price > 0) $this->memberBrokerage($spread_two, $spread_two_price, 'get_two_member_brokerage', $orderInfo); } + $orderInfo['pay_type'] = $paytype; // 小程序订单服务 event('OrderShipping', ['member', $orderInfo, 3, '', '']); return false !== $res; diff --git a/crmeb/app/services/user/UserRechargeServices.php b/crmeb/app/services/user/UserRechargeServices.php index 5945b8392..267d78422 100644 --- a/crmeb/app/services/user/UserRechargeServices.php +++ b/crmeb/app/services/user/UserRechargeServices.php @@ -494,7 +494,6 @@ class UserRechargeServices extends BaseServices event('NoticeListener', [['order' => $order, 'now_money' => $now_money], 'recharge_success']); $order['pay_type'] = $other['pay_type']; - $order['paid'] = 1; // 小程序订单服务 event('OrderShipping', ['recharge', $order, 3, '', '']); return true; From aec5aaa37dfad6fa19c84c789f4c2ee289bb4df4 Mon Sep 17 00:00:00 2001 From: Gosowong <1329847115@qq.com> Date: Fri, 19 May 2023 16:41:27 +0800 Subject: [PATCH 6/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E9=98=9F=E5=88=97?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/listener/order/OrderShippingListener.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crmeb/app/listener/order/OrderShippingListener.php b/crmeb/app/listener/order/OrderShippingListener.php index d140a9aa7..2c2fc765d 100644 --- a/crmeb/app/listener/order/OrderShippingListener.php +++ b/crmeb/app/listener/order/OrderShippingListener.php @@ -18,6 +18,7 @@ class OrderShippingListener implements ListenerInterface /** @var StoreOrder $order */ [$order_type, $order, $delivery_type, $delivery_id, $delivery_name] = $event; $order_shipping_open = sys_config('order_shipping_open', 0); // 小程序发货信息管理服务开关 + $secs = 0; if ($order && $order_shipping_open) { //判断订单是否拆单 $delivery_mode = 1; @@ -51,6 +52,7 @@ class OrderShippingListener implements ListenerInterface $item_desc = '用户充值' . $order['price']; $out_trade_no = $order['order_id']; $pay_uid = $order['uid']; + $secs = 60; } else { return; } @@ -60,6 +62,7 @@ class OrderShippingListener implements ListenerInterface $item_desc = '用户购买' . $order['member_type'] . '会员卡'; $out_trade_no = $order['order_id']; $pay_uid = $order['uid']; + $secs = 60; } else { return; } @@ -71,7 +74,7 @@ class OrderShippingListener implements ListenerInterface ['item_desc' => $item_desc] ]; //判断订单物流模式 - if ($order['shipping_type'] == 1) { + if (!isset($order['shipping_type']) || $order['shipping_type'] == 1) { if ($delivery_type == 1) { $shipping_list = [ [ @@ -95,7 +98,7 @@ class OrderShippingListener implements ListenerInterface if (empty($payer_openid)) { throw new AdminException('订单支付人异常'); } - MiniOrderJob::dispatch([$out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered]); + MiniOrderJob::dispatchSecs($secs,[$out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered]); } } } From 16a6b50549bbb097ceed15e94d8f140f54feb301 Mon Sep 17 00:00:00 2001 From: Gosowong <1329847115@qq.com> Date: Fri, 19 May 2023 17:22:11 +0800 Subject: [PATCH 7/7] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/jobs/MiniOrderJob.php | 4 ++-- crmeb/app/listener/order/OrderShippingListener.php | 12 +++++++++--- .../easywechat/orderShipping/MiniOrderService.php | 4 ++-- .../easywechat/orderShipping/OrderClient.php | 5 ++--- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/crmeb/app/jobs/MiniOrderJob.php b/crmeb/app/jobs/MiniOrderJob.php index f86933486..38b752a75 100644 --- a/crmeb/app/jobs/MiniOrderJob.php +++ b/crmeb/app/jobs/MiniOrderJob.php @@ -15,10 +15,10 @@ class MiniOrderJob extends BaseJobs /** * @throws HttpException */ - public function doJob(string $out_trade_no, int $logistics_type, array $shipping_list, string $payer_openid, int $delivery_mode = 1, bool $is_all_delivered = true) + public function doJob(string $out_trade_no, int $logistics_type, array $shipping_list, string $payer_openid, string $path, int $delivery_mode = 1, bool $is_all_delivered = true) { try { - MiniOrderService::shippingByTradeNo($out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered); + MiniOrderService::shippingByTradeNo($out_trade_no, $logistics_type, $shipping_list, $payer_openid, $path, $delivery_mode, $is_all_delivered); } catch (HttpException $e) { // 订单异常处理 throw new HttpException($e); diff --git a/crmeb/app/listener/order/OrderShippingListener.php b/crmeb/app/listener/order/OrderShippingListener.php index 2c2fc765d..02230dd5e 100644 --- a/crmeb/app/listener/order/OrderShippingListener.php +++ b/crmeb/app/listener/order/OrderShippingListener.php @@ -43,6 +43,7 @@ class OrderShippingListener implements ListenerInterface $out_trade_no = $p_order['order_id']; } $pay_uid = $order['pay_uid']; + $path = 'pages/goods/order_details/index?order_id=' . $out_trade_no; } else { return; } @@ -52,7 +53,8 @@ class OrderShippingListener implements ListenerInterface $item_desc = '用户充值' . $order['price']; $out_trade_no = $order['order_id']; $pay_uid = $order['uid']; - $secs = 60; + $secs = 10; + $path = '/pages/users/user_bill/index?type=2'; } else { return; } @@ -62,7 +64,8 @@ class OrderShippingListener implements ListenerInterface $item_desc = '用户购买' . $order['member_type'] . '会员卡'; $out_trade_no = $order['order_id']; $pay_uid = $order['uid']; - $secs = 60; + $secs = 10; + $path = '/pages/annex/vip_paid/index'; } else { return; } @@ -98,7 +101,10 @@ class OrderShippingListener implements ListenerInterface if (empty($payer_openid)) { throw new AdminException('订单支付人异常'); } - MiniOrderJob::dispatchSecs($secs,[$out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered]); + if ($secs) { + sleep($secs); + } + MiniOrderJob::dispatch('doJob', [$out_trade_no, $logistics_type, $shipping_list, $payer_openid, $path, $delivery_mode, $is_all_delivered]); } } } diff --git a/crmeb/crmeb/services/easywechat/orderShipping/MiniOrderService.php b/crmeb/crmeb/services/easywechat/orderShipping/MiniOrderService.php index 9cd7fd0a7..ce8c7370f 100644 --- a/crmeb/crmeb/services/easywechat/orderShipping/MiniOrderService.php +++ b/crmeb/crmeb/services/easywechat/orderShipping/MiniOrderService.php @@ -69,9 +69,9 @@ class MiniOrderService * @date 2023/05/09 * @author yyw */ - public static function shippingByTradeNo(string $out_trade_no, int $logistics_type, array $shipping_list, string $payer_openid, int $delivery_mode = 1, bool $is_all_delivered = true) + public static function shippingByTradeNo(string $out_trade_no, int $logistics_type, array $shipping_list, string $payer_openid, string $path, int $delivery_mode = 1, bool $is_all_delivered = true) { - return self::order()->shippingByTradeNo($out_trade_no, $logistics_type, $shipping_list, $payer_openid, $delivery_mode, $is_all_delivered); + return self::order()->shippingByTradeNo($out_trade_no, $logistics_type, $shipping_list, $payer_openid, $path, $delivery_mode, $is_all_delivered); } /** diff --git a/crmeb/crmeb/services/easywechat/orderShipping/OrderClient.php b/crmeb/crmeb/services/easywechat/orderShipping/OrderClient.php index 0dd1e98fe..40c767941 100644 --- a/crmeb/crmeb/services/easywechat/orderShipping/OrderClient.php +++ b/crmeb/crmeb/services/easywechat/orderShipping/OrderClient.php @@ -70,7 +70,7 @@ class OrderClient extends BaseOrder * @date 2023/05/10 * @author yyw */ - public function shippingByTradeNo(string $out_trade_no, int $logistics_type, array $shipping_list, string $payer_openid, int $delivery_mode = 1, bool $is_all_delivered = true) + public function shippingByTradeNo(string $out_trade_no, int $logistics_type, array $shipping_list, string $payer_openid, $path, int $delivery_mode = 1, bool $is_all_delivered = true) { if (!$this->checkManaged()) { throw new AdminException('开通小程序订单管理服务后重试'); @@ -101,9 +101,8 @@ class OrderClient extends BaseOrder 'contact' => $contact ]; } - // 跳转路径 - $this->setMesJumpPath(self::PATH . '?order_id=' . $out_trade_no); + $this->setMesJumpPath($path); return $this->shipping($params); }