Skip to content

Commit

Permalink
Merge pull request #10 from ColdWaterLW/issue-1746
Browse files Browse the repository at this point in the history
Issue 1746
  • Loading branch information
sjjian authored Aug 24, 2023
2 parents 0cb0ca5 + 80d635d commit ff5c209
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 28 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ plugins {
}

group 'com.actiontech.sqle'
version "2.2212.0"
version "2.2308.0"

repositories {
maven { url "https://maven.aliyun.com/nexus/content/groups/public/" }
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/actiontech/sqle/action/Audit.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import java.util.List;

public class Audit {
public static void Audit(AnActionEvent e, String sql, HttpClientUtil.AuditType type) {
public static void Audit(AnActionEvent e, String[] contents, HttpClientUtil.AuditType type) {
SQLESettings settings = SQLESettings.getInstance();


Expand All @@ -29,9 +29,9 @@ public static void Audit(AnActionEvent e, String sql, HttpClientUtil.AuditType t
String dataSourceName = settings.getDataSourceName();
String schemaName = settings.getSchemaName();

SQLEAuditResult result = client.AuditSQL(sql, type, projectName, dataSourceName, schemaName);
SQLEAuditResult result = client.AuditSQL(contents, type, projectName, dataSourceName, schemaName);

List<SQLESQLAnalysisResult> analysisResult = client.GetSQLAnalysis(sql, projectName, dataSourceName, schemaName);
List<SQLESQLAnalysisResult> analysisResult = client.GetSQLAnalysis(contents[0], projectName, dataSourceName, schemaName);
SQLEAuditResultUI ui = new SQLEAuditResultUI(result, analysisResult);

Project project = e.getData(LangDataKeys.PROJECT);
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/com/actiontech/sqle/action/AuditEditor.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ public void update(@NotNull AnActionEvent e) {
@Override
public void actionPerformed(AnActionEvent e) {
// 获取鼠标选中的文本
String selectedText = e.getRequiredData(CommonDataKeys.EDITOR).getSelectionModel().getSelectedText();
Audit.Audit(e, selectedText, HttpClientUtil.AuditType.SQL);
String[] selectedTexts={""};
selectedTexts[0] = e.getRequiredData(CommonDataKeys.EDITOR).getSelectionModel().getSelectedText();
Audit.Audit(e,selectedTexts, HttpClientUtil.AuditType.SQL);
}
}
73 changes: 57 additions & 16 deletions src/main/java/com/actiontech/sqle/action/AuditMyBatis.java
Original file line number Diff line number Diff line change
@@ -1,36 +1,77 @@
package com.actiontech.sqle.action;

import com.actiontech.sqle.util.HttpClientUtil;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import org.apache.commons.io.FileUtils;
import org.jetbrains.annotations.NotNull;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Objects;

import com.intellij.ide.highlighter.XmlFileType;

public class AuditMyBatis extends AnAction {
private PsiFile file;
private String fileName;
private ArrayList<String> filePaths;

@Override
public void update(@NotNull AnActionEvent e) {
this.file = e.getData(CommonDataKeys.PSI_FILE);
this.fileName = this.file.getOriginalFile().getName();

if (!this.fileName.endsWith(".xml")) {
filePaths = new ArrayList<>();
VirtualFile vFile = e.getData(PlatformDataKeys.VIRTUAL_FILE);
if (vFile == null) {
return;
}
System.out.println("test log");
String path = vFile.getPath();
if (vFile.isDirectory()) {
gatherFilesFromDir(path);
} else if (vFile.getFileType().getClass() == XmlFileType.class) {
addFilePath(path);
} else {
e.getPresentation().setEnabled(false);
}
}

private void addFilePath(String path) {
if (filePaths.contains(path)) {
return;
}
filePaths.add(path);
}

private void gatherFilesFromDir(String path) {
File file = new File(path);
if (file.isDirectory()) {
File dir = new File(path);
File[] files = dir.listFiles();
if (files == null) {
return;
}
for (File f : files) {
if (f.isDirectory()) {
gatherFilesFromDir(f.getPath());
} else if (f.getName().endsWith(".xml")) {
addFilePath(f.getPath());
}
}
}
}

@Override
public void actionPerformed(AnActionEvent e) {
String text = Objects.requireNonNull(file.getViewProvider().getDocument()).getText();
Audit.Audit(e, text, HttpClientUtil.AuditType.MyBatis);
public void actionPerformed(@NotNull AnActionEvent event) {
ArrayList<String> texts = new ArrayList<>();
for (String filePath : filePaths) {
try {
String text = Files.readString(Path.of(filePath));
texts.add(text);
} catch (IOException e) {
e.printStackTrace();
}
}
Audit.Audit(event, texts.toArray(new String[0]), HttpClientUtil.AuditType.MyBatis);
}
}
5 changes: 3 additions & 2 deletions src/main/java/com/actiontech/sqle/action/AuditSQLFile.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ public void update(@NotNull AnActionEvent e) {

@Override
public void actionPerformed(AnActionEvent e) {
String text = Objects.requireNonNull(file.getViewProvider().getDocument()).getText();
Audit.Audit(e, text, HttpClientUtil.AuditType.SQL);
String[] texts={""};
texts[0] = Objects.requireNonNull(file.getViewProvider().getDocument()).getText();
Audit.Audit(e, texts, HttpClientUtil.AuditType.SQL);
}
}
8 changes: 4 additions & 4 deletions src/main/java/com/actiontech/sqle/util/HttpClientUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class HttpClientUtil {
private SQLESettings settings;

private static final String loginPath = "/v1/login";
private static final String auditPath = "/v1/sql_audit";
private static final String auditPath = "/v1/audit_files";
private static final String driversPath = "/v1/configurations/drivers";

private static final String projectPath = "/v1/projects";
Expand Down Expand Up @@ -183,14 +183,14 @@ public enum AuditType {
SQL, MyBatis;
}

public SQLEAuditResult AuditSQL(String sql, AuditType type, String projectName, String instanceName, String schemaName) throws Exception {
public SQLEAuditResult AuditSQL(String[] contents, AuditType type, String projectName, String instanceName, String schemaName) throws Exception {
if (token == null || token.equals("")) {
Login();
}

Map<String, String> req = new HashMap<>();
Map<String, Object> req = new HashMap<>();
req.put("instance_type", settings.getDBType());
req.put("sql_content", sql);
req.put("file_contents", contents);
req.put("project_name", projectName);
req.put("instance_name", instanceName);
req.put("schema_name", schemaName);
Expand Down

0 comments on commit ff5c209

Please sign in to comment.