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

git update 规则增删改查

上级 779cc040
......@@ -2,6 +2,7 @@ package com.zjty.inspect;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@SpringBootApplication
public class InspectApplication {
......
package com.zjty.inspect.controller;
import com.zjty.inspect.entity.InspectParameter;
import com.zjty.inspect.entity.Report;
import com.zjty.inspect.service.InspectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/**
* 评估接口
* @author mcj
*/
@RestController
......@@ -16,15 +17,25 @@ public class InspectController {
@Autowired
private InspectService inspectService;
/**
* 上传代码进行评估
* @param path
* @return
*/
@GetMapping("/path")
public ResponseEntity inspect(@RequestBody InspectParameter path){
//下载代码
public ResponseEntity inspect(@RequestBody InspectParameter path, MultipartFile file){
//得到压缩包,进行解压
//
InspectParameter inspectParameter = new InspectParameter();
return ResponseEntity.ok(inspectService.inspect(inspectParameter));
//inspectService.inspect(inspectParameter),解析
return ResponseEntity.ok(200);
}
/**
* git下载代码进行评估
* @param path
* @return
*/
@PostMapping
public ResponseEntity inspect1(String 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;
import java.util.List;
/**
* 依赖树
* @author Mcj
* @date 2020-02-18 11:19
*/
......
......@@ -3,6 +3,7 @@ package com.zjty.inspect.entity;
import lombok.Data;
/**
* 依赖树封装
* @author Mcj
* @date 2020-02-21 20:26
*/
......
......@@ -4,10 +4,13 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.ArrayList;
import java.util.List;
/**
* 传入参数,需要保存
* @author Mcj
* @date 2020-02-12 12:35
*/
......@@ -15,7 +18,36 @@ import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
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;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
/**
* 报告
* @author mcj
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Report {
private Language language;
/**
* 主键id uuid
*/
@Id
@Column(length = 48)
private String id;
/**
* git源代码地址
*/
private String gitAddress;
/**
* 架构,整合型还是分离型,根据jsp数量决定
*/
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;
@Transient
private List<Inspector.Warn> warnList;
private String compileFilePath;
public DependenceManagement dependenceManagement;
@ElementCollection
public List<String> jarPath;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@Column(name="update_time",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP",insertable = false)
@Generated(GenerationTime.ALWAYS)
private Timestamp updateDate;
public enum DependenceManagement{
MAVEN,GRADLE,ANT
......
......@@ -3,19 +3,52 @@ package com.zjty.inspect.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
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
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Rule {
private String path;
/**
* 主键id
*/
@Id
@Column(length = 48)
private String id;
/**
* 目标关键字
*/
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;
import java.nio.file.Paths;
import java.util.*;
/**
* 解析
* @author mcj
*/
@Service
public class InspectServiceImpl implements InspectService {
......@@ -37,36 +41,36 @@ public class InspectServiceImpl implements InspectService {
suffixLanguageMapping.put("go", Report.Language.GO);
List<Rule> ruleList = inspectParameter.getRuleList();
//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.jdbc.Driver", "建议修改为postgresql数据库驱动"));
//net.sourceforge.jtds.jdbc.Driver//sqlserver
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
ruleList.add(new Rule("DB2Driver", "建议修改为postgresql数据库驱动"));
//oracle.jdbc.OracleDriver//oracle.jdbc.driver.OracleDriver
ruleList.add(new Rule("OracleDriver", "建议修改为postgresql数据库驱动"));
ruleList.add(new Rule("mysql-connector-java", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.microsoft.sqlserver", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.oracle", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.mariadb.jdbc", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.sap.cloud.db.jdbc", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.ibm.informix", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.firebirdsql.jdbc", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.hsqldb", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("com.h2database", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.apache.derby", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("org.mongodb", "建议修改为postgresql依赖声明"));
ruleList.add(new Rule("package.json", "需要nodejs环境"));
ruleList.add(new Rule("public native", "这里用到了JNI"));
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("pdfobject.min.js", "这里用到了pdf文档展示插件"));
ruleList.add(new Rule("pdfobject.js", "这里用到了pdf文档展示插件"));
ruleList.add(new Rule(".swf", "这里用到了flash流媒体播放插件"));
// ruleList.add(new Rule("com.mysql.cj.jdbc.Driver", "建议修改为postgresql数据库驱动"));
// ruleList.add(new Rule("com.mysql.jdbc.Driver", "建议修改为postgresql数据库驱动"));
// //net.sourceforge.jtds.jdbc.Driver//sqlserver
// 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
// ruleList.add(new Rule("DB2Driver", "建议修改为postgresql数据库驱动"));
// //oracle.jdbc.OracleDriver//oracle.jdbc.driver.OracleDriver
// ruleList.add(new Rule("OracleDriver", "建议修改为postgresql数据库驱动"));
//
// ruleList.add(new Rule("mysql-connector-java", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.microsoft.sqlserver", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.oracle", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.mariadb.jdbc", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.sap.cloud.db.jdbc", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.ibm.informix", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.firebirdsql.jdbc", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.hsqldb", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("com.h2database", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.apache.derby", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("org.mongodb", "建议修改为postgresql依赖声明"));
// ruleList.add(new Rule("package.json", "需要nodejs环境"));
// ruleList.add(new Rule("public native", "这里用到了JNI"));
// 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("pdfobject.min.js", "这里用到了pdf文档展示插件"));
// ruleList.add(new Rule("pdfobject.js", "这里用到了pdf文档展示插件"));
// ruleList.add(new Rule(".swf", "这里用到了flash流媒体播放插件"));
String path = inspectParameter.getPath();
//调用下载服务下载源代码
......@@ -89,26 +93,6 @@ public class InspectServiceImpl implements InspectService {
FileWriter writer = new FileWriter(file2);
writer.write("系统名称:" + file1.getName() + "\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();
} catch (IOException e) {
......@@ -129,26 +113,6 @@ public class InspectServiceImpl implements InspectService {
FileWriter writer = new FileWriter(file2);
writer.write("系统名称:" + file.getName() + "\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();
} catch (IOException e) {
e.printStackTrace();
......
......@@ -5,7 +5,7 @@ spring.profiles.active=dev
# 服务器相关配置
server.port=8079
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
# 日志文件相关配置
# logging.level.org.hibernate.sql=debug
logging.file.path=./log/master.log
......@@ -18,7 +18,7 @@ logging.file.path=./log/master.log
# spring-data-jpa 相关配置
# 指jpa对表生成的策略
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.ddl-auto=create
# 是否显示sql语句
spring.jpa.show-sql=false
# 格式化sql
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论