From e3205fbeb15cb1843fc73b0212a3ac5a023f2495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=90=A6?= Date: Mon, 15 Jun 2026 14:01:04 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=8D=8F=E8=AE=AE=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/SalespersonOrderBindService.php | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 common/services/SalespersonOrderBindService.php diff --git a/common/services/SalespersonOrderBindService.php b/common/services/SalespersonOrderBindService.php new file mode 100644 index 0000000..da500e0 --- /dev/null +++ b/common/services/SalespersonOrderBindService.php @@ -0,0 +1,73 @@ + 0, 'user_salesperson_id' => 0]; + + if ($userId <= 0 || $storeId <= 0) { + return $empty; + } + + $bind = (new \yii\db\Query()) + ->from('xk_user_salesperson') + ->where(['user_id' => $userId, 'status' => 0]) + ->orderBy(['id' => SORT_DESC]) + ->one(); + + if (!$bind) { + return $empty; + } + + $salespersonId = (int) ($bind['salesperson_id'] ?? 0); + if ($salespersonId <= 0) { + return $empty; + } + + $storeIds = (new \yii\db\Query()) + ->select('store_id') + ->from('xk_salesperson_qr_code') + ->where(['salesperson_id' => $salespersonId]) + ->column(); + + $storeIds = array_map('intval', $storeIds); + if (!in_array($storeId, $storeIds, true)) { + return $empty; + } + + $bindCreatedAt = $bind['created_at'] ?? 0; + if (!is_numeric($bindCreatedAt)) { + $bindCreatedAt = strtotime((string) $bindCreatedAt); + } + $bindCreatedAt = (int) $bindCreatedAt; + + if ($orderCreatedAt <= $bindCreatedAt) { + return $empty; + } + + $salesperson = (new \yii\db\Query()) + ->from('xk_salesperson') + ->where(['id' => $salespersonId]) + ->one(); + + if (!$salesperson) { + return $empty; + } + + return [ + 'salesperson_id' => (int) $salesperson['id'], + 'user_salesperson_id' => (int) ($bind['id'] ?? 0), + ]; + } +}