Changeset 378:77e70b2ae3e2
- Timestamp:
- 05/18/2009 10:29:06 PM (3 years ago)
- Author:
- Dmitry Nezhevenko <dion@…>
- Branch:
- default
- Message:
-
Calc real online time of user
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r377
|
r378
|
|
| 3 | 3 | id SERIAL, |
| 4 | 4 | jid_id int NOT NULL, |
| | 5 | |
| | 6 | time_online int NOT NULL default 0, |
| | 7 | |
| 5 | 8 | lastaction int NOT NULL default '0', |
| 6 | 9 | lastreason varchar(200) NULL, |
-
|
r377
|
r378
|
|
| 32 | 32 | jidId_ = jidId; |
| 33 | 33 | |
| | 34 | dateTime_ = QDateTime::currentDateTime(); |
| 34 | 35 | if (jidId_ > 0) |
| 35 | 36 | { |
| … |
… |
|
| 149 | 150 | if (!cntName.isEmpty()) |
| 150 | 151 | { |
| 151 | | q.prepare(QString("UPDATE conference_jidstat set %1 = %1 + 1 WHERE id=?").arg(cntName, cntName)); |
| | 152 | q.prepare(QString("UPDATE conference_jidstat set %1 = %2 + 1 WHERE id=?").arg(cntName).arg(cntName)); |
| 152 | 153 | q.addBindValue(id_); |
| 153 | 154 | if (!q.exec()) |
| … |
… |
|
| 156 | 157 | } |
| 157 | 158 | } |
| | 159 | updateOnlineTime(); |
| 158 | 160 | } |
| 159 | 161 | |
| … |
… |
|
| 173 | 175 | } |
| 174 | 176 | } |
| | 177 | |
| | 178 | void JidStat::updateOnlineTime() |
| | 179 | { |
| | 180 | if (id_ <= 0) |
| | 181 | return; |
| | 182 | QDateTime now = QDateTime::currentDateTime(); |
| | 183 | int delta = dateTime_.secsTo(now); |
| | 184 | QSqlQuery q = DataStorage::instance()->prepareQuery( |
| | 185 | "UPDATE conference_jidstat SET time_online = time_online + ? WHERE id=?" |
| | 186 | ); |
| | 187 | q.addBindValue(delta); |
| | 188 | q.addBindValue(id_); |
| | 189 | if (!q.exec()) |
| | 190 | { |
| | 191 | qDebug() << "ERROR: Unable to update time_online"; |
| | 192 | } |
| | 193 | else |
| | 194 | { |
| | 195 | dateTime_=now; |
| | 196 | } |
| | 197 | |
| | 198 | } |
-
|
r377
|
r378
|
|
| 22 | 22 | |
| 23 | 23 | #include <QString> |
| | 24 | #include <QDateTime> |
| 24 | 25 | |
| 25 | 26 | class JidStat |
| … |
… |
|
| 53 | 54 | void setLastAction(ActionType type, const QString& reason); |
| 54 | 55 | void setVersion(const QString& version); |
| | 56 | void updateOnlineTime(); |
| 55 | 57 | private: |
| 56 | 58 | int id_; |
| 57 | 59 | int jidId_; |
| | 60 | QDateTime dateTime_; |
| 58 | 61 | |
| 59 | 62 | bool load(); |
-
|
r375
|
r378
|
|
| 134 | 134 | delete myJid; |
| 135 | 135 | } |
| | 136 | if (myJidStat) |
| | 137 | myJidStat->updateOnlineTime(); |
| 136 | 138 | delete myJidStat; |
| 137 | 139 | } |