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