var util = require('util');
var Service = require('Service');
var utils = require('utils');

var GetOnlineStatus = function () {
  Service.call(this);
  this.checkAuthority = false;
};

util.inherits(GetOnlineStatus, Service);

module.exports = GetOnlineStatus;

GetOnlineStatus.prototype.process = function (req, res) {
  if (!req.usersId) {
    this.onLogicError(1, '请提供用户编号！');
    return;
  }
  //以下在线状态不是很准确，pc和移动端的在线状态应该连消息服务器查询
  //但消息服务器上的状态也是相对的，不是实时的，因为iOS客户端和使用第三方推送服务的安卓客户端与服务器没有长连接
  //无法严格意义上判断是否真的在线，只能根据最后活跃时间来判断最近一段时间内是否和服务器交互过
  res.status = [];
  for (var i = 0; i < req.usersId.length; i++) {
    var userSession = server.sessionManager.onlineUsers[req.session.orgId+'.'+req.usersId[i]];
    if (!userSession) {
      res.status.push([0,0,0]);
      continue;
    }
    var web = 0;
    if (userSession.web && userSession.web.length>0) web = 1;
    var pc = 0;
    if (userSession.pc) pc = 1;
    var mobile = 0;
    if (userSession.phone || userSession.pad) mobile = 1;
    res.status.push([web, pc, mobile]);
  }
  this.end(res);
};