From 0334fef6c10da100a749c166426ec9e36df75cca Mon Sep 17 00:00:00 2001 From: Karlcarlo Date: Wed, 1 Apr 2026 20:34:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Drecord=5Fpone=E6=8B=BC?= =?UTF-8?q?=E5=86=99=E9=94=99=E8=AF=AF=E5=B9=B6=E9=9B=86=E6=88=90=E9=9A=90?= =?UTF-8?q?=E7=A7=81=E5=B0=8F=E5=8F=B7=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复变量名record_pone拼写错误,统一更正为record_phone 在收银台订单创建时集成隐私小号功能,当功能启用时使用绑定的隐私号码作为订单联系电话,并记录绑定ID和状态 --- app/services/order/StoreOrderServices.php | 2 +- .../order/cashier/CashierOrderServices.php | 28 +++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/app/services/order/StoreOrderServices.php b/app/services/order/StoreOrderServices.php index c61854b..4e3f46c 100644 --- a/app/services/order/StoreOrderServices.php +++ b/app/services/order/StoreOrderServices.php @@ -1814,7 +1814,7 @@ HTML; } } $userInfo['real_name'] = !isset($user['real_name']) || !$user['real_name'] ? $user['nickname'] : $user['real_name']; - $userInfo['record_pone'] = !isset($user['record_phone']) || !$user['record_phone'] ? $user['phone'] : $user['record_phone']; + $userInfo['record_phone'] = !isset($user['record_phone']) || !$user['record_phone'] ? $user['phone'] : $user['record_phone']; $data['userInfo'] = $userInfo; $data['offlinePostage'] = $other['offlinePostage']; $data['integralRatio'] = $other['integralRatio']; diff --git a/app/services/order/cashier/CashierOrderServices.php b/app/services/order/cashier/CashierOrderServices.php index 54328e3..d9cc6c1 100644 --- a/app/services/order/cashier/CashierOrderServices.php +++ b/app/services/order/cashier/CashierOrderServices.php @@ -30,6 +30,7 @@ use app\services\user\level\UserLevelServices; use app\services\user\UserAddressServices; use app\services\user\UserInvoiceServices; use app\services\user\UserServices; +use app\services\other\PrivacyPhoneServices; use crmeb\services\CacheService; use crmeb\traits\OptionTrait; use think\annotation\Inject; @@ -203,7 +204,7 @@ class CashierOrderServices extends BaseServices } } $userInfo['real_name'] = $user['real_name'] ?? $user['nickname'] ?? ''; - $userInfo['record_pone'] = $user['record_pone'] ?? $user['phone'] ?? ''; + $userInfo['record_phone'] = $user['record_phone'] ?? $user['phone'] ?? ''; $data['userInfo'] = $userInfo; $data['offlinePostage'] = $other['offlinePostage']; $data['integralRatio'] = $other['integralRatio']; @@ -404,12 +405,33 @@ class CashierOrderServices extends BaseServices /** @var StoreOrderCreateServices $orderServices */ $orderServices = app()->make(StoreOrderCreateServices::class); $product_type = (int)$deduction['product_type'] ?? 0; + + $realPhone = $addressInfo['phone'] ?: $userInfo['phone'] ?? ''; + $orderUserPhone = $realPhone; + $bindId = ''; + $privatePhoneStatus = 0; + + /** @var PrivacyPhoneServices $privacyPhoneServices */ + $privacyPhoneServices = app()->make(PrivacyPhoneServices::class); + if ($privacyPhoneServices->isEnabled() && $realPhone) { + try { + $privateData = $privacyPhoneServices->bindForOrder($realPhone); + if ($privateData['user_phone']) { + $orderUserPhone = $privateData['user_phone']; + $bindId = $privateData['bind_id']; + $privatePhoneStatus = $privateData['status']; + } + } catch (\Exception $e) { + Log::error('收银台隐私小号绑定失败', ['error' => $e->getMessage()]); + } + } + $orderInfo = [ 'uid' => $uid, 'type' => $type, 'order_id' => $orderServices->getNewOrderId(), 'real_name' => $addressInfo['real_name'] ?: $userInfo['nickname'] ?? '', - 'user_phone' => $addressInfo['phone'] ?: $userInfo['phone'] ?? '', + 'user_phone' => $orderUserPhone, 'user_address' => isset($addressInfo['addressInfo']) && $addressInfo['addressInfo'] ? $addressInfo['addressInfo'] : $addressInfo['province'] . ' ' . $addressInfo['city'] . ' ' . $addressInfo['district'] . ' ' . $addressInfo['street'] . ' ' . $addressInfo['detail'], 'cart_id' => $cartIds, 'clerk_id' => 0, @@ -448,6 +470,8 @@ class CashierOrderServices extends BaseServices 'division_id' => $userInfo['division_id'] ?? 0, 'division_agent_id' => $userInfo['agent_id'] ?? 0, 'division_staff_id' => $userInfo['staff_id'] ?? 0, + 'private_bind_id' => $bindId, + 'private_phone_status' => $privatePhoneStatus, ]; if ($product_type == 4 || $shippingType == 2) {//次卡商品收银台购买 $orderInfo['verify_code'] = $orderServices->getStoreCode();