DataMgr.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import utilsMgr from './DataDao';
  2. // 数据的service层
  3. export class DataMgr {
  4. private static _inst: DataMgr;
  5. public static get inst(): DataMgr {
  6. if (this._inst == null) {
  7. this._inst = new DataMgr();
  8. }
  9. return this._inst;
  10. }
  11. // 判断本地有没有数据,这个是做是否使用显示数据用的
  12. private use = 0
  13. // 这个是将要保存到服务端的数据
  14. private _tempStorages: { [key: string]: any } = {};
  15. // 这个是不会保存到服务端的数据
  16. private NolStorage: { [key: string]: any } = {};
  17. remove(key: string) {
  18. this._tempStorages[key]= {};
  19. utilsMgr.remove(key);
  20. // sys.localStorage.removeItem(key);
  21. }
  22. // 测试用
  23. clearData(){
  24. utilsMgr.clear()
  25. utilsMgr.save('DataMgr__isUse',0);
  26. this.use = 1
  27. this._tempStorages= {};
  28. // 这个是不会保存到服务端的数据
  29. this.NolStorage = {};
  30. }
  31. set(key: string, val: any) {
  32. const name = key;
  33. utilsMgr.save(name, val);
  34. this._tempStorages[name] = val;
  35. return val;
  36. }
  37. setNol(key: string, val: any) {
  38. const name = key;
  39. utilsMgr.save(name, val);
  40. this.NolStorage[name] = val;
  41. return val;
  42. }
  43. getNol(key: string) {
  44. const name = key || null;
  45. if (!name) {
  46. return null
  47. }
  48. const res = this.NolStorage[name];
  49. if (this.NolStorage.hasOwnProperty(name)) {
  50. return res;
  51. } else {
  52. let data = utilsMgr.load(name);
  53. this.NolStorage[name] = data;
  54. return data;
  55. }
  56. }
  57. get(key: string) {
  58. const name = key || null;
  59. if (!name) {
  60. return null
  61. }
  62. const res = this._tempStorages[name];
  63. if (this._tempStorages.hasOwnProperty(name)) {
  64. return res;
  65. } else {
  66. let data = utilsMgr.load(name);
  67. this._tempStorages[name] = data;
  68. return data;
  69. }
  70. }
  71. upload() {
  72. chsdk.saveGameData("my_key",this._tempStorages)
  73. }
  74. download(callback?: (ret) => void) {
  75. chsdk.loadGameData("my_key").then((ret) => {
  76. if(ret.code == chsdk.code.success ) {
  77. let onlinedata = ret.data||{}
  78. let onlineWight = onlinedata["DataMgr__Weight"] ||0
  79. console.log('localWight==>',this.getWeight())
  80. console.log('onlineWight==>',onlineWight)
  81. if(onlineWight>this.getWeight()){
  82. this._tempStorages = onlinedata
  83. // // 刷新权重
  84. // this.setWeight(onlineWight)
  85. }
  86. }
  87. callback(ret)
  88. })
  89. }
  90. setWeight(wight:number){
  91. this._tempStorages["DataMgr__Weight"] = wight
  92. this.setNol("DataMgr__Weight",wight)
  93. }
  94. getWeight(){
  95. return this.get("DataMgr__Weight")||0
  96. }
  97. // isUse() {
  98. // if (!this.use) {
  99. // this.use = utilsMgr.load('DataMgr__isUse')
  100. // }
  101. // return this.use
  102. // }
  103. }