Эх сурвалжийг харах

feat: 修改黑名单查询接口逻辑

weijianghai 2 жил өмнө
parent
commit
ff470e90e6

+ 8 - 11
sms_blk_api/src/main/java/com/nokia/sms/service/QueryService.java

@@ -19,28 +19,25 @@ public class QueryService {
     }
 
     public QueryResp query(RequestParams params) {
-        Map<String, Object> current = getBlackListInfo(params.getPhone());
+        Map<String, Object> map = getBlackListInfo(params.getPhone());
         QueryResp r = new QueryResp();
         r.setQuerySuccess(false);
-        String sql = "select 1 from sms_blk.blacklist_file where phone = ? limit 1";
-        try {
-            jdbcTemplate.queryForMap(sql, params.getPhone());
-        } catch (EmptyResultDataAccessException e) {
+        if (CollectionUtils.isEmpty(map)) {
             r.setQueryMessage("无加黑记录");
             return r;
         }
 
-        if (CollectionUtils.isEmpty(current)) {
+        if (map.get("operation_type").equals(2)) {
             r.setQueryMessage("曾在黑名单,已解黑");
             return r;
         }
 
         QueryResp.QueryResultDTO dto = new QueryResp.QueryResultDTO();
-        dto.setReason(current.get("reason").toString());
-        dto.setStartTime((String) current.get("start_time"));
-        dto.setEndTime((String) current.get("end_time"));
-        dto.setDescribe((String) current.get("hit_desc"));
-        dto.setAllowToDel(current.get("suggestion").equals(1));
+        dto.setReason(map.get("reason").toString());
+        dto.setStartTime((String) map.get("start_time"));
+        dto.setEndTime((String) map.get("end_time"));
+        dto.setDescribe((String) map.get("hit_desc"));
+        dto.setAllowToDel(map.get("suggestion").equals(1));
         r.setQuerySuccess(true);
         r.setQueryMessage("当前在黑名单");
         r.setQueryResult(dto);

+ 3 - 3
sms_blk_api/src/main/resources/application.properties

@@ -1,7 +1,7 @@
 server.port=12120
 
 logging.level.com.nokia=debug
-spring.datasource.url=jdbc:postgresql://192.168.50.4:5432/sqmmt
-spring.datasource.username=do
-spring.datasource.password=Richr00t
+spring.datasource.url=jdbc:postgresql://192.168.10.54:5432/sqmmt
+spring.datasource.username=sms_blk
+spring.datasource.password=Sms@Richr00t
 spring.datasource.driverClassName=org.postgresql.Driver

+ 3 - 3
sms_blk_interface/src/main/resources/application-dev.properties

@@ -1,3 +1,3 @@
-spring.datasource.url=jdbc:postgresql://192.168.10.54:5432/sqmmt
-spring.datasource.username=sms_blk
-spring.datasource.password=Sms@Richr00t
+spring.datasource.url=jdbc:postgresql://192.168.50.4:5432/sqmmt
+spring.datasource.username=do
+spring.datasource.password=Richr00t

+ 3 - 3
sms_blk_interface/src/main/resources/application.properties

@@ -1,8 +1,8 @@
 server.port=12121
 logging.level.com.nokia=info
-spring.datasource.url=jdbc:postgresql://192.168.50.4:5432/sqmmt
-spring.datasource.username=do
-spring.datasource.password=Richr00t
+spring.datasource.url=jdbc:postgresql://192.168.10.54:5432/sqmmt
+spring.datasource.username=sms_blk
+spring.datasource.password=Sms@Richr00t
 spring.datasource.driverClassName=org.postgresql.Driver
 ### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
 xxl.job.admin.addresses=http://192.168.10.7:8087/xxl-job-admin

+ 63 - 2
sms_blk_interface/src/test/java/com/nokia/sms/SyncTest.java

@@ -2,18 +2,23 @@ package com.nokia.sms;
 
 import de.siegmar.fastcsv.reader.CsvReader;
 import de.siegmar.fastcsv.reader.CsvRow;
+import de.siegmar.fastcsv.writer.CsvWriter;
 import lombok.extern.slf4j.Slf4j;
 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;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -25,6 +30,63 @@ class SyncTest {
 
     @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";
+        try {
+            try (CsvReader csvReader = CsvReader.builder().build(Paths.get(p2), StandardCharsets.UTF_8)) {
+                for (CsvRow row : csvReader) {
+                    m1.put(row.getField(0), new HashMap<String, String>() {{
+                        put("phone", row.getField(0));
+                        put("reason", row.getField(1));
+                        put("suggestion", row.getField(2));
+                    }});
+                }
+            }
+            try (CsvReader csvReader = CsvReader.builder().build(Paths.get(p1), StandardCharsets.UTF_8)) {
+                for (CsvRow row : csvReader) {
+                    m2.put(row.getField(0), new HashMap<String, String>() {{
+                        put("phone", row.getField(0));
+                        put("reason", row.getField(1));
+                        put("start_time", row.getField(2));
+                        put("end_time", row.getField(3));
+                        put("hit_desc", row.getField(4));
+                        put("operation_type", row.getField(5));
+                        put("suggestion", row.getField(6));
+                    }});
+                }
+            }
+            try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(Paths.get(result)),
+                    StandardCharsets.UTF_8);
+                 CsvWriter csvWriter = CsvWriter.builder().build(osw);) {
+                csvWriter.writeRow("黑名单号码", "入黑名单原因", "解黑建议", "是否一致", "入黑名单原因", "解黑建议", "开始时间", "结束时间", "命中策略说明", "操作类型");
+                for (Map<String, String> v2 : m2.values()) {
+                    String phone = v2.get("phone");
+                    Map<String, String> v1 = m1.getOrDefault(phone, new HashMap<>());
+                    String flag = "是";
+                    if (!v2.get("reason").equals(v1.get("reason")) || !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"));
+                }
+//                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"))) {
+//                        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"));
+//                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -32,7 +94,7 @@ class SyncTest {
      */
     @Test
     void testImport() {
-        String path = "z:/data";
+        String path = "z:/download";
         // 读取目标文件夹下的文件
         try (Stream<Path> stream = Files.list(Paths.get(path))) {
             List<Path> pathList = stream.collect(Collectors.toList());
@@ -64,7 +126,6 @@ class SyncTest {
                                 t.getFileName().toString()
                         };
                         l2.add(o2);
-                        // log.info("{}: {}", row.getOriginalLineNumber(), o1);
                     }
                 }
                 log.info("blacklist");