123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- import { _decorator, Component, Node, sys } from 'cc';
- import { statistics_collect_rewardVideo_data } from '../data/data';
- import { gameManager } from './run/gameManager';
- import { http } from './http';
- import { config } from './config';
- import { SdkUtil } from './sdkUtil';
- const { ccclass, property } = _decorator;
- @ccclass('statisticsManager')
- export class statisticsManager extends Component {
- private static _instance: statisticsManager;
- public static get instance() {
- if (this._instance) {
- return this._instance;
- }
- this._instance = new statisticsManager();
- return this._instance;
- }
- /**
- * 获取收集广告数据
- *
- * @param {number} level_id
- * @param {number} actionType
- * @returns
- * @memberof StatisticsManager
- */
- public static get_collect_ads_data(level_id: number, ad_res:any, actionType=config.STATISTICS_ACTION_TYPE.UNKNOWN): statistics_collect_rewardVideo_data {
- if(gameManager.isFreeAds()) {
- return null
- }
- if(actionType == config.STATISTICS_ACTION_TYPE.UNKNOWN) {
- console.log('统计失败 - 未设置统计类型')
- return null
- }
- let collect_data = new statistics_collect_rewardVideo_data()
- collect_data.user_id = gameManager.getUserData().id
- collect_data.level_id = level_id
- collect_data.ads_status = ad_res.isEnded ? 1 : 0
- if(actionType==config.STATISTICS_ACTION_TYPE.TI_QIAN_JIE_SUO||actionType==config.STATISTICS_ACTION_TYPE.LIN_SHI_24_XIAO_SHI) {
- collect_data.ads_scene = gameManager.Singleton.getSceneCurIndex()
- } else {
- collect_data.ads_scene = gameManager.Singleton.getSceneCurIndex() + 1
- }
- if(ad_res.isEnded==false) {
- if(ad_res.errorString==undefined||ad_res.errorString==null) {
- collect_data.ads_remarks = '未观看完视频广告'
- } else {
- collect_data.ads_remarks = ad_res.errorString
- }
- }
- collect_data.ads_action = actionType
- collect_data.platform = SdkUtil.getPlatformIdentify()
- return collect_data
- }
- /**
- * 请求收集激励视频广告数据
- *
- * @param {statistics_collect_rewardVideo_data} data_item
- * @param {Function} call_back
- * @returns
- * @memberof StatisticsManager
- */
- public static request_collect_rewardVideoData(data_item: statistics_collect_rewardVideo_data, call_back: any = null) {
- if(gameManager.isFreeAds()) {
- return
- }
- if (data_item == null) {
- return
- }
- if (data_item.ads_action == config.STATISTICS_ACTION_TYPE.UNKNOWN) {
- console.log('统计失败 - 未设置统计类型')
- return
- }
- let data_string = JSON.stringify(data_item)
- // console.log(data_string)
- let request_data = { 'adsdata': data_string}
- // console.log('request_data=',request_data)
- http.statistics_post(http.statistics_ads(),request_data,(_err,c_data)=> {
- console.log('广告统计: _err=', _err, 'c_dat=', c_data)
- if (call_back != null) {
- call_back()
- }
- })
- }
- //当前上次记录用户关卡key
- private static cur_last_record_user_level_key:string = ''
- // 开始记录用户关卡
- public static startRecordUserLevel() {
- if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME){
- return
- }
- this.cur_last_record_user_level_key = ''
- }
- // 上传记录用户关卡
- public static uploadRecordUserLevel(isComplete:boolean) {
- if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME){
- return
- }
- let level_id = gameManager.Singleton.getLevelData().id
- let ads_scene = gameManager.Singleton.getSceneCurIndex() + 1
- let key = `${level_id}_${ads_scene}`
- if(key==this.cur_last_record_user_level_key) {
- // console.log('重复请求 重复请求 重复请求')
- return
- }
- let total_scene_number = gameManager.Singleton.getSceneCurTotalCount()
- let is_complete = isComplete ? 1 : 0
- let data = {'level_id':level_id,'ads_scene':ads_scene,'total_scene_number':total_scene_number,'is_complete':is_complete}
- // console.log('数据data=',data)
- let request_data = {'data':JSON.stringify(data)}
- http.run_post(http.sync_user_level(),request_data,(_err,c_data)=>{
- console.log('用户关卡: _err=', _err, 'c_dat=', c_data)
- if(_err==null) {
- this.cur_last_record_user_level_key = `${level_id}_${ads_scene}`
- }
- })
- }
- }
|