imboard
Version:
Most convenient platform for webpage development.
67 lines (51 loc) • 1.63 kB
JavaScript
var VisitorVo = require(_path.src + "/vo/VisitorVo.js");
var SqlMapClient = require(_path.lib + "/Sqlmapclient.js");
var VisitorDao = function()
{
this.sqlMapClient = new SqlMapClient("visitor");
if(VisitorDao.caller != VisitorDao.getInstance)
throw new Error("This VisitorDao object cannot be instanciated");
};
VisitorDao.instance = null;
VisitorDao.getInstance = function(){
if(this.instance == null)
this.instance = new VisitorDao();
return this.instance;
}
VisitorDao.prototype.getVisitorList = function(type, callback)
{
this.sqlMapClient.selectsQuery("getVisitorList", type, callback);
};
VisitorDao.prototype.getVisitor = function(vo, callback)
{
this.sqlMapClient.selectQuery("getVisitor", vo, callback);
};
VisitorDao.prototype.insertVisitor = function(ip, userAgent, referer, callback)
{
var that = this;
this.sqlMapClient.deleteQuery("deleteVisitor", {}, function()
{
var today = new Date();
var vo = new VisitorVo();
vo.ip = ip;
vo.userAgent = userAgent;
vo.referer = referer;
var month = (today.getMonth() + 1);
month = month < 10 ? "0" + month : month;
var date = today.getDate();
date = date < 10 ? "0" + date : date;
var hour = today.getHours();
hour = hour < 10 ? "0" + hour : hour;
var min = today.getMinutes();
min = min < 10 ? "0" + min : min;
vo.accessDate = today.getFullYear() + "-" + month + "-" + date + " " + hour + ":" + min;
that.getVisitor(vo, function(data)
{
if(data == null)
that.sqlMapClient.insertQuery("insertVisitor", vo, callback);
else
callback();
});
});
};
module.exports = VisitorDao.getInstance();