提交 fa64da32 authored 作者: 马晨俊's avatar 马晨俊

git update 规则增删改查

上级 779cc040
...@@ -2,6 +2,7 @@ package com.zjty.inspect; ...@@ -2,6 +2,7 @@ package com.zjty.inspect;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@SpringBootApplication @SpringBootApplication
public class InspectApplication { public class InspectApplication {
......
package com.zjty.inspect.controller; package com.zjty.inspect.controller;
import com.zjty.inspect.entity.InspectParameter; import com.zjty.inspect.entity.InspectParameter;
import com.zjty.inspect.entity.Report;
import com.zjty.inspect.service.InspectService; import com.zjty.inspect.service.InspectService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 评估接口
* @author mcj * @author mcj
*/ */
@RestController @RestController
...@@ -16,15 +17,25 @@ public class InspectController { ...@@ -16,15 +17,25 @@ public class InspectController {
@Autowired @Autowired
private InspectService inspectService; private InspectService inspectService;
/**
* 上传代码进行评估
* @param path
* @return
*/
@GetMapping("/path") @GetMapping("/path")
public ResponseEntity inspect(@RequestBody InspectParameter path){ public ResponseEntity inspect(@RequestBody InspectParameter path, MultipartFile file){
//下载代码 //得到压缩包,进行解压
// //inspectService.inspect(inspectParameter),解析
InspectParameter inspectParameter = new InspectParameter(); return ResponseEntity.ok(200);
return ResponseEntity.ok(inspectService.inspect(inspectParameter));
} }
/**
* git下载代码进行评估
* @param path
* @return
*/
@PostMapping @PostMapping
public ResponseEntity inspect1(String path){ public ResponseEntity inspect1(String path){
System.out.println(path); System.out.println(path);
......
package com.zjty.inspect.controller;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@ServerEndpoint("/webServer/{uuid}")
@Component
@Slf4j
public class WebSocketServer {
private Logger logger = LoggerFactory.getLogger(getClass());
private static Map<String,WebSocketServer> map = new HashMap<>();
private Session session;
private String uuid;
@OnOpen
public void onOpen(Session session,@PathParam("uuid")String uuid){
this.session = session;
this.uuid = uuid;
//session.getOpenSessions().
//System.out.println("第一个" + uuid);
logger.info("uuid:"+uuid);
map.put(uuid,this);
try {
sendMessage("连接成功");
} catch (IOException e) {
logger.error("websocket IO异常");
}
logger.info("连接成功"+session.getId());
}
@OnClose
public void onClose(Session session){
map.remove(this.uuid);
logger.info("连接关闭"+session.getId());
}
@OnMessage
public void onMessage(Session session,String message){
// try {
//map.get(uuid).sendMessage(message);
logger.info(uuid+"sendMsg"+message);
// } catch (IOException e) {
// e.printStackTrace();
// }
}
@OnError
public void onError(Session session,Throwable error){
logger.info(error.getMessage());
error.printStackTrace();
}
/**
* 实现服务器主动推送
*/
public void sendMessage(String message) throws IOException {
this.session.getBasicRemote().sendText(message);
}
public static void sendIn(String sessionId,String message) throws IOException {
//System.out.println(message);
try {
map.get(sessionId).sendMessage(message);
}catch (Exception e){
log.info("向前台发送日志出错");
//e.printStackTrace();
}
}
}
...@@ -6,6 +6,7 @@ import java.util.ArrayList; ...@@ -6,6 +6,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* 依赖树
* @author Mcj * @author Mcj
* @date 2020-02-18 11:19 * @date 2020-02-18 11:19
*/ */
......
...@@ -3,6 +3,7 @@ package com.zjty.inspect.entity; ...@@ -3,6 +3,7 @@ package com.zjty.inspect.entity;
import lombok.Data; import lombok.Data;
/** /**
* 依赖树封装
* @author Mcj * @author Mcj
* @date 2020-02-21 20:26 * @date 2020-02-21 20:26
*/ */
......
...@@ -4,10 +4,13 @@ import lombok.AllArgsConstructor; ...@@ -4,10 +4,13 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* 传入参数,需要保存
* @author Mcj * @author Mcj
* @date 2020-02-12 12:35 * @date 2020-02-12 12:35
*/ */
...@@ -15,7 +18,36 @@ import java.util.List; ...@@ -15,7 +18,36 @@ import java.util.List;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Entity
public class InspectParameter { public class InspectParameter {
String path;
List<Rule> ruleList = new ArrayList<>(); @Id
private String id;
/**
* 重构占比
*/
private String proportion;
/**
* 年利率
*/
private String moneyRate;
/**
* 原系统费用
*/
private Integer systemFund;
/**
* 模块数
*/
private Integer modules;
/**
* 每页预算
*/
private Integer pageBudget;
} }
...@@ -5,36 +5,83 @@ import com.zjty.inspect.utils.Inspector; ...@@ -5,36 +5,83 @@ import com.zjty.inspect.utils.Inspector;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;
import javax.persistence.*; import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* 报告
* @author mcj
*/
@Entity
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class Report { public class Report {
private Language language; /**
* 主键id uuid
*/
@Id
@Column(length = 48)
private String id;
/**
* git源代码地址
*/
private String gitAddress;
/**
* 架构,整合型还是分离型,根据jsp数量决定
*/
private String framework; private String framework;
private int fileNum;
private long lineNum; /**
* 代码管理方式,
*/
private String manager;
/** /**
* 取名,后端依赖 * 语言
*/ */
private List<PomDependency> backend; private String language;
/**
* 生成报告存储地址
*/
private String htmlAddress;
/**
* 适配方式
* 1:适配
* 2:重构
*/
@Column(length = 5)
private Integer recastMethod;
/**
* 总资金(万元)
*/
@Column(length = 10)
private Integer fund;
/**
* 数据创建时间
*/
@Column(name="create_time",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP",insertable = false,updatable = false)
@Generated(GenerationTime.INSERT)
private Timestamp createDate;
/** /**
* 取名。前端依赖 * 数据更新时间
*/ */
private List<PomDependency> frontend; @Column(name="update_time",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP",insertable = false)
@Transient @Generated(GenerationTime.ALWAYS)
private List<Inspector.Warn> warnList; private Timestamp updateDate;
private String compileFilePath;
public DependenceManagement dependenceManagement;
@ElementCollection
public List<String> jarPath;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
public enum DependenceManagement{ public enum DependenceManagement{
MAVEN,GRADLE,ANT MAVEN,GRADLE,ANT
......
...@@ -3,19 +3,52 @@ package com.zjty.inspect.entity; ...@@ -3,19 +3,52 @@ package com.zjty.inspect.entity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;
/**
* 规则类
* @author mcj
*/
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Entity
public class Rule { public class Rule {
private String path; /**
* 主键id
*/
@Id
@Column(length = 48)
private String id;
/**
* 目标关键字
*/
private String target; private String target;
private String advice; /**
* 匹配的文件后缀
*/
private String suffix;
public Rule(String target,String advice){ /**
this.target = target; * 数据创建时间
this.advice = advice; */
} @Column(name="create_time",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP",insertable = false,updatable = false)
@CreatedDate
private Date createDate;
/**
* 数据更新时间
*/
@Column(name="update_time",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP",insertable = false)
@LastModifiedDate
private Date updateDate;
} }
...@@ -19,6 +19,10 @@ import java.nio.file.Path; ...@@ -19,6 +19,10 @@ import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.*; import java.util.*;
/**
* 解析
* @author mcj
*/
@Service @Service
public class InspectServiceImpl implements InspectService { public class InspectServiceImpl implements InspectService {
...@@ -37,36 +41,36 @@ public class InspectServiceImpl implements InspectService { ...@@ -37,36 +41,36 @@ public class InspectServiceImpl implements InspectService {
suffixLanguageMapping.put("go", Report.Language.GO); suffixLanguageMapping.put("go", Report.Language.GO);
List<Rule> ruleList = inspectParameter.getRuleList(); List<Rule> ruleList = inspectParameter.getRuleList();
//com.mysql.cj.jdbc.Driver//com.mysql.jdbc.Driver //com.mysql.cj.jdbc.Driver//com.mysql.jdbc.Driver
ruleList.add(new Rule("com.mysql.cj.jdbc.Driver", "建议修改为postgresql数据库驱动")); // ruleList.add(new Rule("com.mysql.cj.jdbc.Driver", "建议修改为postgresql数据库驱动"));
ruleList.add(new Rule("com.mysql.jdbc.Driver", "建议修改为postgresql数据库驱动")); // ruleList.add(new Rule("com.mysql.jdbc.Driver", "建议修改为postgresql数据库驱动"));
//net.sourceforge.jtds.jdbc.Driver//sqlserver // //net.sourceforge.jtds.jdbc.Driver//sqlserver
ruleList.add(new Rule("net.sourceforge.jtds.jdbc.Driver", "建议修改为postgresql数据库驱动")); // ruleList.add(new Rule("net.sourceforge.jtds.jdbc.Driver", "建议修改为postgresql数据库驱动"));
//COM.ibm.db2.jdbc.app.DB2Driver//com.ibm.db2.jcc.DB2Driver//COM.ibm.db2.jdbc.net.DB2Driver//com.ibm.db2.jcc.DB2Driver // //COM.ibm.db2.jdbc.app.DB2Driver//com.ibm.db2.jcc.DB2Driver//COM.ibm.db2.jdbc.net.DB2Driver//com.ibm.db2.jcc.DB2Driver
ruleList.add(new Rule("DB2Driver", "建议修改为postgresql数据库驱动")); // ruleList.add(new Rule("DB2Driver", "建议修改为postgresql数据库驱动"));
//oracle.jdbc.OracleDriver//oracle.jdbc.driver.OracleDriver // //oracle.jdbc.OracleDriver//oracle.jdbc.driver.OracleDriver
ruleList.add(new Rule("OracleDriver", "建议修改为postgresql数据库驱动")); // ruleList.add(new Rule("OracleDriver", "建议修改为postgresql数据库驱动"));
//
ruleList.add(new Rule("mysql-connector-java", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("mysql-connector-java", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.microsoft.sqlserver", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("com.microsoft.sqlserver", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.oracle", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("com.oracle", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.mariadb.jdbc", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("org.mariadb.jdbc", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.sap.cloud.db.jdbc", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("com.sap.cloud.db.jdbc", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.ibm.informix", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("com.ibm.informix", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.firebirdsql.jdbc", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("org.firebirdsql.jdbc", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.hsqldb", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("org.hsqldb", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.h2database", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("com.h2database", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.apache.derby", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("org.apache.derby", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.mongodb", "建议修改为postgresql依赖声明")); // ruleList.add(new Rule("org.mongodb", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("package.json", "需要nodejs环境")); // ruleList.add(new Rule("package.json", "需要nodejs环境"));
ruleList.add(new Rule("public native", "这里用到了JNI")); // ruleList.add(new Rule("public native", "这里用到了JNI"));
ruleList.add(new Rule("<packaging>jar</packaging>", "建议修改打包方式为war包并排除掉springboot内置的tomcat,以部署到国产化中间件上")); // ruleList.add(new Rule("<packaging>jar</packaging>", "建议修改打包方式为war包并排除掉springboot内置的tomcat,以部署到国产化中间件上"));
ruleList.add(new Rule("WebOffice", "这里用到了weboffice文档展示编辑插件")); // ruleList.add(new Rule("WebOffice", "这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("webOffice", "这里用到了weboffice文档展示编辑插件")); // ruleList.add(new Rule("webOffice", "这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("weboffice", "这里用到了weboffice文档展示编辑插件")); // ruleList.add(new Rule("weboffice", "这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("Weboffice", "这里用到了weboffice文档展示编辑插件")); // ruleList.add(new Rule("Weboffice", "这里用到了weboffice文档展示编辑插件"));
ruleList.add(new Rule("pdfobject.min.js", "这里用到了pdf文档展示插件")); // ruleList.add(new Rule("pdfobject.min.js", "这里用到了pdf文档展示插件"));
ruleList.add(new Rule("pdfobject.js", "这里用到了pdf文档展示插件")); // ruleList.add(new Rule("pdfobject.js", "这里用到了pdf文档展示插件"));
ruleList.add(new Rule(".swf", "这里用到了flash流媒体播放插件")); // ruleList.add(new Rule(".swf", "这里用到了flash流媒体播放插件"));
String path = inspectParameter.getPath(); String path = inspectParameter.getPath();
//调用下载服务下载源代码 //调用下载服务下载源代码
...@@ -89,26 +93,6 @@ public class InspectServiceImpl implements InspectService { ...@@ -89,26 +93,6 @@ public class InspectServiceImpl implements InspectService {
FileWriter writer = new FileWriter(file2); FileWriter writer = new FileWriter(file2);
writer.write("系统名称:" + file1.getName() + "\n"); writer.write("系统名称:" + file1.getName() + "\n");
writer.write("评估时间:" + new Date() + "\n\n"); writer.write("评估时间:" + new Date() + "\n\n");
writer.write("语言:" + report.getLanguage() + "\t");
writer.write("依赖管理工具:" + report.getDependenceManagement() + "\t");
writer.write("架构:" + report.getFramework() + "\n");
writer.write("文件数量:" + report.getFileNum() + "\t");
writer.write("代码行数:" + report.getLineNum() + "\n\n");
writer.write("后端依赖列表:\n");
for (PomDependency dependency : report.getBackend()) {
writer.write("" + dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion() + ":" + dependency.getGradle() + "\n");
}
writer.write("\n前端依赖列表:\n");
for (PomDependency dependency : report.getFrontend()) {
writer.write("" + dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion() + ":");
}
int j = 1;
for (Inspector.Warn warn : report.getWarnList()) {
writer.write(j++ + "、所在文件:" + warn.getPath() + " 行数:" + warn.getLine() + "行 关键字:" + warn.getKeyWord() + "\n"
+ "建议:" + warn.getSuggest());
}
writer.close(); writer.close();
} catch (IOException e) { } catch (IOException e) {
...@@ -129,26 +113,6 @@ public class InspectServiceImpl implements InspectService { ...@@ -129,26 +113,6 @@ public class InspectServiceImpl implements InspectService {
FileWriter writer = new FileWriter(file2); FileWriter writer = new FileWriter(file2);
writer.write("系统名称:" + file.getName() + "\n"); writer.write("系统名称:" + file.getName() + "\n");
writer.write("评估时间:" + new Date() + "\n\n"); writer.write("评估时间:" + new Date() + "\n\n");
writer.write("语言:" + report.getLanguage() + "\t");
writer.write("依赖管理工具:" + report.getDependenceManagement() + "\t");
writer.write("架构:" + report.getFramework() + "\n");
writer.write("文件数量:" + report.getFileNum() + "\t");
writer.write("代码行数:" + report.getLineNum() + "\n\n");
writer.write("后端依赖列表:\n");
for (PomDependency dependency : report.getBackend()) {
writer.write("" + dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion() + ":" + dependency.getGradle() + "\n");
}
writer.write("\n前端依赖列表:\n");
for (PomDependency dependency : report.getFrontend()) {
writer.write("" + dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion() + ":");
}
int j = 1;
for (Inspector.Warn warn : report.getWarnList()) {
writer.write(j++ + "、所在文件:" + warn.getPath() + " 行数:" + warn.getLine() + "行 关键字:" + warn.getKeyWord() + "\n"
+ "建议:" + warn.getSuggest());
}
writer.close(); writer.close();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -5,7 +5,7 @@ spring.profiles.active=dev ...@@ -5,7 +5,7 @@ spring.profiles.active=dev
# 服务器相关配置 # 服务器相关配置
server.port=8079 server.port=8079
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
# 日志文件相关配置 # 日志文件相关配置
# logging.level.org.hibernate.sql=debug # logging.level.org.hibernate.sql=debug
logging.file.path=./log/master.log logging.file.path=./log/master.log
...@@ -18,7 +18,7 @@ logging.file.path=./log/master.log ...@@ -18,7 +18,7 @@ logging.file.path=./log/master.log
# spring-data-jpa 相关配置 # spring-data-jpa 相关配置
# 指jpa对表生成的策略 # 指jpa对表生成的策略
spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.ddl-auto=create
# 是否显示sql语句 # 是否显示sql语句
spring.jpa.show-sql=false spring.jpa.show-sql=false
# 格式化sql # 格式化sql
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论