调用方法
var Msg = new Object;
Msg.key = supportId;//文章ID
Msg.type = "zan";//按钮类型
Msg.userid = app.globalData._id;//用户ID
var checkM = com.checkDate(Msg);
if (checkM.flag) {
//业务处理
}
var checkDate = function (value) {
var flag = false;
var rmk = true;
var rmk=true;//默认用户是存在的。
var that = this;
var timestamp = Date.parse(new Date());
var userId = value.userid;//当前用户
var key = value.key;//文章ID
var type = value.type;//操作类型,点赞或者评论,浏览
var operateType = wx.getStorageSync('operateType');
var chaTime = 12 * 60 * 60 * 1000;//间隔时间为24小时
//var chaTime = 1 * 60 * 1000;//调试间隔时间为1分钟
var checkKey = type + key;
if ("" == operateType) {
const checkMsg = [];
checkMsg.push( { 'key': checkKey, 'timestamp': timestamp });
wx.setStorageSync('operateType', checkMsg);
var operateType = wx.getStorageSync('operateType');
return { 'flag': true, 'msg': '有效' };
}
var newoperateType=JSON.stringify(operateType);
var caid=JSON.parse(newoperateType);
for (let inde in caid) {
var obj = caid[inde];
if (obj.key == checkKey) {
rmk=false;
var oldTime = obj.timestamp;
var userTime = oldTime + chaTime;//旧时间+间隔时间,现在时间大于这个时间,说明可以继续操作
if (userTime < timestamp) {
caid.splice(inde,1);
flag = true;
}
}
}
if (flag||rmk) {//已经过了有效期限制或者缓存中的用户不存在就重新写缓存时间
var msyyy = { 'key': checkKey, 'timestamp': timestamp };
caid.push(msyyy);
wx.setStorageSync('operateType', caid);
var operateType = wx.getStorageSync('operateType');
return { 'flag': true, 'msg': '有效' };
}else{
return { 'flag': false, 'msg': '请勿频繁操作。' };
}
}