statisticsManager.ts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import { _decorator, Component, log, Node, sys } from 'cc';
  2. import { statistics_collect_rewardVideo_data_item } from '../data/server_play_list_data';
  3. import { config } from '../config';
  4. import { gameManager } from '../gameManager';
  5. import { http } from '../http/http';
  6. const { ccclass, property } = _decorator;
  7. @ccclass('StatisticsManager')
  8. export class StatisticsManager extends Component {
  9. private static _instance: StatisticsManager;
  10. public static get instance() {
  11. if (this._instance) {
  12. return this._instance;
  13. }
  14. this._instance = new StatisticsManager();
  15. return this._instance;
  16. }
  17. /**
  18. * 获取收集数据
  19. *
  20. * @param {number} category_id
  21. * @param {number} level_id
  22. * @param {number} coin_number
  23. * @param {number} actionType
  24. * @returns
  25. * @memberof StatisticsManager
  26. */
  27. public static get_collect_data(category_id: number, level_id: number, coin_number: number, ad_res:any, actionType: number): statistics_collect_rewardVideo_data_item {
  28. if(sys.platform != sys.Platform.BYTEDANCE_MINI_GAME) {
  29. return null
  30. }
  31. if(gameManager.havNoAllAd) {
  32. return null
  33. }
  34. if (actionType == config.STATISTICS_ACTION_TYPE.UNKNOWN) {
  35. log('统计失败 - 未设置统计类型')
  36. return null
  37. }
  38. let collect_data = new statistics_collect_rewardVideo_data_item()
  39. collect_data.user_id = gameManager.userInfo.id
  40. collect_data.category_id = category_id
  41. collect_data.level_id = level_id
  42. if(category_id > 0) {
  43. collect_data.level_number = gameManager.get_cur_level_by_categoryid(category_id).level
  44. }
  45. collect_data.coin = gameManager.userInfo.coin + coin_number
  46. collect_data.ads_status = ad_res.isEnded ? 1 : 0
  47. if(ad_res.isEnded==false) {
  48. if(ad_res.errorString==undefined||ad_res.errorString==null) {
  49. collect_data.ads_remarks = '未观看完视频广告'
  50. } else {
  51. collect_data.ads_remarks = ad_res.errorString
  52. }
  53. }
  54. collect_data.ads_action = actionType
  55. return collect_data
  56. }
  57. /**
  58. * 请求收集激励视频广告数据
  59. *
  60. * @param {statistics_collect_rewardVideo_data_item} data_item
  61. * @param {Function} call_back
  62. * @returns
  63. * @memberof StatisticsManager
  64. */
  65. public static request_collect_rewardVideoData(data_item: statistics_collect_rewardVideo_data_item, call_back: any = null) {
  66. if(sys.platform != sys.Platform.BYTEDANCE_MINI_GAME) {
  67. return
  68. }
  69. if(gameManager.havNoAllAd) {
  70. return
  71. }
  72. if (data_item == null) {
  73. return
  74. }
  75. if (data_item.ads_action == config.STATISTICS_ACTION_TYPE.UNKNOWN) {
  76. console.log('统计失败 - 未设置统计类型')
  77. return
  78. }
  79. // console.log('收集激励视频数据: ', data_item)
  80. let data_string = JSON.stringify(data_item)
  81. let request_data: any = null
  82. if (sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
  83. request_data = { 'adsdata': data_string }
  84. } else {
  85. let form_Data = new FormData();
  86. form_Data.append('adsdata', data_string)
  87. request_data = form_Data
  88. }
  89. http.post_statistics(config.statistics_url.rewardVideo_data, request_data, (_err, c_data) => {
  90. console.log('_err=', _err, 'c_dat=', c_data)
  91. if (call_back != null) {
  92. call_back()
  93. }
  94. })
  95. }
  96. }