实现了导出mysql中存储的聊天记录,根据群聊id进行存储

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// 所需要的依赖

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

// 接口

@ApiOperation(value = "上传聊天记录",tags = "文件")
@PostMapping("/uploadChat")
public Result<?> uploadChat(@ApiParam("群聊id") @RequestParam String groupId) throws InterruptedException, TimeoutException, ContractException {
System.out.println("群聊id是:" + groupId);
String chat = null;
{
Statement st;
ResultSet rs;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/cart?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false";
String username = "root";
String password = "123456";

Connection c = DriverManager.getConnection(url, username, password);

st = c.createStatement();

rs = st.executeQuery("select * from group_message where group_id = '" + groupId + "'");
System.out.println(rs);
ResultSetMetaData md = rs.getMetaData();//获取键名
int columnCount = md.getColumnCount();//获取行的数量

List list = new ArrayList<>();// 定义一个list,用来存放数据
while (rs.next()) {
Map rowData = new HashMap();//声明Map
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));//获取键名及值
}
list.add(rowData);
}

try {
chat = Utils.exportTxtPaper(list);
} catch (Exception e) {
e.printStackTrace();
}

c.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
// contract.submitTransaction("uploadChat", chat + ".txt", groupId);
return Result.success(chat + ".txt");
}

// 对应工具类
public static String exportTxtPaper(List<Map> list) throws Exception {
int baseNum = 0;
Writer out;
String chat = UUID.randomUUID().toString();
File outFile = new File("D:\\code\\timeBlank\\my-fabric-application-java\\src\\main\\resources\\chat\\" + chat + ".txt");
if (!outFile.exists()) {
outFile.getParentFile().mkdirs();
}
outFile.setWritable(true, false);
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));
for (int i = 0; i < list.size(); i++) {
out.write(list.get(i).get("id") + "|" + list.get(i).get("sender_id") + "|" + list.get(i).get("group_id")+ "|" + list.get(i).get("message")+ "|" + list.get(i).get("type")+ "|" + list.get(i).get("send_time"));
out.write("\r\n");
}
out.flush();
out.close();
return chat;
}