diff --git a/pom.xml b/pom.xml
index 53f02d6..96078f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,8 +4,8 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- com.haoge
- SNManageDemo
+ com.ectrip
+ SNManage
1.0
@@ -33,10 +33,6 @@
test
- org.springframework.boot
- spring-boot-starter-thymeleaf
-
-
io.springfox
springfox-swagger2
2.7.0
diff --git a/src/main/java/com/example/demo/SNManageApplication.java b/src/main/java/com/ectrip/demo/SNManageApplication.java
index 211b750..b479346 100644
--- a/src/main/java/com/example/demo/SNManageApplication.java
+++ b/src/main/java/com/ectrip/demo/SNManageApplication.java
@@ -1,6 +1,5 @@
-package com.example.demo;
+package com.ectrip.demo;
-import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
diff --git a/src/main/java/com/example/demo/controller/SNController.java b/src/main/java/com/ectrip/demo/controller/SNController.java
index 20ada19..30bd00a 100644
--- a/src/main/java/com/example/demo/controller/SNController.java
+++ b/src/main/java/com/ectrip/demo/controller/SNController.java
@@ -1,22 +1,18 @@
-package com.example.demo.controller;
+package com.ectrip.demo.controller;
-import com.example.demo.dto.AddSNsDTO;
-import com.example.demo.dto.DeleteSNsDTO;
-import com.example.demo.exception.SNRepetitiveException;
-import com.example.demo.service.SNService;
-import com.example.demo.util.HttpResult;
+import com.ectrip.demo.util.HttpResult;
+import com.ectrip.demo.dto.AddSNsDTO;
+import com.ectrip.demo.dto.DeleteSNsDTO;
+import com.ectrip.demo.exception.SNRepetitiveException;
+import com.ectrip.demo.service.SNService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
-import java.io.IOException;
@Api(tags = "SN操作")
@RestController
diff --git a/src/main/java/com/example/demo/dto/AddSNsDTO.java b/src/main/java/com/ectrip/demo/dto/AddSNsDTO.java
index 7c2c6eb..5b9f242 100644
--- a/src/main/java/com/example/demo/dto/AddSNsDTO.java
+++ b/src/main/java/com/ectrip/demo/dto/AddSNsDTO.java
@@ -1,4 +1,4 @@
-package com.example.demo.dto;
+package com.ectrip.demo.dto;
import io.swagger.annotations.ApiModel;
diff --git a/src/main/java/com/example/demo/dto/DeleteSNsDTO.java b/src/main/java/com/ectrip/demo/dto/DeleteSNsDTO.java
index 20c7657..707ce1f 100644
--- a/src/main/java/com/example/demo/dto/DeleteSNsDTO.java
+++ b/src/main/java/com/ectrip/demo/dto/DeleteSNsDTO.java
@@ -1,4 +1,4 @@
-package com.example.demo.dto;
+package com.ectrip.demo.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/src/main/java/com/example/demo/exception/SNRepetitiveException.java b/src/main/java/com/ectrip/demo/exception/SNRepetitiveException.java
index 4299727..0be5e56 100644
--- a/src/main/java/com/example/demo/exception/SNRepetitiveException.java
+++ b/src/main/java/com/ectrip/demo/exception/SNRepetitiveException.java
@@ -1,4 +1,4 @@
-package com.example.demo.exception;
+package com.ectrip.demo.exception;
public class SNRepetitiveException extends Exception{
diff --git a/src/main/java/com/example/demo/service/SNService.java b/src/main/java/com/ectrip/demo/service/SNService.java
index 570ef6a..d19f438 100644
--- a/src/main/java/com/example/demo/service/SNService.java
+++ b/src/main/java/com/ectrip/demo/service/SNService.java
@@ -1,12 +1,11 @@
-package com.example.demo.service;
+package com.ectrip.demo.service;
-import com.example.demo.dto.AddSNsDTO;
-import com.example.demo.dto.DeleteSNsDTO;
-import com.example.demo.exception.SNRepetitiveException;
+import com.ectrip.demo.dto.AddSNsDTO;
+import com.ectrip.demo.dto.DeleteSNsDTO;
+import com.ectrip.demo.exception.SNRepetitiveException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import java.io.FileNotFoundException;
import java.io.IOException;
public interface SNService {
diff --git a/src/main/java/com/example/demo/service/impl/SNServiceImpl.java b/src/main/java/com/ectrip/demo/service/impl/SNServiceImpl.java
index 9fcd65e..a76a23f 100644
--- a/src/main/java/com/example/demo/service/impl/SNServiceImpl.java
+++ b/src/main/java/com/ectrip/demo/service/impl/SNServiceImpl.java
@@ -1,11 +1,10 @@
-package com.example.demo.service.impl;
+package com.ectrip.demo.service.impl;
import cn.hutool.core.codec.Base64;
-import com.example.demo.controller.SNController;
-import com.example.demo.dto.AddSNsDTO;
-import com.example.demo.dto.DeleteSNsDTO;
-import com.example.demo.exception.SNRepetitiveException;
-import com.example.demo.service.SNService;
+import com.ectrip.demo.dto.DeleteSNsDTO;
+import com.ectrip.demo.service.SNService;
+import com.ectrip.demo.dto.AddSNsDTO;
+import com.ectrip.demo.exception.SNRepetitiveException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
@@ -14,6 +13,9 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
@@ -49,11 +51,12 @@ public class SNServiceImpl implements SNService {
String currTime = sdf.format(new Date());
//读取文件,判断SN是否重复
Set set = new HashSet<>();
- BufferedReader bufferedReader = new BufferedReader(new FileReader(SNFilePath));
+ Reader reader = new InputStreamReader(Files.newInputStream(Paths.get(SNFilePath)),StandardCharsets.UTF_8);
+ BufferedReader bufferedReader = new BufferedReader(reader);
String br;
while ((br=bufferedReader.readLine()) != null) {
//截取SN
- int index = br.indexOf('#');
+ int index = br.indexOf("##");
String SN = br.substring(0,index == -1? 0 : index);
set.add(SN);
}
@@ -67,11 +70,11 @@ public class SNServiceImpl implements SNService {
//写入
- FileWriter fileWriter = new FileWriter(SNFilePath,true);
- fileWriter.write(SNs.toString());
- fileWriter.flush();
- fileWriter.close();
- logger.info("-----------------------------结束添加SNs-----------------------------");
+ FileOutputStream fileOutputStream = new FileOutputStream(SNFilePath,true);
+ fileOutputStream.write(SNs.toString().getBytes(StandardCharsets.UTF_8));
+ fileOutputStream.flush();
+ fileOutputStream.close();
+ logger.info("成功写入SNs:{}",SNs);
} finally { //释放锁
lock.unlock();
}
@@ -79,15 +82,18 @@ public class SNServiceImpl implements SNService {
@Override
public String getEncryptSNs() throws IOException {
- File file = new File(SNFilePath);
//读取文件
- byte[] SNsByteArr = new byte[(int) file.length()];
- FileInputStream fileInputStream = new FileInputStream(file);
- fileInputStream.read(SNsByteArr);
- //加密
- String encodeSNs = Base64.encode(SNsByteArr);
+ Reader reader = new InputStreamReader(Files.newInputStream(Paths.get(SNFilePath)),StandardCharsets.UTF_8);
+ char[] chars = new char[1000];
+ StringBuilder builder = new StringBuilder();
+ int len = reader.read(chars);
+ while (len != -1) {
+ builder.append(chars,0,len);
+ len = reader.read(chars);
+ }
- return encodeSNs;
+ //加密
+ return Base64.encode(builder.toString());
}
@Override
@@ -99,7 +105,8 @@ public class SNServiceImpl implements SNService {
HashSet deleteSNsSet = new HashSet<>(deleteSNsDTO.getSns());
//读取文件,记录不用删除的数据
- BufferedReader bufferedReader = new BufferedReader(new FileReader(SNFilePath));
+ Reader reader = new InputStreamReader(Files.newInputStream(new File(SNFilePath).toPath()), StandardCharsets.UTF_8);
+ BufferedReader bufferedReader = new BufferedReader(reader);
String br;
StringBuilder stringBuilder = new StringBuilder();
StringBuilder existSNs = new StringBuilder();
@@ -107,33 +114,33 @@ public class SNServiceImpl implements SNService {
boolean SNExist = false;
while ((br=bufferedReader.readLine()) != null) {
//截取SN
- int index = br.indexOf('#');
+ int index = br.indexOf("##");
String str = br.substring(0,index == -1? 0 : index);
if (!deleteSNsSet.contains(str)) {
stringBuilder.append(br);
stringBuilder.append(System.lineSeparator());
} else {
- existSNs.append(str).append("、");
+ existSNs.append(br).append(System.lineSeparator());
SNExist = true;
}
}
bufferedReader.close();
- //如果存在要删除的SN,先将数据备份,再将留存数据覆盖掉原SN文件,避免数据写一半断电丢失。
+ //如果存在要删除的SN,先将数据备份,再将留存数据覆盖掉原SN文件。
if (SNExist) {
//备份数据
- FileWriter SNTempfileWriter = new FileWriter(SNTempFilePath);
- SNTempfileWriter.write(stringBuilder.toString());
- SNTempfileWriter.flush();
- SNTempfileWriter.close();
+ FileOutputStream tempFileOutputStream = new FileOutputStream(SNTempFilePath);
+ tempFileOutputStream.write(stringBuilder.toString().getBytes(StandardCharsets.UTF_8));
+ tempFileOutputStream.flush();
+ tempFileOutputStream.close();
//覆盖掉原来的数据到SN文件中
- FileWriter SNfileWriter = new FileWriter(SNFilePath);
- SNfileWriter.write(stringBuilder.toString());
- SNfileWriter.flush();
- SNfileWriter.close();
-
+ FileOutputStream fileOutputStream = new FileOutputStream(SNFilePath);
+ fileOutputStream.write(stringBuilder.toString().getBytes(StandardCharsets.UTF_8));
+ fileOutputStream.flush();
+ fileOutputStream.close();
+ logger.warn("成功删除SNs:{}",existSNs);
}
- logger.warn("成功删除SNs:{}",existSNs);
+
logger.info("-----------------------------结束删除SNs-----------------------------");
diff --git a/src/main/java/com/example/demo/util/HttpResult.java b/src/main/java/com/ectrip/demo/util/HttpResult.java
index 3ae4f6c..6b61af8 100644
--- a/src/main/java/com/example/demo/util/HttpResult.java
+++ b/src/main/java/com/ectrip/demo/util/HttpResult.java
@@ -1,4 +1,4 @@
-package com.example.demo.util;
+package com.ectrip.demo.util;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index abe7140..0b1296d 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -56,7 +56,7 @@
-
+
diff --git a/src/main/resources/sn/SN.txt b/src/main/resources/sn/SN.txt
index 8b13789..7e6fc04 100644
--- a/src/main/resources/sn/SN.txt
+++ b/src/main/resources/sn/SN.txt
@@ -1 +1,3 @@
-
+sn6##项目2##2024-03-20 19:22:17
+sn7##项目2##2024-03-20 19:22:17
+sn8##项目2##2024-03-20 19:22:17
diff --git a/src/main/resources/sn/SNTemp.txt b/src/main/resources/sn/SNTemp.txt
index e69de29..7e6fc04 100644
--- a/src/main/resources/sn/SNTemp.txt
+++ b/src/main/resources/sn/SNTemp.txt
@@ -0,0 +1,3 @@
+sn6##项目2##2024-03-20 19:22:17
+sn7##项目2##2024-03-20 19:22:17
+sn8##项目2##2024-03-20 19:22:17