]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/store/firebird/firebird_store_users.cpp
Ticket. The stgTime argument added in TariffChangeIsAllowed()
[stg.git] / projects / stargazer / plugins / store / firebird / firebird_store_users.cpp
index aaa44f6bd37c8baf791de04a940a8a94985c3307..fbeacae5332e115fc6d7d3092fa78863eaea16b0 100644 (file)
 #include "stg/ibpp.h"
 
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::GetUsersList(vector<string> * usersList) const
+int FIREBIRD_STORE::GetUsersList(std::vector<std::string> * usersList) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 
-string name;
+std::string name;
 
 try
     {
@@ -63,9 +63,9 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::AddUser(const string & name) const
+int FIREBIRD_STORE::AddUser(const std::string & name) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
@@ -91,9 +91,9 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::DelUser(const string & login) const
+int FIREBIRD_STORE::DelUser(const std::string & login) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
@@ -119,28 +119,21 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::SaveUserStat(const USER_STAT & stat,
-                                 const string & login) const
+                                 const std::string & login) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 return SaveStat(stat, login);
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::SaveStat(const USER_STAT & stat,
-                                 const string & login,
-                                 int year,
-                                 int month) const
+                             const std::string & login,
+                             int year,
+                             int month) const
 {
-
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 
-IBPP::Timestamp actTime;
-IBPP::Timestamp addTime;
-IBPP::Date dt;
-int i;
-int32_t sid, uid;
-
 try
     {
     tr->Start();
@@ -154,7 +147,7 @@ try
     tr->Rollback();
     return -1;
     }
-    st->Get(1, uid);
+    int32_t uid = Get<int32_t>(st, 1);
     st->Close();
     st->Prepare("select first 1 pk_stat from tb_stats where fk_user = ? order by stats_date desc");
     st->Set(1, uid);
@@ -166,11 +159,15 @@ try
     printfd(__FILE__, "No stat info for user '%s'\n", login.c_str());
     return -1;
     }
+    int32_t sid;
     st->Get(1, sid);
     st->Close();
 
+    IBPP::Timestamp actTime;
     time_t2ts(stat.lastActivityTime, &actTime);
+    IBPP::Timestamp addTime;
     time_t2ts(stat.lastCashAddTime, &addTime);
+    IBPP::Date dt;
     if (year != 0)
         ym2date(year, month, &dt);
     else
@@ -198,14 +195,14 @@ try
     st->Execute();
     st->Close();
 
-    for(i = 0; i < DIR_NUM; i++)
+    for(int i = 0; i < DIR_NUM; i++)
         {
         st->Prepare("update tb_stats_traffic set \
                         upload = ?, \
                         download = ? \
                      where fk_stat = ? and dir_num = ?");
-        st->Set(1, (int64_t)stat.up[i]);
-        st->Set(2, (int64_t)stat.down[i]);
+        st->Set(1, (int64_t)stat.monthUp[i]);
+        st->Set(2, (int64_t)stat.monthDown[i]);
         st->Set(3, sid);
         st->Set(4, i);
         st->Execute();
@@ -227,18 +224,13 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::SaveUserConf(const USER_CONF & conf,
-                                 const string & login) const
+                                 const std::string & login) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 
-int i;
-int32_t uid;
-IBPP::Timestamp creditExpire;
-vector<string>::const_iterator it;
-
 try
     {
     tr->Start();
@@ -252,9 +244,11 @@ try
         tr->Rollback();
         return -1;
         }
+    int32_t uid;
     st->Get(1, uid);
     st->Close();
 
+    IBPP::Timestamp creditExpire;
     time_t2ts(conf.creditExpire, &creditExpire);
 
     st->Prepare("update tb_users set \
@@ -308,7 +302,7 @@ try
     st->Prepare("insert into tb_users_services (fk_user, fk_service) \
                     values (?, (select pk_service from tb_services \
                                 where name = ?))");
-    for(it = conf.service.begin(); it != conf.service.end(); ++it)
+    for(std::vector<std::string>::const_iterator it = conf.services.begin(); it != conf.services.end(); ++it)
         {
         st->Set(1, uid);
         st->Set(2, *it);
@@ -321,9 +315,9 @@ try
     st->Execute();
     st->Close();
 
-    i = 0;
+    int i = 0;
     st->Prepare("insert into tb_users_data (fk_user, data, num) values (?, ?, ?)");
-    for (it = conf.userdata.begin(); it != conf.userdata.end(); ++it)
+    for (std::vector<std::string>::const_iterator it = conf.userdata.begin(); it != conf.userdata.end(); ++it)
         {
         st->Set(1, uid);
         st->Set(2, *it);
@@ -337,7 +331,7 @@ try
     st->Execute();
 
     st->Prepare("insert into tb_allowed_ip (fk_user, ip, mask) values (?, ?, ?)");
-    for(i = 0; i < conf.ips.Count(); i++)
+    for(size_t i = 0; i < conf.ips.Count(); i++)
         {
         st->Set(1, uid);
         st->Set(2, (int32_t)conf.ips[i].ip);
@@ -346,7 +340,6 @@ try
         }
     tr->Commit();
     }
-
 catch (IBPP::Exception & ex)
     {
     tr->Rollback();
@@ -359,17 +352,13 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::RestoreUserStat(USER_STAT * stat,
-                                    const string & login) const
+                                    const std::string & login) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 
-IBPP::Timestamp actTime, addTime;
-int i, dir;
-int32_t uid, sid, passiveTime;
-
 try
     {
     tr->Start();
@@ -382,6 +371,7 @@ try
         printfd(__FILE__, "User '%s' not found in database\n", login.c_str());
         return -1;
         }
+    int32_t uid;
     st->Get(1, uid);
     st->Close();
 
@@ -398,12 +388,16 @@ try
         return -1;
         }
 
+    int32_t sid;
     st->Get(1, sid);
     st->Get(2, stat->cash);
     st->Get(3, stat->freeMb);
+    IBPP::Timestamp actTime;
     st->Get(4, actTime);
     st->Get(5, stat->lastCashAdd);
+    IBPP::Timestamp addTime;
     st->Get(6, addTime);
+    int32_t passiveTime;
     st->Get(7, passiveTime);
 
     stat->passiveTime = passiveTime;
@@ -416,13 +410,14 @@ try
     st->Prepare("select * from tb_stats_traffic where fk_stat = ?");
     st->Set(1, sid);
     st->Execute();
-    for(i = 0; i < DIR_NUM; i++)
+    for(int i = 0; i < DIR_NUM; i++)
         {
         if (st->Fetch())
             {
+            int dir;
             st->Get(3, dir);
-            st->Get(5, (int64_t &)stat->up[dir]);
-            st->Get(4, (int64_t &)stat->down[dir]);
+            st->Get(5, (int64_t &)stat->monthUp[dir]);
+            st->Get(4, (int64_t &)stat->monthDown[dir]);
             }
         else
             {
@@ -444,20 +439,13 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::RestoreUserConf(USER_CONF * conf,
-                                    const string & login) const
+                                    const std::string & login) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 
-int32_t uid;
-int i;
-IBPP::Timestamp timestamp;
-IP_MASK im;
-string name;
-bool test;
-
 try
     {
     tr->Start();
@@ -482,12 +470,15 @@ try
         tr->Rollback();
         return -1;
         }
+    int32_t uid;
     st->Get(1, uid);
     // Getting base config
     st->Get(2, conf->address);
+    bool test;
     st->Get(3, test);
     conf->alwaysOnline = test;
     st->Get(4, conf->credit);
+    IBPP::Timestamp timestamp;
     st->Get(5, timestamp);
 
     conf->creditExpire = ts2time_t(timestamp);
@@ -523,8 +514,9 @@ try
     st->Execute();
     while (st->Fetch())
         {
+        std::string name;
         st->Get(1, name);
-        conf->service.push_back(name);
+        conf->services.push_back(name);
         }
 
     // User data
@@ -534,6 +526,7 @@ try
     st->Execute();
     while (st->Fetch())
         {
+        int i;
         st->Get(2, i);
         st->Get(1, conf->userdata[i]);
         }
@@ -547,6 +540,7 @@ try
     conf->ips.Erase();
     while (st->Fetch())
         {
+        IP_MASK im;
         st->Get(1, (int32_t &)im.ip);
         st->Get(2, (int32_t &)im.mask);
         conf->ips.Add(im);
@@ -554,7 +548,6 @@ try
 
     tr->Commit();
     }
-
 catch (IBPP::Exception & ex)
     {
     tr->Rollback();
@@ -566,22 +559,22 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::WriteUserChgLog(const string & login,
-                                    const string & admLogin,
+int FIREBIRD_STORE::WriteUserChgLog(const std::string & login,
+                                    const std::string & admLogin,
                                     uint32_t admIP,
-                                    const string & paramName,
-                                    const string & oldValue,
-                                    const string & newValue,
-                                    const string & message = "") const
+                                    const std::string & paramName,
+                                    const std::string & oldValue,
+                                    const std::string & newValue,
+                                    const std::string & message = "") const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 IBPP::Timestamp now;
 now.Now();
 
-string temp = ""; // Composed message for log
+std::string temp = ""; // Composed message for log
 
 try
     {
@@ -632,9 +625,9 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::WriteUserConnect(const string & login, uint32_t ip) const
+int FIREBIRD_STORE::WriteUserConnect(const std::string & login, uint32_t ip) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
@@ -662,7 +655,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::WriteUserDisconnect(const string & login,
+int FIREBIRD_STORE::WriteUserDisconnect(const std::string & login,
                     const DIR_TRAFF & up,
                     const DIR_TRAFF & down,
                     const DIR_TRAFF & sessionUp,
@@ -671,16 +664,13 @@ int FIREBIRD_STORE::WriteUserDisconnect(const string & login,
                     double /*freeMb*/,
                     const std::string & /*reason*/) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 IBPP::Timestamp now;
 now.Now();
 
-int32_t id;
-int i;
-
 try
     {
     tr->Start();
@@ -688,12 +678,13 @@ try
     st->Set(1, login);
     st->Set(2, now);
     st->Execute();
+    int32_t id;
     st->Get(1, id);
     st->Prepare("insert into tb_sessions_data \
                     (fk_session_log, dir_num, session_upload, \
                      session_download, month_upload, month_download) \
                  values (?, ?, ?, ?, ?, ?)");
-    for(i = 0; i < DIR_NUM; i++)
+    for(int i = 0; i < DIR_NUM; i++)
         {
         st->Set(1, id);
         st->Set(2, i);
@@ -717,11 +708,11 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::WriteDetailedStat(const map<IP_DIR_PAIR, STAT_NODE> & statTree,
+int FIREBIRD_STORE::WriteDetailedStat(const std::map<IP_DIR_PAIR, STAT_NODE> & statTree,
                                       time_t lastStat,
-                                      const string & login) const
+                                      const std::string & login) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
@@ -734,7 +725,7 @@ time_t2ts(lastStat, &statTime);
 try
     {
     tr->Start();
-    map<IP_DIR_PAIR, STAT_NODE>::const_iterator it;
+    std::map<IP_DIR_PAIR, STAT_NODE>::const_iterator it;
     it = statTree.begin();
     st->Prepare("insert into tb_detail_stats \
                     (till_time, from_time, fk_user, dir_num, \
@@ -769,9 +760,9 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, const string & login) const
+int FIREBIRD_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, const std::string & login) const
 {
-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
+STG_LOCKER lock(&mutex);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amWrite, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
@@ -780,8 +771,6 @@ IBPP::Timestamp now;
 IBPP::Date nowDate;
 nowDate.Today();
 now.Now();
-int32_t id;
-int i;
 
 if (SaveStat(stat, login, year, month))
     {
@@ -799,6 +788,7 @@ try
     st->Set(4, nowDate);
 
     st->Execute();
+    int32_t id;
     st->Get(1, id);
     st->Close();
 
@@ -806,7 +796,7 @@ try
                     (fk_stat, dir_num, upload, download) \
                  values (?, ?, 0, 0)");
 
-    for(i = 0; i < DIR_NUM; i++)
+    for(int i = 0; i < DIR_NUM; i++)
         {
         st->Set(1, id);
         st->Set(2, i);
@@ -815,7 +805,6 @@ try
 
     tr->Commit();
     }
-
 catch (IBPP::Exception & ex)
     {
     tr->Rollback();