jcfw-lite/jcfw/common/storage.js
2020-02-26 11:59:04 +08:00

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);
}
};