From fdf227a7946ad17d5be8b0744a09f37e15a3ad00 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Thu, 31 Oct 2024 21:33:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=8D=95=E5=8F=B7=E7=94=9F?= =?UTF-8?q?=E6=88=90=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OrderNoRuleController.java | 4 +-- .../service/OrderNoGenService.java | 26 ++++++++++++------- .../service/OrderNoRuleService.java | 7 +++-- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/main/java/cn/lihongjie/coal/orderNoRule/controller/OrderNoRuleController.java b/src/main/java/cn/lihongjie/coal/orderNoRule/controller/OrderNoRuleController.java index d5527cac..000b045a 100644 --- a/src/main/java/cn/lihongjie/coal/orderNoRule/controller/OrderNoRuleController.java +++ b/src/main/java/cn/lihongjie/coal/orderNoRule/controller/OrderNoRuleController.java @@ -65,8 +65,8 @@ public class OrderNoRuleController { @PostMapping("/previewOrderNo") - public R previewOrderNo(@RequestBody IdRequest request) { - return R.success(this.service.previewOrderNo(request.getId())); + public R previewOrderNo(@RequestBody OrderNoRuleDto request) { + return R.success(this.service.previewOrderNo(request)); } } diff --git a/src/main/java/cn/lihongjie/coal/orderNoRule/service/OrderNoGenService.java b/src/main/java/cn/lihongjie/coal/orderNoRule/service/OrderNoGenService.java index f0c339bc..b9d64948 100644 --- a/src/main/java/cn/lihongjie/coal/orderNoRule/service/OrderNoGenService.java +++ b/src/main/java/cn/lihongjie/coal/orderNoRule/service/OrderNoGenService.java @@ -9,6 +9,7 @@ import jakarta.persistence.criteria.Root; import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; @@ -34,14 +35,21 @@ public class OrderNoGenService { OrderNoRuleEntity rule = getOrderNoRuleEntity(ruleCode, orgId); if (rule == null) return null; + + + String ruleTemplate = rule.getRuleTemplate(); + return genOrderNo(ruleCode, orgId, ruleTemplate); + + + } + + public @NotNull String genOrderNo(String ruleCode, String orgId, String ruleTemplate) { + RuleTemplateUtils.ResolveContext context = new RuleTemplateUtils.ResolveContext(); context.setDateTime(LocalDateTime.now()); - - RuleTemplateUtils.genNo( - rule.getRuleTemplate(), + return RuleTemplateUtils.genNo( + ruleTemplate, RuleTemplateUtils.CompositePlaceholderResolver.of( - RuleTemplateUtils.DatePlaceholderResolver.INSTANCE, - RuleTemplateUtils.RandomPlaceholderResolver.INSTANCE, new RuleTemplateUtils.PlaceholderResolver() { @Override public Boolean support(String placeholder) { @@ -54,18 +62,16 @@ public class OrderNoGenService { String current = context.get("current").toString(); - String key = orgId + ":" + ruleCode + ":" + current; Long seq = redissonClient.getAtomicLong(key).incrementAndGet(); return String.format("%0" + placeholder.substring(4) + "d", seq); } - - }), + }, + RuleTemplateUtils.DatePlaceholderResolver.INSTANCE, + RuleTemplateUtils.RandomPlaceholderResolver.INSTANCE), context); - - return null; } private @Nullable OrderNoRuleEntity getOrderNoRuleEntity(String ruleCode, String orgId) { diff --git a/src/main/java/cn/lihongjie/coal/orderNoRule/service/OrderNoRuleService.java b/src/main/java/cn/lihongjie/coal/orderNoRule/service/OrderNoRuleService.java index 564f16ae..2f6d6e40 100644 --- a/src/main/java/cn/lihongjie/coal/orderNoRule/service/OrderNoRuleService.java +++ b/src/main/java/cn/lihongjie/coal/orderNoRule/service/OrderNoRuleService.java @@ -89,8 +89,11 @@ public class OrderNoRuleService extends BaseService