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