From 10000681cfc2d63a8223ba6fc40172d0adabcedf Mon Sep 17 00:00:00 2001 From: wood911010 Date: Sat, 1 Nov 2025 17:55:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E6=8E=88=E6=9D=83=E9=80=BB=E8=BE=91=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E5=81=9C=E7=94=A8=E7=8A=B6=E6=80=81=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=EF=BC=8C=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/cmd/client-demo/client_config.json | 8 ++++---- backend/cmd/client-demo/license_code/AUTH_CODE | 2 +- backend/cmd/client-demo/license_code/LICENSE | 2 +- backend/configs/i18n/errors/en-US.yaml | 1 + backend/configs/i18n/errors/ja-JP.yaml | 1 + backend/configs/i18n/errors/zh-CN.yaml | 1 + .../internal/service/authorization_code_service.go | 13 +++++++++---- 7 files changed, 18 insertions(+), 10 deletions(-) diff --git a/backend/cmd/client-demo/client_config.json b/backend/cmd/client-demo/client_config.json index 4828abc..f77e08c 100644 --- a/backend/cmd/client-demo/client_config.json +++ b/backend/cmd/client-demo/client_config.json @@ -1,9 +1,9 @@ { "server_url": "http://localhost:18888", - "authorization_code": "LIC-5359-QKHSAFPI-VWAA", + "authorization_code": "LIC-B597-EFr0tbfAooQF-uUAA", "software_version": "1.0.0", "heartbeat_interval": 300, - "license_key": "LIC-DEVICE-72921EB189E53806B59FF0AE", - "config_updated_at": "2025-11-01T16:31:54+08:00", - "license_file": "eyJhbGdvcml0aG0iOiJSU0EtUFNTLVNIQTI1NiIsImRhdGEiOiJ7XCJhY3RpdmF0ZWRfYXRcIjpcIjIwMjUtMTEtMDFUMTY6MTc6MDAuMjE2KzA4OjAwXCIsXCJhdXRob3JpemF0aW9uX2NvZGVcIjpcIkxJQy01MzU5LVFLSFNBRlBJLVZXQUFcIixcImF1dGhvcml6YXRpb25fY29kZV9pZFwiOlwiYmVmODliM2MtNDU1NS00ZjE5LTllMGUtMzM0MDI0MDNhZWFkXCIsXCJjb25maWdfdXBkYXRlZF9hdFwiOlwiMjAyNS0xMS0wMVQxNjoyNzoxOS43NzcrMDg6MDBcIixcImN1c3RvbV9wYXJhbWV0ZXJzXCI6e30sXCJkZXBsb3ltZW50X3R5cGVcIjpcInN0YW5kYWxvbmVcIixcImVuZF9kYXRlXCI6XCIyMDI1LTEyLTEzVDIzOjU5OjU5KzA4OjAwXCIsXCJmZWF0dXJlX2NvbmZpZ1wiOnt9LFwiZ2VuZXJhdGVkX2F0XCI6XCIyMDI1LTExLTAxVDE2OjMxOjU0KzA4OjAwXCIsXCJoYXJkd2FyZV9maW5nZXJwcmludFwiOlwiTUFDOjVlOmEzOjIyOjIyOmVmOmRiLENQVTpBTUQgUnl6ZW4gNSA5NjAwWCA2LUNvcmUgUHJvY2Vzc29yLEhPU1RJRDphMzJlOGViNC00ODg1LTRkMmItYTA3My0yYmM2NDVkZWU0ZTRcIixcImxpY2Vuc2Vfa2V5XCI6XCJMSUMtREVWSUNFLTcyOTIxRUIxODlFNTM4MDZCNTlGRjBBRVwiLFwibWF4X2FjdGl2YXRpb25zXCI6NSxcInN0YXJ0X2RhdGVcIjpcIjIwMjUtMTEtMDFUMDA6MDA6MDArMDg6MDBcIixcInN0YXR1c1wiOlwiYWN0aXZlXCIsXCJ1c2FnZV9saW1pdHNcIjp7fX0iLCJzaWduYXR1cmUiOiJFc1ZMQlNSWE1NN0NteTRDeW5EQ0ZGbkw0ZjByTGlpekk1SDZnQ1V5bDFTZGdHR0JZTzdHNStKdTE2T1Jkb0wxSkJRcW5zaHU5RXh1SDVuY1VXM2ZIZFlQTElQR1VBTVhqMGZwS2tPNENCTyt2VjdlSEI2ZDhUbUlkUnE2MU1vdisvM0k4c3Btb1JUNjljbEVuZWFHWE5LbnZOdm5BQXArVWhHamtWK1phZU8wRXlCM2xDcEJkdWJUWkFiUVFic0pSZHY2ZUszSUFGUkdJVnYzWkJhOCtuMnRWQ3RPRXVhVmF1ZHNhRW5ucTZIQWdXdmdUSzViQ2dHZFJkWUJjdG9vVEpiYWtacE9nSWQvVGRmbThGN0krWENsbVl5bWdmYVdUcldKMXd0SzVpSndtV003bTFyTytvZVB3NjBMNjd4ejVmTzRaZjFPUVF2MVNxekhBV25SVFE9PSJ9" + "license_key": "LIC-DEVICE-68DF8AFEF41CA26F248D7D55", + "config_updated_at": "2025-11-01T17:54:30+08:00", + "license_file": "eyJhbGdvcml0aG0iOiJSU0EtUFNTLVNIQTI1NiIsImRhdGEiOiJ7XCJhY3RpdmF0ZWRfYXRcIjpcIjIwMjUtMTEtMDFUMTc6NTQ6MjguMTI4MTc5NCswODowMFwiLFwiYXV0aG9yaXphdGlvbl9jb2RlXCI6XCJMSUMtQjU5Ny1FRnIwdGJmQW9vUUYtdVVBQVwiLFwiYXV0aG9yaXphdGlvbl9jb2RlX2lkXCI6XCI4ZjZlNzViMS0xMTViLTRhNWUtYjk1ZC0yNjczOTcwZDNmYmFcIixcImNvbmZpZ191cGRhdGVkX2F0XCI6bnVsbCxcImN1c3RvbV9wYXJhbWV0ZXJzXCI6e30sXCJkZXBsb3ltZW50X3R5cGVcIjpcInN0YW5kYWxvbmVcIixcImVuZF9kYXRlXCI6XCIzMDI1LTAzLTAzVDIzOjU5OjU5KzA4OjAwXCIsXCJmZWF0dXJlX2NvbmZpZ1wiOnt9LFwiZ2VuZXJhdGVkX2F0XCI6XCIyMDI1LTExLTAxVDE3OjU0OjMwKzA4OjAwXCIsXCJoYXJkd2FyZV9maW5nZXJwcmludFwiOlwiTUFDOjVlOmEzOjIyOjIyOmVmOmRiLENQVTpBTUQgUnl6ZW4gNSA5NjAwWCA2LUNvcmUgUHJvY2Vzc29yLEhPU1RJRDphMzJlOGViNC00ODg1LTRkMmItYTA3My0yYmM2NDVkZWU0ZTRcIixcImxpY2Vuc2Vfa2V5XCI6XCJMSUMtREVWSUNFLTY4REY4QUZFRjQxQ0EyNkYyNDhEN0Q1NVwiLFwibWF4X2FjdGl2YXRpb25zXCI6NSxcInN0YXJ0X2RhdGVcIjpcIjIwMjUtMTEtMDFUMDA6MDA6MDArMDg6MDBcIixcInN0YXR1c1wiOlwiYWN0aXZlXCIsXCJ1c2FnZV9saW1pdHNcIjp7fX0iLCJzaWduYXR1cmUiOiJoVEc2dUZ3UWtmRnNEam9sSVlFK3NOZ3JVM3hncDJPeHJOd3dSa2FLSmpGSjlLbXR2a1J1N2ZZWUVDUFozc0RLT094RlFYdmM4MktWd0dBcTREZ3A5TXBmajVLVlAwTnhjL0RBOCtKVm9oN1BXTERGZFhmMDd2bUdHZFF4YzBSRy91d2hWN3MyOUwzWW9WdlZGdnJxbUhuNGdBQ3B3eUVnL2Y3SC9HT0FCTTNGdWErekRkelR6QUNUbkdEdG1GbFAwUFZ1SURCRVlGRTRvZmRZZDBObDZMY1E5Z0wrb3pORHh0ZVNpdzNuZE0xelJiS3d4SUxOYVFKWnRaellVT1djem05RHg2bUNYMGlFeEtHTlA0NG9Pem5xNjRvclU5M2tGYzRLOW4wK2svL1JpblZMSWE1VE0vVUN2SmZPNzRkUmxGL2Nta3RRUFp6Tk5jbUJ4bWZoRXc9PSJ9" } \ No newline at end of file diff --git a/backend/cmd/client-demo/license_code/AUTH_CODE b/backend/cmd/client-demo/license_code/AUTH_CODE index f7de605..80deed3 100644 --- a/backend/cmd/client-demo/license_code/AUTH_CODE +++ b/backend/cmd/client-demo/license_code/AUTH_CODE @@ -1 +1 @@ -LIC-5359-QKHSAFPI-VWAA \ No newline at end of file +LIC-B597-EFr0tbfAooQF-uUAA \ No newline at end of file diff --git a/backend/cmd/client-demo/license_code/LICENSE b/backend/cmd/client-demo/license_code/LICENSE index 9eb9224..6081458 100644 --- a/backend/cmd/client-demo/license_code/LICENSE +++ b/backend/cmd/client-demo/license_code/LICENSE @@ -1 +1 @@ -eyJhbGdvcml0aG0iOiJSU0EtUFNTLVNIQTI1NiIsImRhdGEiOiJ7XCJhY3RpdmF0ZWRfYXRcIjpcIjIwMjUtMTEtMDFUMTY6MTc6MDAuMjE2KzA4OjAwXCIsXCJhdXRob3JpemF0aW9uX2NvZGVcIjpcIkxJQy01MzU5LVFLSFNBRlBJLVZXQUFcIixcImF1dGhvcml6YXRpb25fY29kZV9pZFwiOlwiYmVmODliM2MtNDU1NS00ZjE5LTllMGUtMzM0MDI0MDNhZWFkXCIsXCJjb25maWdfdXBkYXRlZF9hdFwiOlwiMjAyNS0xMS0wMVQxNjoyNzoxOS43NzcrMDg6MDBcIixcImN1c3RvbV9wYXJhbWV0ZXJzXCI6e30sXCJkZXBsb3ltZW50X3R5cGVcIjpcInN0YW5kYWxvbmVcIixcImVuZF9kYXRlXCI6XCIyMDI1LTEyLTEzVDIzOjU5OjU5KzA4OjAwXCIsXCJmZWF0dXJlX2NvbmZpZ1wiOnt9LFwiZ2VuZXJhdGVkX2F0XCI6XCIyMDI1LTExLTAxVDE2OjMxOjU0KzA4OjAwXCIsXCJoYXJkd2FyZV9maW5nZXJwcmludFwiOlwiTUFDOjVlOmEzOjIyOjIyOmVmOmRiLENQVTpBTUQgUnl6ZW4gNSA5NjAwWCA2LUNvcmUgUHJvY2Vzc29yLEhPU1RJRDphMzJlOGViNC00ODg1LTRkMmItYTA3My0yYmM2NDVkZWU0ZTRcIixcImxpY2Vuc2Vfa2V5XCI6XCJMSUMtREVWSUNFLTcyOTIxRUIxODlFNTM4MDZCNTlGRjBBRVwiLFwibWF4X2FjdGl2YXRpb25zXCI6NSxcInN0YXJ0X2RhdGVcIjpcIjIwMjUtMTEtMDFUMDA6MDA6MDArMDg6MDBcIixcInN0YXR1c1wiOlwiYWN0aXZlXCIsXCJ1c2FnZV9saW1pdHNcIjp7fX0iLCJzaWduYXR1cmUiOiJFc1ZMQlNSWE1NN0NteTRDeW5EQ0ZGbkw0ZjByTGlpekk1SDZnQ1V5bDFTZGdHR0JZTzdHNStKdTE2T1Jkb0wxSkJRcW5zaHU5RXh1SDVuY1VXM2ZIZFlQTElQR1VBTVhqMGZwS2tPNENCTyt2VjdlSEI2ZDhUbUlkUnE2MU1vdisvM0k4c3Btb1JUNjljbEVuZWFHWE5LbnZOdm5BQXArVWhHamtWK1phZU8wRXlCM2xDcEJkdWJUWkFiUVFic0pSZHY2ZUszSUFGUkdJVnYzWkJhOCtuMnRWQ3RPRXVhVmF1ZHNhRW5ucTZIQWdXdmdUSzViQ2dHZFJkWUJjdG9vVEpiYWtacE9nSWQvVGRmbThGN0krWENsbVl5bWdmYVdUcldKMXd0SzVpSndtV003bTFyTytvZVB3NjBMNjd4ejVmTzRaZjFPUVF2MVNxekhBV25SVFE9PSJ9 \ No newline at end of file +eyJhbGdvcml0aG0iOiJSU0EtUFNTLVNIQTI1NiIsImRhdGEiOiJ7XCJhY3RpdmF0ZWRfYXRcIjpcIjIwMjUtMTEtMDFUMTc6NTQ6MjguMTI4MTc5NCswODowMFwiLFwiYXV0aG9yaXphdGlvbl9jb2RlXCI6XCJMSUMtQjU5Ny1FRnIwdGJmQW9vUUYtdVVBQVwiLFwiYXV0aG9yaXphdGlvbl9jb2RlX2lkXCI6XCI4ZjZlNzViMS0xMTViLTRhNWUtYjk1ZC0yNjczOTcwZDNmYmFcIixcImNvbmZpZ191cGRhdGVkX2F0XCI6bnVsbCxcImN1c3RvbV9wYXJhbWV0ZXJzXCI6e30sXCJkZXBsb3ltZW50X3R5cGVcIjpcInN0YW5kYWxvbmVcIixcImVuZF9kYXRlXCI6XCIzMDI1LTAzLTAzVDIzOjU5OjU5KzA4OjAwXCIsXCJmZWF0dXJlX2NvbmZpZ1wiOnt9LFwiZ2VuZXJhdGVkX2F0XCI6XCIyMDI1LTExLTAxVDE3OjU0OjMwKzA4OjAwXCIsXCJoYXJkd2FyZV9maW5nZXJwcmludFwiOlwiTUFDOjVlOmEzOjIyOjIyOmVmOmRiLENQVTpBTUQgUnl6ZW4gNSA5NjAwWCA2LUNvcmUgUHJvY2Vzc29yLEhPU1RJRDphMzJlOGViNC00ODg1LTRkMmItYTA3My0yYmM2NDVkZWU0ZTRcIixcImxpY2Vuc2Vfa2V5XCI6XCJMSUMtREVWSUNFLTY4REY4QUZFRjQxQ0EyNkYyNDhEN0Q1NVwiLFwibWF4X2FjdGl2YXRpb25zXCI6NSxcInN0YXJ0X2RhdGVcIjpcIjIwMjUtMTEtMDFUMDA6MDA6MDArMDg6MDBcIixcInN0YXR1c1wiOlwiYWN0aXZlXCIsXCJ1c2FnZV9saW1pdHNcIjp7fX0iLCJzaWduYXR1cmUiOiJoVEc2dUZ3UWtmRnNEam9sSVlFK3NOZ3JVM3hncDJPeHJOd3dSa2FLSmpGSjlLbXR2a1J1N2ZZWUVDUFozc0RLT094RlFYdmM4MktWd0dBcTREZ3A5TXBmajVLVlAwTnhjL0RBOCtKVm9oN1BXTERGZFhmMDd2bUdHZFF4YzBSRy91d2hWN3MyOUwzWW9WdlZGdnJxbUhuNGdBQ3B3eUVnL2Y3SC9HT0FCTTNGdWErekRkelR6QUNUbkdEdG1GbFAwUFZ1SURCRVlGRTRvZmRZZDBObDZMY1E5Z0wrb3pORHh0ZVNpdzNuZE0xelJiS3d4SUxOYVFKWnRaellVT1djem05RHg2bUNYMGlFeEtHTlA0NG9Pem5xNjRvclU5M2tGYzRLOW4wK2svL1JpblZMSWE1VE0vVUN2SmZPNzRkUmxGL2Nta3RRUFp6Tk5jbUJ4bWZoRXc9PSJ9 \ No newline at end of file diff --git a/backend/configs/i18n/errors/en-US.yaml b/backend/configs/i18n/errors/en-US.yaml index 1832c86..3b250b7 100644 --- a/backend/configs/i18n/errors/en-US.yaml +++ b/backend/configs/i18n/errors/en-US.yaml @@ -22,6 +22,7 @@ errors: "200004": "Invalid customer information format" "200005": "Failed to query customer list" "200006": "Customer has authorization codes, cannot delete. Please delete authorizations first" + "200007": "Customer is disabled, cannot create authorization" # Authorization module (30xxxx) authorization: diff --git a/backend/configs/i18n/errors/ja-JP.yaml b/backend/configs/i18n/errors/ja-JP.yaml index e9ae7ac..3e2e82f 100644 --- a/backend/configs/i18n/errors/ja-JP.yaml +++ b/backend/configs/i18n/errors/ja-JP.yaml @@ -22,6 +22,7 @@ errors: "200004": "無効な顧客情報形式" "200005": "顧客リストの照会に失敗しました" "200006": "顧客にまだ認可コードが存在します。削除する前に認可を削除してください" + "200007": "顧客が無効になっています。認可を作成できません" # 認可モジュール (30xxxx) authorization: diff --git a/backend/configs/i18n/errors/zh-CN.yaml b/backend/configs/i18n/errors/zh-CN.yaml index 69628ae..6255810 100644 --- a/backend/configs/i18n/errors/zh-CN.yaml +++ b/backend/configs/i18n/errors/zh-CN.yaml @@ -22,6 +22,7 @@ errors: "200004": "客户信息格式无效" "200005": "客户列表查询失败" "200006": "客户仍有授权,无法删除,请先删除授权" + "200007": "客户已停用,无法创建授权" # 授权模块 (30xxxx) authorization: diff --git a/backend/internal/service/authorization_code_service.go b/backend/internal/service/authorization_code_service.go index 8afe0f3..cb9a806 100644 --- a/backend/internal/service/authorization_code_service.go +++ b/backend/internal/service/authorization_code_service.go @@ -44,13 +44,18 @@ func (s *authorizationCodeService) CreateAuthorizationCode(ctx context.Context, return nil, i18n.NewI18nError("900001", lang) } - // 验证客户是否存在 - exists, err := s.authCodeRepo.CheckCustomerExists(ctx, req.CustomerID) + // 验证客户是否存在并检查状态 + customer, err := s.customerRepo.GetCustomerByID(ctx, req.CustomerID) if err != nil { + if errors.Is(err, repository.ErrCustomerNotFound) { + return nil, i18n.NewI18nError("200001", lang) // 客户不存在 + } return nil, i18n.NewI18nError("900004", lang, err.Error()) } - if !exists { - return nil, i18n.NewI18nError("200001", lang) // 客户不存在 + + // 检查客户状态:如果客户状态为停用(disabled),不允许创建授权 + if customer.Status == "disabled" { + return nil, i18n.NewI18nError("200007", lang) // 客户已停用,无法创建授权 } // 业务逻辑:计算开始时间和结束时间