Commit cf30bb6b7e8ad83e01cd5f5d3c787aa51ca27841

Authored by 648540858
1 parent 708b19e1

优化存储流程

src/main/java/top/panll/assist/config/StartConfig.java
@@ -176,30 +176,23 @@ public class StartConfig implements CommandLineRunner { @@ -176,30 +176,23 @@ public class StartConfig implements CommandLineRunner {
176 } 176 }
177 } 177 }
178 logger.info("数据收集完成, 待处理数据为: {}条", cloudRecordItemList.size()); 178 logger.info("数据收集完成, 待处理数据为: {}条", cloudRecordItemList.size());
  179 + if (cloudRecordItemList.size() == 0) {
  180 + System.exit(1);
  181 + }
179 logger.info("开始将数据写入数据库"); 182 logger.info("开始将数据写入数据库");
  183 + // 检查记录是否存在,存在则不写入
180 TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); 184 TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
181 - int limitCount = 50;  
182 - if (cloudRecordItemList.size() > 0) {  
183 - if (cloudRecordItemList.size() > limitCount) {  
184 - for (int i = 0; i < cloudRecordItemList.size(); i += limitCount) {  
185 - int toIndex = i + limitCount;  
186 - if (i + limitCount > cloudRecordItemList.size()) {  
187 - toIndex = cloudRecordItemList.size();  
188 - }  
189 - int length = cloudRecordServiceMapper.batchAdd(cloudRecordItemList.subList(i, toIndex)); 185 + if (!cloudRecordItemList.isEmpty()) {
  186 + for (CloudRecordItem cloudRecordItem : cloudRecordItemList) {
  187 + CloudRecordItem cloudRecordItemInDb = cloudRecordServiceMapper.query(cloudRecordItem.getApp(), cloudRecordItem.getStream(),cloudRecordItem.getCallId(), cloudRecordItem.getFilePath());
  188 + if (cloudRecordItemInDb == null) {
  189 + int length = cloudRecordServiceMapper.add(cloudRecordItem);
190 if (length == 0) { 190 if (length == 0) {
191 logger.info("数据写入数据库失败"); 191 logger.info("数据写入数据库失败");
192 dataSourceTransactionManager.rollback(transactionStatus); 192 dataSourceTransactionManager.rollback(transactionStatus);
193 System.exit(1); 193 System.exit(1);
194 } 194 }
195 } 195 }
196 - } else {  
197 - int length = cloudRecordServiceMapper.batchAdd(cloudRecordItemList);  
198 - if (length == 0) {  
199 - logger.info("数据写入数据库失败");  
200 - dataSourceTransactionManager.rollback(transactionStatus);  
201 - System.exit(1);  
202 - }  
203 } 196 }
204 dataSourceTransactionManager.commit(transactionStatus); 197 dataSourceTransactionManager.commit(transactionStatus);
205 } 198 }
@@ -214,12 +207,13 @@ public class StartConfig implements CommandLineRunner { @@ -214,12 +207,13 @@ public class StartConfig implements CommandLineRunner {
214 boolean result = oldFile.renameTo(new File(renameMap.get(oldFileName))); 207 boolean result = oldFile.renameTo(new File(renameMap.get(oldFileName)));
215 if (result) { 208 if (result) {
216 logger.info("重命名成功: " + oldFileName + "===" + renameMap.get(oldFileName)); 209 logger.info("重命名成功: " + oldFileName + "===" + renameMap.get(oldFileName));
  210 + }else {
  211 + logger.info("重命名失败: " + oldFileName + "===" + renameMap.get(oldFileName));
217 } 212 }
218 } 213 }
219 logger.info("修改磁盘文件完成"); 214 logger.info("修改磁盘文件完成");
220 logger.info("清理失效文件夹"); 215 logger.info("清理失效文件夹");
221 for (String streamFileStr : streamFileList) { 216 for (String streamFileStr : streamFileList) {
222 - System.out.println(streamFileStr);  
223 File deleteFile = new File(streamFileStr); 217 File deleteFile = new File(streamFileStr);
224 deleteFile(deleteFile); 218 deleteFile(deleteFile);
225 } 219 }
@@ -232,6 +226,7 @@ public class StartConfig implements CommandLineRunner { @@ -232,6 +226,7 @@ public class StartConfig implements CommandLineRunner {
232 226
233 227
234 public void deleteFile(File file) { 228 public void deleteFile(File file) {
  229 + logger.warn("[删除文件] {} ", file.getAbsolutePath());
235 if (!file.exists()) { 230 if (!file.exists()) {
236 logger.warn("[删除文件] {} 不存在 ", file.getAbsolutePath()); 231 logger.warn("[删除文件] {} 不存在 ", file.getAbsolutePath());
237 }else { 232 }else {
src/main/java/top/panll/assist/mapper/CloudRecordServiceMapper.java
@@ -20,6 +20,8 @@ public interface CloudRecordServiceMapper { @@ -20,6 +20,8 @@ public interface CloudRecordServiceMapper {
20 " folder," + 20 " folder," +
21 " file_path," + 21 " file_path," +
22 " file_size," + 22 " file_size," +
  23 + " collect," +
  24 + " reserve," +
23 " time_len ) " + 25 " time_len ) " +
24 "VALUES (" + 26 "VALUES (" +
25 " #{app}," + 27 " #{app}," +
@@ -32,6 +34,8 @@ public interface CloudRecordServiceMapper { @@ -32,6 +34,8 @@ public interface CloudRecordServiceMapper {
32 " #{folder}," + 34 " #{folder}," +
33 " #{filePath}," + 35 " #{filePath}," +
34 " #{fileSize}," + 36 " #{fileSize}," +
  37 + " #{collect}," +
  38 + " #{reserve}," +
35 " #{timeLen})" + 39 " #{timeLen})" +
36 " </script>") 40 " </script>")
37 int add(CloudRecordItem cloudRecordItem); 41 int add(CloudRecordItem cloudRecordItem);
@@ -102,4 +106,14 @@ public interface CloudRecordServiceMapper { @@ -102,4 +106,14 @@ public interface CloudRecordServiceMapper {
102 "</foreach> " + 106 "</foreach> " +
103 "</script>") 107 "</script>")
104 int batchAdd(@Param("cloudRecordItems") List<CloudRecordItem> cloudRecordItems); 108 int batchAdd(@Param("cloudRecordItems") List<CloudRecordItem> cloudRecordItems);
  109 +
  110 + @Select(" <script>" +
  111 + "select *" +
  112 + " from wvp_cloud_record " +
  113 + " where app = #{app} and stream = #{stream} and call_id = #{callId} and file_path=#{filePath}" +
  114 + " </script>")
  115 + CloudRecordItem query(@Param("app") String app,
  116 + @Param("stream") String stream,
  117 + @Param("callId") String callId,
  118 + @Param("filePath") String filePath);
105 } 119 }