Skip to content

Commit b1400f9

Browse files
author
banzhe
committed
feat: add index hit rule check
1 parent b92a39c commit b1400f9

File tree

61 files changed

+346
-197
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+346
-197
lines changed

src/main/java/io/github/linyimin/plugin/configuration/model/MybatisSqlConfiguration.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,6 @@ public String getSql() {
4141
}
4242

4343
public void setSql(String sql) {
44-
if (!GlobalConfig.isMybatisMode) {
45-
this.sql = StringUtils.replace(sql, Constant.DOUBLE_CLICK_PROMPT, StringUtils.EMPTY);
46-
return;
47-
}
48-
if (StringUtils.contains(sql, Constant.DOUBLE_CLICK_PROMPT)) {
49-
this.sql = sql;
50-
} else {
51-
this.sql = Constant.DOUBLE_CLICK_PROMPT + sql;
52-
}
53-
}
54-
55-
public void setRawSql(String sql) {
5644
this.sql = sql;
5745
}
5846

src/main/java/io/github/linyimin/plugin/constant/Constant.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public class Constant {
9696
);
9797

9898
public static final Map<CheckScopeEnum, List<Report>> DEFAULT_REPORT_MAP = new HashMap<CheckScopeEnum, List<Report>>() {{
99-
put(CheckScopeEnum.index, DEFAULT_INDEX_REPORTS);
99+
put(CheckScopeEnum.index_field, DEFAULT_INDEX_REPORTS);
100100
put(CheckScopeEnum.naming_convention, DEFAULT_TABLE_REPORTS);
101101
put(CheckScopeEnum.select, DEFAULT_SELECT_REPORTS);
102102
put(CheckScopeEnum.update, DEFAULT_SELECT_REPORTS);
@@ -107,8 +107,6 @@ public class Constant {
107107

108108
public static final String INPUT_SQL_PROMPT = "Please input sql statement.";
109109

110-
public static final String DOUBLE_CLICK_PROMPT = "-- Double-Click the 'statement', 'result' and 'stress' tab to update the sql with params\n";
111-
112110
public static final String ROOT_NAME = "Mybatis Sql";
113111

114112
}

src/main/java/io/github/linyimin/plugin/sql/checker/Checker.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.linyimin.plugin.sql.checker;
22

3+
import com.intellij.openapi.project.Project;
34
import io.github.linyimin.plugin.sql.checker.enums.CheckScopeEnum;
45
import io.github.linyimin.plugin.sql.checker.rule.CheckRule;
56

@@ -20,11 +21,11 @@ public void registerRule(CheckRule rule) {
2021
this.rules.add(rule);
2122
}
2223

23-
public List<Report> check(String target) {
24+
public List<Report> check(Project project, String target) {
2425
List<Report> reports = new ArrayList<>();
2526

2627
for (CheckRule rule : rules) {
27-
Report report = rule.check(target);
28+
Report report = rule.check(project, target);
2829
if (report != null) {
2930
reports.add(report);
3031
}

src/main/java/io/github/linyimin/plugin/sql/checker/CheckerHolder.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,17 @@ public static Checker getChecker(CheckScopeEnum scope) {
5151
return checkers.get(scope);
5252
}
5353

54+
public static List<Checker> getCheckers(CheckScopeEnum... scopes) {
55+
56+
List<Checker> checkerList = new ArrayList<>();
57+
58+
for (CheckScopeEnum scope : scopes) {
59+
if (checkers.containsKey(scope)) {
60+
checkerList.add(checkers.get(scope));
61+
}
62+
}
63+
64+
return checkerList;
65+
}
66+
5467
}

src/main/java/io/github/linyimin/plugin/sql/checker/IndexChecker.java renamed to src/main/java/io/github/linyimin/plugin/sql/checker/IndexFieldChecker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
* @author banzhe
77
* @date 2022/12/14 00:37
88
**/
9-
public class IndexChecker extends Checker {
9+
public class IndexFieldChecker extends Checker {
1010
@Override
1111
CheckScopeEnum scope() {
12-
return CheckScopeEnum.index;
12+
return CheckScopeEnum.index_field;
1313
}
1414
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.github.linyimin.plugin.sql.checker;
2+
3+
import io.github.linyimin.plugin.sql.checker.enums.CheckScopeEnum;
4+
5+
/**
6+
* @author banzhe
7+
**/
8+
public class IndexHitChecker extends Checker {
9+
@Override
10+
CheckScopeEnum scope() {
11+
return CheckScopeEnum.index_hit;
12+
}
13+
}

src/main/java/io/github/linyimin/plugin/sql/checker/enums/CheckScopeEnum.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@ public enum CheckScopeEnum {
1515
field,
1616
field_composition,
1717

18-
index,
19-
20-
mapper_xml,
18+
index_field,
19+
index_hit,
2120

2221
none
2322
}

src/main/java/io/github/linyimin/plugin/sql/checker/enums/LevelEnum.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@
77
public enum LevelEnum {
88
mandatory,
99
recommended,
10-
for_reference
10+
for_reference,
11+
error
1112
}

src/main/java/io/github/linyimin/plugin/sql/checker/rule/BigAndCompleteUpdateMethodRule.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.linyimin.plugin.sql.checker.rule;
22

3+
import com.intellij.openapi.project.Project;
34
import io.github.linyimin.plugin.sql.checker.Report;
45
import io.github.linyimin.plugin.sql.checker.enums.CheckScopeEnum;
56
import io.github.linyimin.plugin.sql.checker.enums.LevelEnum;
@@ -16,7 +17,7 @@
1617
**/
1718
public class BigAndCompleteUpdateMethodRule implements CheckRule {
1819
@Override
19-
public Report check(String target) {
20+
public Report check(Project project, String target) {
2021

2122
try {
2223
Update updateStatement = (Update) CCJSqlParserUtil.parse(target);

src/main/java/io/github/linyimin/plugin/sql/checker/rule/BooleanFieldNameRule.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.github.linyimin.plugin.sql.checker.rule;
22

33
import com.alibaba.fastjson.JSONObject;
4+
import com.intellij.openapi.project.Project;
45
import io.github.linyimin.plugin.mock.schema.TableField;
56
import io.github.linyimin.plugin.sql.checker.Report;
67
import io.github.linyimin.plugin.sql.checker.enums.CheckScopeEnum;
@@ -20,7 +21,7 @@ public class BooleanFieldNameRule implements CheckRule {
2021
private final Pattern START_WITH_IS_PREFIX = Pattern.compile("^is_.*");
2122

2223
@Override
23-
public Report check(String target) {
24+
public Report check(Project project, String target) {
2425

2526
TableField field = JSONObject.parseObject(target, TableField.class);
2627

0 commit comments

Comments
 (0)