Bladeren bron

登录时间统计完善

zhangweicheng 6 jaren geleden
bovenliggende
commit
562ce106a4
1 gewijzigde bestanden met toevoegingen van 27 en 21 verwijderingen
  1. 27 21
      logs/online_logs.js

+ 27 - 21
logs/online_logs.js

@@ -10,28 +10,34 @@ import moment from "moment";
 let logs_model = mongoose.model("online_logs");
 
 async function saveOnlineTime(req) {
-    let interval_time = 10 * 60 *1000;
-    let start = req.session.online_start_time;
+    let online_times = 0;
     let end = + new Date();
-    if(start === undefined) return req.session.online_start_time ==end;
-    let online_times =  end - start;
-    //1秒内只记一次就好
-    if(online_times < 500) return;//如果间隔太短,则忽略
-    if(online_times > interval_time ){//如果间隔超过有效时长,则不累加这次时长,从头开始算
-        req.session.online_start_time = end;
-        return
-    }
-    if(!req.session.sessionUser||!req.session.sessionCompilation) return;
-    let dataString = moment(end).format('YYYY-MM-DD');
-    let condition = {userID:req.session.sessionUser.id,compilationID:req.session.sessionCompilation._id,dateString:dataString};
-    let record = await logs_model.findOne(condition);
-    if(record){ //如果找到,则累加
-        await logs_model.update(condition,{$inc:{'online_times' : online_times }});
-    }else {//如果没找到,则新增一条记录
-        condition["online_times"] = online_times;
-        let today = moment(dataString).toDate();
-        condition["dateTime"] = +today;
-        await logs_model.create(condition);
+    try {
+        let interval_time = 10 * 60 *1000;
+        let start = req.session.online_start_time;
+        if(start === undefined) return req.session.online_start_time ==end;
+        let online_times =  end - start;
+        //1秒内只记一次就好
+        if(online_times < 500) return;//如果间隔太短,则忽略
+        if(online_times > interval_time ){//如果间隔超过有效时长,则不累加这次时长,从头开始算
+            req.session.online_start_time = end;
+            return
+        }
+        if(!req.session.sessionUser||!req.session.sessionCompilation) return;
+        let dataString = moment(end).format('YYYY-MM-DD');
+        let condition = {userID:req.session.sessionUser.id,compilationID:req.session.sessionCompilation._id,dateString:dataString};
+        let record = await logs_model.findOne(condition);
+        if(record){ //如果找到,则累加
+            await logs_model.update(condition,{$inc:{'online_times' : online_times }});
+        }else {//如果没找到,则新增一条记录
+            condition["online_times"] = online_times;
+            let today = moment(dataString).toDate();
+            condition["dateTime"] = +today;
+            await logs_model.create(condition);
+        }
+    }catch (e){
+        console.log("统计登录时间错误,online_times值:"+online_times);
+        console.log(e);
     }
     req.session.online_start_time = end;
 }