From 98b6ec61a138ffd7fef75a4786e59441f981017b Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Mon, 26 May 2025 10:18:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=A1=E9=AA=8C=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=BC=96=E5=8F=B7=E6=98=AF=E5=90=A6=E5=94=AF=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/customer/CustomerController.java | 7 +++++++ .../dal/mysql/customer/CustomerMapper.java | 4 ++++ .../service/customer/CustomerService.java | 9 +++++++++ .../service/customer/CustomerServiceImpl.java | 19 +++++++++++++++++++ 4 files changed, 39 insertions(+) diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/CustomerController.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/CustomerController.java index 7dd03f7..9b21896 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/CustomerController.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/CustomerController.java @@ -87,6 +87,13 @@ public class CustomerController { return success(isExists); } + @GetMapping("/code-unique") + @Operation(summary = "校验客户编号是否唯一") + public CommonResult validateCustomerCodeUnique(@RequestParam(value = "code", required = false) String code, @RequestParam(value = "id", required = false) Long id) { + Boolean isExists = customerService.validateCustomerCodeUnique(code, id); + return success(isExists); + } + @GetMapping("/max-sn") @Operation(summary = "返回当前最大客户sn") public CommonResult selectMaxCode() { diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/customer/CustomerMapper.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/customer/CustomerMapper.java index 8feeb7c..5d5be2e 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/customer/CustomerMapper.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/customer/CustomerMapper.java @@ -30,5 +30,9 @@ public interface CustomerMapper extends BaseMapperX { return selectOne(CustomerDO::getName, name); } + default CustomerDO selectByCode(String code) { + return selectOne(CustomerDO::getCode, code); + } + Integer selectMaxCode(); } \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerService.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerService.java index c5b5fd2..d77449b 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerService.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerService.java @@ -60,6 +60,15 @@ public interface CustomerService { */ Boolean validateCustomerNameExists(String name, Long id); + /** + * 校验客户编号是否唯一 + * + * @param code 客户编号 + * @param id 客户id + * @return 是否存在 + */ + Boolean validateCustomerCodeUnique(String code, Long id); + /** * 查询当前最大的sn号 * diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerServiceImpl.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerServiceImpl.java index 1e89bc0..f4fd9a6 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerServiceImpl.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerServiceImpl.java @@ -87,6 +87,25 @@ public class CustomerServiceImpl implements CustomerService { return false; } + @Override + public Boolean validateCustomerCodeUnique(String code, Long id) { + if (StrUtil.isBlank(code)) { + return true; + } + CustomerDO customer = customerMapper.selectByCode(code); + if (customer == null) { + return true; + } + // 如果 id 为空,说明不用比较是否为相同 id 的客户 + if (id == null) { + return false; + } + if (!customer.getId().equals(id)) { + return false; + } + return true; + } + @Override public Integer selectMaxCode() { Integer maxCode = customerMapper.selectMaxCode();