From b470ed5451d0a4c34a2f71000e8c005e6ad626ad Mon Sep 17 00:00:00 2001
From: lrj <386002446@qq.com>
Date: 星期五, 25 十月 2024 10:42:12 +0800
Subject: [PATCH] bug

---
 src/test/java/org/example/test.groovy             |    6 +++---
 src/test/java/org/example/Builder.java            |    4 ++--
 src/main/java/com/ycl/scheme/SqlQueryBuilder.java |    5 +++--
 src/main/java/com/ycl/scheme/entity/Keyword.java  |    2 ++
 src/main/java/com/ycl/scheme/KeywordExample.java  |    4 +++-
 5 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ycl/scheme/KeywordExample.java b/src/main/java/com/ycl/scheme/KeywordExample.java
index 59523c9..3ab13c1 100644
--- a/src/main/java/com/ycl/scheme/KeywordExample.java
+++ b/src/main/java/com/ycl/scheme/KeywordExample.java
@@ -49,8 +49,10 @@
         //鍑芥暟 \\((.*?)\\)
         Keyword f1= Keyword.builder().name("鏃堕棿鑼冨洿").keywordType(KeywordType.TIME_RANGE_FUNCTION).regex("\\(\\s*鏈�杩慭\s*\\d+\\s*澶‐\s*\\)").build();
         keywords.add(f1);
-        Keyword f2= Keyword.builder().name("璁℃暟").keywordType(KeywordType.FUNCTION).code("count").regex("\\s*\\((.*?)\\)\\s*").build();
+        Keyword f2= Keyword.builder().name("璁℃暟").keywordType(KeywordType.FUNCTION).functionParameterNullable(true).code("count").regex("\\s*\\((.*?)\\)\\s*").build();
         keywords.add(f2);
+        Keyword f3= Keyword.builder().name("鍚堣").keywordType(KeywordType.FUNCTION).code("sum").regex("\\s*\\((.*?)\\)\\s*").build();
+        keywords.add(f3);
         //鐗规畩鍊�
         Keyword p1= Keyword.builder().name("鏈�杩�?澶�").keywordType(KeywordType.TIME_RANGE).regex("\\d+").build();
         keywords.add(p1);
diff --git a/src/main/java/com/ycl/scheme/SqlQueryBuilder.java b/src/main/java/com/ycl/scheme/SqlQueryBuilder.java
index 139c92b..79e026c 100644
--- a/src/main/java/com/ycl/scheme/SqlQueryBuilder.java
+++ b/src/main/java/com/ycl/scheme/SqlQueryBuilder.java
@@ -150,9 +150,10 @@
                     res +=c;
                 }
                 idx++;
-                if(kw!=null && !kw.getKeywordType().equals(KeywordType.FUNCTION) && kw.getCode().equals("count") && !c.equals("(")){
-                    res+=c;
+                if(kw==null || !kw.getKeywordType().equals(KeywordType.FUNCTION) || kw.getFunctionParameterNullable()==null || !kw.getFunctionParameterNullable()){
+                    res +=c;
                 }
+
                 skw="";
             }else{
                 skw += c;
diff --git a/src/main/java/com/ycl/scheme/entity/Keyword.java b/src/main/java/com/ycl/scheme/entity/Keyword.java
index b5080fb..eae2d7d 100644
--- a/src/main/java/com/ycl/scheme/entity/Keyword.java
+++ b/src/main/java/com/ycl/scheme/entity/Keyword.java
@@ -34,6 +34,8 @@
 
     private String regex;//鎶撳彇
 
+    private Boolean functionParameterNullable;//鍑芥暟鍙傛暟鏄惁鍙互涓虹┖
+
 
 
 }
diff --git a/src/test/java/org/example/Builder.java b/src/test/java/org/example/Builder.java
index 8b7c4b2..6f3d55d 100644
--- a/src/test/java/org/example/Builder.java
+++ b/src/test/java/org/example/Builder.java
@@ -30,8 +30,8 @@
 
     @Test
     public  void build(){
-        BlockText blockText = new BlockText();
-        String text = "鏁版嵁婧� : 璀︽儏閫氭姤 \n 鏉′欢:鏃堕棿鑼冨洿(鏈�杩�5澶�)   骞朵笖  璀︽儏鍐呭 鍖呭惈  '鎶㈠ず'  骞朵笖 妗堝彂鍦� 鍖呭惈  '閲戠墰澶ч亾'\n 缁撴灉: 璁℃暟 > 2  \n and 鏁版嵁婧�:妗堜欢绯荤粺 \n 鏉′欢:鏃堕棿鑼冨洿(鏈�杩�5澶�)   骞朵笖  璀︽儏鍐呭 鍖呭惈  '鍛芥'  骞朵笖 妗堝彂鍦� 鍖呭惈  '閲戠墰澶ч亾'\n 缁撴灉: 璁℃暟>=2 \n";
+
+        String text = "鏁版嵁婧� : 璀︽儏閫氭姤 \n 鏉′欢:鏃堕棿鑼冨洿(鏈�杩�5澶�)   骞朵笖  璀︽儏鍐呭 鍖呭惈  '鎶㈠ず'  骞朵笖 妗堝彂鍦� 鍖呭惈  '閲戠墰澶ч亾'\n 缁撴灉: 璁℃暟 > 2  \n and 鏁版嵁婧�:妗堜欢绯荤粺 \n 鏉′欢:鏃堕棿鑼冨洿(鏈�杩�5澶�)   骞朵笖  璀︽儏鍐呭 鍖呭惈  '璇堥獥'  骞朵笖 妗堝彂鍦� 鍖呭惈  '閾剁墰澶ч亾'\n 缁撴灉: 鍚堣(娑夋閲戦)>=100000 \n";
         Scheme scheme =new Scheme();
         scheme.setId(1);
         scheme.setName("绱ф�ラ�氭姤");
diff --git a/src/test/java/org/example/test.groovy b/src/test/java/org/example/test.groovy
index 9c3e396..5f4f20b 100644
--- a/src/test/java/org/example/test.groovy
+++ b/src/test/java/org/example/test.groovy
@@ -13,7 +13,7 @@
     void run(Map<String,Parameter> pars,SchemeService service){
         super.parameters.putAll(pars);
         this.service = service;
-        if(func_0() && func_1() ){
+        if(func_0() &&func_1() ){
             service.doAction(1)
         }
     }
@@ -34,13 +34,13 @@
     }
     def func_1(){
         Map<String,Object> pars = new HashMap<>();
-        def sql= "select  from t_case where create_time between :beginTime and :endTime  and  content like '%鍛芥%'  and address like '%閲戠墰澶ч亾%' ";
+        def sql= "select sum(amt) from t_case where create_time between :beginTime and :endTime  and  content like '%璇堥獥%'  and address like '%閾剁墰澶ч亾%' ";
         def p_beginTime = LocalDateTime.now();
         pars.put('beginTime',p_beginTime);
         def p_endTime = LocalDateTime.now().minusDays(5);
         pars.put('endTime',p_endTime);
         def rs = service.execQuery(sql,pars);
-        if(rs >=2){
+        if(rs >=100000){
             return true;
         }else{
             return false;

--
Gitblit v1.8.0