userDataManager.ts 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. import { _decorator, sys } from 'cc';
  2. import { user_car_list, user_expand, user_free_ads_data, user_red_dot_data, userData } from '../data';
  3. import { config } from '../config';
  4. import { tools } from '../tools';
  5. import { GameManager } from '../GameManager';
  6. import { dataManager } from './dataManager';
  7. const { ccclass, property } = _decorator;
  8. @ccclass('userDataManager')
  9. export class userDataManager {
  10. public static user_data:userData = null
  11. public static user_car_list:user_car_list = null
  12. public static user_red_dot_data:user_red_dot_data = new user_red_dot_data //用户红点数据
  13. public static user_expand:user_expand = null //用户扩展
  14. public static free_ads_data:user_free_ads_data = null
  15. // 今天分享相关
  16. public static isTodayCanShare():boolean {
  17. if(userDataManager.user_expand.share_number>=dataManager.getTodayShareFreeTotalCount()) {
  18. return false
  19. }
  20. return true
  21. }
  22. public static addTodayShareNumber() {
  23. if(userDataManager.user_expand.share_number>=dataManager.getTodayShareFreeTotalCount()) {
  24. return
  25. }
  26. userDataManager.user_expand.share_number+=1
  27. // console.log('同步接口 今天分享数:',userDataManager.user_expand.share_number)
  28. let opt = {'share_number':userDataManager.user_expand.share_number}
  29. GameManager.requestUserSyncFreeNumber(opt)
  30. }
  31. // 每天免费玩游戏
  32. public static isTodayCanFreePlayGame():boolean {
  33. if(userDataManager.user_expand.free_game_number>=dataManager.getTodayGameFreeTotalCount()) {
  34. return false
  35. }
  36. return true
  37. }
  38. public static addTodayPlayGameNumber() {
  39. if(userDataManager.user_expand.free_game_number>=dataManager.getTodayGameFreeTotalCount()) {
  40. return
  41. }
  42. userDataManager.user_expand.free_game_number+=1
  43. // console.log('同步接口 今天玩游戏数:',userDataManager.user_expand.free_game_number)
  44. let opt = {'free_game_number':userDataManager.user_expand.free_game_number}
  45. GameManager.requestUserSyncFreeNumber(opt)
  46. }
  47. // 获取车碎片,看视频相关
  48. public static isGetCarDebrisLookVideo():boolean {
  49. if(userDataManager.user_expand.video_car_number>=dataManager.getCarDebrisLookVideoTotalCount()) {
  50. return false
  51. }
  52. return true
  53. }
  54. public static addGetCarDebrisLookVideoNumber(car_id:number,success_cb) {
  55. if(userDataManager.user_expand.video_car_number>=dataManager.getCarDebrisLookVideoTotalCount()) {
  56. return
  57. }
  58. userDataManager.user_expand.video_car_number+=1
  59. let opt = {'stype':1,'car_id':car_id}
  60. GameManager.requestUserSyncCarDebrisNumber(opt,success_cb)
  61. }
  62. // 获取车碎片,分享相关
  63. public static isGetCarDebrisShare():boolean {
  64. if(userDataManager.user_expand.share_car_number>=dataManager.getCarDebrisShareTotalCount()) {
  65. return false
  66. }
  67. return true
  68. }
  69. public static addGetCarDebrisShareNumber(car_id:number,success_cb) {
  70. if(userDataManager.user_expand.share_car_number>=dataManager.getCarDebrisShareTotalCount()) {
  71. return
  72. }
  73. userDataManager.user_expand.share_car_number+=1
  74. let opt = {'stype':2,'car_id':car_id}
  75. GameManager.requestUserSyncCarDebrisNumber(opt,success_cb)
  76. }
  77. // 用户免广告相关
  78. public static getUserIsFreeAds():boolean {
  79. return userDataManager.free_ads_data.is_free
  80. }
  81. public static saveUserFreeAdsData() {
  82. let data = JSON.stringify(userDataManager.free_ads_data)
  83. // console.log('保存-----用户免费广告',data)
  84. sys.localStorage.setItem(config.LOCAL_STORAGE.USER_FREE_ADS_DATA, data)
  85. }
  86. public static clearUserFreeAdsData() {
  87. sys.localStorage.removeItem(config.LOCAL_STORAGE.USER_FREE_ADS_DATA)
  88. }
  89. public static getUserFreeAdsData():user_free_ads_data {
  90. if(userDataManager.free_ads_data!=null) {
  91. // console.log('获取--静态---用户免费广告',userDataManager.free_ads_data)
  92. return userDataManager.free_ads_data
  93. }
  94. let str = sys.localStorage.getItem(config.LOCAL_STORAGE.USER_FREE_ADS_DATA)
  95. // console.log('str=',str)
  96. if(str==undefined||str==""||str==null||str=='null'){
  97. userDataManager.free_ads_data = new user_free_ads_data
  98. } else {
  99. let nd:user_free_ads_data = JSON.parse(str)
  100. userDataManager.free_ads_data = nd
  101. }
  102. // console.log('获取--解析---用户免费广告',userDataManager.free_ads_data)
  103. return userDataManager.free_ads_data
  104. }
  105. public static addUserFreeAdsSeconds(add_seconds:number) {
  106. let free_ads_data = userDataManager.getUserFreeAdsData()
  107. if(free_ads_data.start_date_time<=0) {
  108. let cur_time = new Date().getTime()
  109. free_ads_data.start_date_time = cur_time
  110. }
  111. free_ads_data.start_date_time = free_ads_data.start_date_time + add_seconds * 1000
  112. userDataManager.saveUserFreeAdsData()
  113. }
  114. public static getUserFreeAdsSeconds() {
  115. let free_ads_data = userDataManager.getUserFreeAdsData()
  116. let old_time = free_ads_data.start_date_time
  117. // console.log('old_time=',old_time)
  118. if(old_time<=0) {
  119. free_ads_data.is_free = false
  120. free_ads_data.is_look_video_infinite_count_reward = false
  121. return old_time
  122. }
  123. let free_seconds = free_ads_data.is_look_video_infinite_count_reward ? tools.sys_config.free_game_time : 0
  124. let cur_time = new Date()
  125. let time_diff = cur_time.getTime() - old_time
  126. let seconds = Math.floor(time_diff / 1000);
  127. let shengyu_seconds = free_seconds - seconds
  128. // console.log('上次时间距离当前秒:',seconds,'shengyu_seconds=',shengyu_seconds)
  129. if(shengyu_seconds<=0) {
  130. free_ads_data.is_free = false
  131. return 0
  132. }
  133. free_ads_data.is_free = true
  134. return shengyu_seconds
  135. }
  136. }