|
@@ -8,7 +8,6 @@ import org.junit.jupiter.api.Test;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.io.OutputStreamWriter;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
@@ -25,28 +24,60 @@ import java.util.stream.Stream;
|
|
|
@Slf4j
|
|
|
@SpringBootTest
|
|
|
class SyncTest {
|
|
|
+ public static final String TEST_DIR = "test/";
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
+ @Test
|
|
|
+ void testBlack() {
|
|
|
+ String p1 = TEST_DIR + "blacklist.csv";
|
|
|
+ String result = TEST_DIR + "black.csv";
|
|
|
+ try (CsvReader csvReader = CsvReader.builder().build(Paths.get(p1), StandardCharsets.UTF_8);
|
|
|
+ OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(Paths.get(result)),
|
|
|
+ StandardCharsets.UTF_8);
|
|
|
+ CsvWriter csvWriter = CsvWriter.builder().build(osw);) {
|
|
|
+ for (CsvRow row : csvReader) {
|
|
|
+ if ("2".equals(row.getField(5))) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ csvWriter.writeRow(row.getFields());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
void test() {
|
|
|
Map<String, Map<String, String>> m1 = new HashMap<>();
|
|
|
Map<String, Map<String, String>> m2 = new HashMap<>();
|
|
|
- String p1 = "z:/blacklist_202208231737.csv";
|
|
|
- String p2 = "z:/data1.csv";
|
|
|
- String result = "z:/result2.csv";
|
|
|
+ String p1 = TEST_DIR + "data.csv";
|
|
|
+ String p2 = TEST_DIR + "black.csv";
|
|
|
+// String p2 = TEST_DIR + "blacklist.csv";
|
|
|
+ String result = TEST_DIR + "result2.csv";
|
|
|
try {
|
|
|
- try (CsvReader csvReader = CsvReader.builder().build(Paths.get(p2), StandardCharsets.UTF_8)) {
|
|
|
+ try (CsvReader csvReader = CsvReader.builder().build(Paths.get(p1), StandardCharsets.UTF_8)) {
|
|
|
for (CsvRow row : csvReader) {
|
|
|
+ if (row.getOriginalLineNumber() == 1) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
m1.put(row.getField(0), new HashMap<String, String>() {{
|
|
|
put("phone", row.getField(0));
|
|
|
put("reason", row.getField(1));
|
|
|
- put("suggestion", row.getField(2));
|
|
|
+ put("start_time", row.getField(2));
|
|
|
+ put("end_time", row.getField(3));
|
|
|
+ put("suggestion", row.getField(4));
|
|
|
}});
|
|
|
}
|
|
|
}
|
|
|
- try (CsvReader csvReader = CsvReader.builder().build(Paths.get(p1), StandardCharsets.UTF_8)) {
|
|
|
+ try (CsvReader csvReader = CsvReader.builder().build(Paths.get(p2), StandardCharsets.UTF_8)) {
|
|
|
for (CsvRow row : csvReader) {
|
|
|
+ if (row.getOriginalLineNumber() == 1) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
m2.put(row.getField(0), new HashMap<String, String>() {{
|
|
|
put("phone", row.getField(0));
|
|
|
put("reason", row.getField(1));
|
|
@@ -61,27 +92,36 @@ class SyncTest {
|
|
|
try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(Paths.get(result)),
|
|
|
StandardCharsets.UTF_8);
|
|
|
CsvWriter csvWriter = CsvWriter.builder().build(osw);) {
|
|
|
- csvWriter.writeRow("黑名单号码", "入黑名单原因", "解黑建议", "是否一致", "入黑名单原因", "解黑建议", "开始时间", "结束时间", "命中策略说明", "操作类型");
|
|
|
+ csvWriter.writeRow("黑名单号码", "入黑名单原因", "开始时间", "结束时间", "解黑建议", "是否一致", "入黑名单原因", "解黑建议", "开始时间", "结束时间", "命中策略说明", "操作类型");
|
|
|
for (Map<String, String> v2 : m2.values()) {
|
|
|
String phone = v2.get("phone");
|
|
|
Map<String, String> v1 = m1.getOrDefault(phone, new HashMap<>());
|
|
|
+// if (CollectionUtils.isEmpty(v1) && "2".equals(v2.get("operation_type"))) {
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+
|
|
|
String flag = "是";
|
|
|
- if (!v2.get("reason").equals(v1.get("reason")) || !v2.get("suggestion").equals(v1.get("suggestion"))) {
|
|
|
+ if (!v2.get("reason").equals(v1.get("reason"))
|
|
|
+ || !v2.get("start_time").equals(v1.get("start_time"))
|
|
|
+ || !v2.get("end_time").equals(v1.get("end_time"))
|
|
|
+ || !v2.get("suggestion").equals(v1.get("suggestion"))
|
|
|
+ ) {
|
|
|
flag = "否";
|
|
|
- if (CollectionUtils.isEmpty(v1) && v2.get("operation_type").equals("1")) {
|
|
|
- System.out.println(">>>>>>>>>>" + phone);
|
|
|
- }
|
|
|
}
|
|
|
- csvWriter.writeRow(phone, v1.get("reason"), v1.get("suggestion"), flag, v2.get("reason"), v2.get("suggestion"), v2.get("start_time"), v2.get("end_time"), v2.get("hit_desc"), v2.get("operation_type"));
|
|
|
+ csvWriter.writeRow(phone, v1.get("reason"), v1.get("suggestion"), v1.get("start_time"), v1.get("end_time"), flag, v2.get("reason"), v2.get("suggestion"), v2.get("start_time"), v2.get("end_time"), v2.get("hit_desc"), v2.get("operation_type"));
|
|
|
}
|
|
|
// for (Map<String, String> v1 : m1.values()) {
|
|
|
// String phone = v1.get("phone");
|
|
|
// Map<String, String> v2 = m2.getOrDefault(phone, new HashMap<>());
|
|
|
// String flag = "是";
|
|
|
-// if (!v1.get("reason").equals(v2.get("reason")) || !v1.get("suggestion").equals(v2.get("suggestion"))) {
|
|
|
+// if (!v1.get("reason").equals(v2.get("reason"))
|
|
|
+// || !v1.get("start_time").equals(v2.get("start_time"))
|
|
|
+// || !v1.get("end_time").equals(v2.get("end_time"))
|
|
|
+// || !v1.get("suggestion").equals(v2.get("suggestion"))
|
|
|
+// ) {
|
|
|
// flag = "否";
|
|
|
// }
|
|
|
-// csvWriter.writeRow(phone, v1.get("reason"), v1.get("suggestion"), flag, v2.get("reason"), v2.get("suggestion"), v2.get("start_time"), v2.get("end_time"), v2.get("hit_desc"), v2.get("operation_type"));
|
|
|
+// csvWriter.writeRow(phone, v1.get("reason"), v1.get("suggestion"), v1.get("start_time"), v1.get("end_time"), flag, v2.get("reason"), v2.get("suggestion"), v2.get("start_time"), v2.get("end_time"), v2.get("hit_desc"), v2.get("operation_type"));
|
|
|
// }
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@@ -94,7 +134,7 @@ class SyncTest {
|
|
|
*/
|
|
|
@Test
|
|
|
void testImport() {
|
|
|
- String path = "z:/download";
|
|
|
+ String path = TEST_DIR + "download";
|
|
|
// 读取目标文件夹下的文件
|
|
|
try (Stream<Path> stream = Files.list(Paths.get(path))) {
|
|
|
List<Path> pathList = stream.collect(Collectors.toList());
|
|
@@ -105,7 +145,7 @@ class SyncTest {
|
|
|
log.info("file: {}", t.getFileName().toString());
|
|
|
try (CsvReader csvReader = CsvReader.builder().build(t, StandardCharsets.UTF_8)) {
|
|
|
for (CsvRow row : csvReader) {
|
|
|
- Object[] o1 = new Object[] {
|
|
|
+ Object[] o1 = new Object[]{
|
|
|
row.getField(0),
|
|
|
Integer.valueOf(row.getField(1)),
|
|
|
row.getField(2),
|
|
@@ -115,7 +155,7 @@ class SyncTest {
|
|
|
Integer.valueOf(row.getField(6)),
|
|
|
};
|
|
|
l1.add(o1);
|
|
|
- Object[] o2 = new Object[] {
|
|
|
+ Object[] o2 = new Object[]{
|
|
|
row.getField(0),
|
|
|
Integer.valueOf(row.getField(1)),
|
|
|
row.getField(2),
|