6
6
7
7
#include " jdbc/mysql_driver.h"
8
8
#include " json/json.h"
9
+
9
10
void sql_process_request (std::string sender, std::string receiver, std::string attitude)
10
11
{
11
12
std::vector<std::string> usernamelist;
12
- sql::mysql::MySQL_Driver *driver;
13
- driver = sql::mysql::get_mysql_driver_instance ();
14
- sql::Connection *con;
15
- con = driver->connect (" tcp://8.130.48.157:3306" , " root" , " abc.123" );
13
+ sql::mysql::MySQL_Driver *driver = sql::mysql::get_mysql_driver_instance ();
14
+ sql::Connection *con = driver->connect (" tcp://8.130.48.157:3306" , " root" , " abc.123" );
15
+
16
16
con->setSchema (" flypen" );
17
+
17
18
std::string readdata = " SELECT req FROM users WHERE username = ?" ;
18
19
sql::PreparedStatement *readdatament = con->prepareStatement (readdata);
20
+
19
21
readdatament->setString (1 , sender);
22
+
20
23
sql::ResultSet *resultSet = readdatament->executeQuery ();
21
24
std::string req;
25
+
22
26
if (resultSet->next ())
23
27
req = resultSet->getString (" req" );
28
+
24
29
size_t pos = req.find (sender);
25
- if (pos != std::string::npos&&pos!= 0 )
26
- {
30
+
31
+ if (pos != std::string::npos && pos!= 0 )
27
32
req.erase (pos-1 , sender.length ()+1 );
28
- }else if (pos==0 )req.erase (pos, sender.length ()+1 );
33
+ else if (pos == 0 )
34
+ req.erase (pos, sender.length ()+1 );
35
+
29
36
std::string updateQuery = " UPDATE users SET req = ? WHERE username = ?" ;
30
37
sql::PreparedStatement *updateStatement = con->prepareStatement (updateQuery);
38
+
31
39
updateStatement->setString (1 , req);
32
40
updateStatement->setString (2 , receiver);
33
41
updateStatement->execute ();
42
+
34
43
if (attitude == " allow" )
35
44
{
36
45
std::string readdata = " SELECT friends FROM users WHERE username = ?" ;
37
46
sql::PreparedStatement *Rreaddatament = con->prepareStatement (readdata);
38
47
sql::PreparedStatement *Sreaddatament = con->prepareStatement (readdata);
48
+
39
49
Rreaddatament->setString (1 , receiver);
40
50
Sreaddatament->setString (1 , sender);
41
51
sql::ResultSet *RresultSet = Rreaddatament->executeQuery ();
@@ -47,10 +57,12 @@ void sql_process_request(std::string sender, std::string receiver, std::string a
47
57
if (SresultSet->next ())
48
58
Sfriendslist = SresultSet->getString (" friends" );
49
59
size_t pos = Rfriendslist.find (sender);
50
- if (pos!=std::string::npos)return ;
60
+ if (pos != std::string::npos)
61
+ return ;
51
62
std::string updateQuery = " UPDATE users SET friends = ? WHERE username = ?" ;
52
63
sql::PreparedStatement *updateR = con->prepareStatement (updateQuery);
53
64
sql::PreparedStatement *updateS = con->prepareStatement (updateQuery);
65
+
54
66
if (Rfriendslist != " " )
55
67
{
56
68
Rfriendslist += " ," + sender;
@@ -64,6 +76,7 @@ void sql_process_request(std::string sender, std::string receiver, std::string a
64
76
updateR->setString (2 , receiver);
65
77
updateR->execute ();
66
78
}
79
+
67
80
if (Sfriendslist != " " )
68
81
{
69
82
Sfriendslist += " ," + receiver;
@@ -78,11 +91,10 @@ void sql_process_request(std::string sender, std::string receiver, std::string a
78
91
updateS->execute ();
79
92
}
80
93
}
81
- else
82
- {
83
- return ;
84
- }
94
+
95
+ return ;
85
96
}
97
+
86
98
void sql_addrequest (std::string sender, std::string receiver)
87
99
{
88
100
std::vector<std::string> usernamelist;
@@ -117,6 +129,7 @@ void sql_addrequest(std::string sender, std::string receiver)
117
129
updateStatement->execute ();
118
130
}
119
131
}
132
+
120
133
void sql_addconnect (std::string connectptr)
121
134
{
122
135
try
@@ -140,6 +153,7 @@ void sql_addconnect(std::string connectptr)
140
153
std::cerr << " SQL Exception: " << e.what () << std::endl;
141
154
}
142
155
}
156
+
143
157
void sql_addhistory (std::string sender, std::string receiver, std::string message, std::string isread)
144
158
{
145
159
try
@@ -167,6 +181,7 @@ void sql_addhistory(std::string sender, std::string receiver, std::string messag
167
181
std::cerr << " SQL Exception: " << e.what () << std::endl;
168
182
}
169
183
}
184
+
170
185
void sql_add (std::string username, std::string passwd, int avatar) {
171
186
try {
172
187
@@ -194,6 +209,7 @@ void sql_add(std::string username, std::string passwd, int avatar) {
194
209
std::cerr << " SQL Exception: " << e.what () << std::endl;
195
210
}
196
211
}
212
+
197
213
// bool sql_check(std::string user) {
198
214
// bool result = false;
199
215
// try {
@@ -230,60 +246,56 @@ void sql_add(std::string username, std::string passwd, int avatar) {
230
246
231
247
// return result;
232
248
// }
233
- Json::Value get_chat_info (std::string me, std::string who_send_me=" " ) {
234
- Json::Value json;
235
249
236
- try {
237
- sql::mysql::MySQL_Driver *driver;
238
- driver = sql::mysql::get_mysql_driver_instance ();
239
- sql::Connection *con;
240
- con = driver->connect (" tcp://8.130.48.157:3306" , " root" , " abc.123" );
241
- con->setSchema (" flypen" );
250
+ Json::Value get_chat_info (std::string me, std::string who_send_me)
251
+ {
252
+ Json::Value json;
253
+ std::string send[2 ] = {me, who_send_me};
242
254
243
- if (!who_send_me.empty ()) {
244
- std::string sql = " SELECT * FROM users WHERE username = ? LIMIT 1" ;
245
- sql::PreparedStatement *prepStmt = con->prepareStatement (sql);
246
- prepStmt->setString (1 , who_send_me);
247
-
248
- sql::ResultSet *res = prepStmt->executeQuery ();
249
- if (res->next ()) {
250
- Json::Value user;
251
- int avatar=res->getInt (" avatar" );
252
- std::string friends=res->getString (" friends" );
253
- std::string req=res->getString (" req" );
254
- user[" avatar" ] = avatar;
255
- user[" friends" ] = friends;
256
- user[" req" ] = req;
257
-
258
- json[who_send_me] = user;
259
- }
260
- }
255
+ try
256
+ {
257
+ sql::mysql::MySQL_Driver *driver;
258
+ driver = sql::mysql::get_mysql_driver_instance ();
259
+ sql::Connection *con;
260
+ con = driver->connect (" tcp://8.130.48.157:3306" , " root" , " abc.123" );
261
+ con->setSchema (" flypen" );
261
262
262
- if (!me.empty ()) {
263
- std::string sql = " SELECT * FROM users WHERE username = ? LIMIT 1" ;
264
- sql::PreparedStatement *prepStmt = con->prepareStatement (sql);
265
- prepStmt->setString (1 , me);
266
-
267
- sql::ResultSet *res = prepStmt->executeQuery ();
268
- if (res->next ()) {
269
- Json::Value user;
270
- int avatar=res->getInt (" avatar" );
271
- std::string friends=res->getString (" friends" );
272
- std::string req=res->getString (" req" );
273
- user[" avatar" ] = avatar;
274
- user[" friends" ] = friends;
275
- user[" req" ] = req;
276
-
277
- json[me] = user;
278
- }
279
- }
263
+ for (int i = 0 ; i < 2 ; i++)
264
+ {
265
+ if (!send[i].empty ())
266
+ {
267
+ std::string sql = " SELECT * FROM users WHERE username = ? LIMIT 1" ;
268
+ sql::PreparedStatement *prepStmt = con->prepareStatement (sql);
269
+ prepStmt->setString (1 , send[i]);
270
+
271
+ sql::ResultSet *res = prepStmt->executeQuery ();
272
+
273
+ if (res->next ()) {
274
+ Json::Value user;
275
+ int avatar=res->getInt (" avatar" );
276
+ std::string friends=res->getString (" friends" );
277
+ std::string req=res->getString (" req" );
278
+
279
+ user[" avatar" ] = avatar;
280
+ user[" friends" ] = friends;
281
+ user[" req" ] = req;
280
282
281
- } catch (sql::SQLException &e) {
282
- std::cerr << " SQL Exception: " << e.what () << std::endl;
283
- }
283
+ Json::StreamWriterBuilder builder;
284
+ std::string userJson = Json::writeString (builder, user);
284
285
285
- return json;
286
+ json[send[i]] = user;
287
+ }
288
+ }
289
+ }
290
+ }
291
+ catch (sql::SQLException &e)
292
+ {
293
+ std::cerr << " SQL Exception: " << e.what () << std::endl;
294
+ }
295
+
296
+ return json;
286
297
}
298
+
287
299
bool sql_check (std::string user, std::string passwd) {
288
300
bool result = false ;
289
301
try
@@ -331,6 +343,7 @@ bool sql_check(std::string user, std::string passwd) {
331
343
332
344
return result;
333
345
}
346
+
334
347
Json::Value sql_find_my_msg (std::string me, std::string who_send_me)
335
348
{
336
349
// std::cout << "login user: " << user << std::endl;
0 commit comments