150 lines
3.2 KiB
JavaScript
150 lines
3.2 KiB
JavaScript
/**
|
|
* Created by y.x on 18/09/06.
|
|
*/
|
|
|
|
var dateutils = require('../utils/dateutils');
|
|
|
|
module.exports = {
|
|
set: function (key, value) {
|
|
try {
|
|
jc.plat.setLocalStorage(key, value);
|
|
return true;
|
|
} catch (err) {
|
|
console.log(err);
|
|
}
|
|
return false;
|
|
},
|
|
|
|
get: function (key) {
|
|
return jc.plat.getLocalStorage(key);
|
|
},
|
|
setjson: function (key, value) {
|
|
this.set(key, JSON.stringify(value));
|
|
},
|
|
getjson: function (key) {
|
|
let str = this.get(key);
|
|
if (str) {
|
|
try {
|
|
return JSON.parse(str);
|
|
} catch (err) {
|
|
}
|
|
}
|
|
return null;
|
|
},
|
|
remove: function (key) {
|
|
jc.plat.removeStorage(key);
|
|
},
|
|
|
|
hasItem: function (key) {
|
|
var result = jc.plat.getItem(key);
|
|
if (jc.channelID == jc.channel.WECHAT) {
|
|
if (result == '' && typeof (result) != 'number') {
|
|
return false;
|
|
}
|
|
return true;
|
|
} else {
|
|
if (result == null || result == undefined) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// if(result){
|
|
// return true;
|
|
// }
|
|
// else{
|
|
// return false;
|
|
// }
|
|
},
|
|
|
|
setData: function (key, value) {
|
|
var data = {};
|
|
data[key] = value;
|
|
console.log('storage====set== ' + JSON.stringify(data));
|
|
return this.set(key, JSON.stringify(data));
|
|
},
|
|
|
|
getStringData: function (key) {
|
|
console.log('storage====get== start' + key);
|
|
var result = jc.plat.getItem(key);
|
|
if (!result) {
|
|
return '0';
|
|
}
|
|
var data = null;
|
|
try {
|
|
data = JSON.parse(result);
|
|
} catch (err) {
|
|
console.log(err);
|
|
}
|
|
|
|
console.log('storage====get== ' + data);
|
|
if (!data) {
|
|
return '0';
|
|
}
|
|
console.log('storage====get== ' + data[key]);
|
|
return data[key];
|
|
},
|
|
|
|
setStorage: function (skey, svalue, successcb, failcb, timeorign_type, time_value) {
|
|
var bok = this.set(skey, svalue);
|
|
if (timeorign_type && time_value) {
|
|
let sk = skey + '_expired';
|
|
let sv = {
|
|
tm_tp: timeorign_type,
|
|
tm_val: time_value,
|
|
tm_now: dateutils.getCurrSeconds()
|
|
};
|
|
this.setjson(sk, sv);
|
|
}
|
|
|
|
if (bok) {
|
|
successcb && successcb();
|
|
} else {
|
|
failcb && failcb(-1, 0, 'storage kev/value failed!k/v:' + skey + '/' + svalue);
|
|
}
|
|
},
|
|
|
|
setStorages: function (kvlist, successcb, failcb) {
|
|
let bok = true;
|
|
kvlist.forEach(element => {
|
|
if (!this.set(element.key, element.value)) {
|
|
bok = false;
|
|
}
|
|
});
|
|
if (bok) {
|
|
successcb && successcb();
|
|
} else {
|
|
failcb && failcb(-1, 0, 'storage kvlist failed!' + JSON.stringify(kvlist));
|
|
}
|
|
},
|
|
|
|
getStorage: function (key, successcb, failcb) {
|
|
let value = this.get(key);
|
|
let sk = key + '_expired';
|
|
let tv = this.getjson(sk);
|
|
if (!tv) {
|
|
successcb && successcb(value);
|
|
} else {
|
|
let sec = dateutils.expiredSeconds(tv.tm_tp, tv.tm_val, tv.tm_now);
|
|
if (sec <= 0) {
|
|
successcb && successcb(null, sec, key);
|
|
} else {
|
|
successcb && successcb(value, sec, key);
|
|
}
|
|
}
|
|
|
|
},
|
|
|
|
getStorages: function (keylist, successcb, failcb) {
|
|
let lst = [];
|
|
keylist.forEach(element => {
|
|
let v = this.get(element);
|
|
lst.push({
|
|
key: element,
|
|
value: v
|
|
});
|
|
});
|
|
successcb && successcb(lst);
|
|
}
|
|
};
|