AdVideoModel.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // 广告模块
  2. import Gamecfg from "../../common/gameCfg";
  3. import { gameMethod } from "../../common/gameMethod";
  4. import { Kind11Success, Kind11SuccessPram, TaobaoKind11Rwd, TaobaoKind11RwdPram } from "../../common/Xyc";
  5. // import { Kind11Success, Kind11SuccessPram, Kind11Xiadan, Kind11XiadanPram } from "../../common/Xyc";
  6. import { SevBack } from "../../common/Xys";
  7. import Config from "../../Config";
  8. import UIHelp from "../../logic/ui/UIHelp";
  9. import HttpRequest from "../../network/HttpRequest";
  10. import ThinkingDataMgr from "../../utils/ThinkingDataMgr";
  11. import { AD_VIDEO_STRING, HdBanBenFuLiCard, HdPriCardKey, PlatformType } from "../const/TypeConst";
  12. import GameDataCenter from "../GameDataCenter";
  13. import IDataModel from "../../frameWork/model/IDataModel";
  14. export default class AdVideoModel extends IDataModel {
  15. // private curAd: Kind11XiadanPram
  16. private seeSuccCallback: (isSucc: boolean, sevBack?: SevBack) => void
  17. private adOrderId: string
  18. // 是否开启广告功能
  19. openAD: boolean = false
  20. constructor() {
  21. super('adVideo');
  22. }
  23. doSevback(result: SevBack): void {
  24. }
  25. setAdOpen() {
  26. // 无配置,走正常开启广告入口
  27. if (gameMethod.isEmpty(Config.adVideo)) {
  28. this.openAD = true
  29. }
  30. this.openAD = Config.adVideo == "1"
  31. }
  32. /**
  33. * 下单看广告
  34. * @param kid 标识
  35. * @param hdcid 标识
  36. * @param dc 档次ID
  37. * @param callback 看完广告的回调
  38. */
  39. sendSeeVideo(kid: string, order11Id: string, adkey: string, callback: (isSucc: boolean, sevBack?: SevBack) => void = () => { }) {
  40. this.seeSuccCallback = callback
  41. // 开始看广告
  42. this.adOrderId = order11Id
  43. // 判断是否免广告(福利宝箱不可跳过)
  44. if (this.isAdFree(adkey)) {
  45. console.warn("免广告,直接领取奖励")
  46. this.onXiadanSucc()
  47. } else {
  48. console.warn("要看广告,开始看")
  49. //数数上报
  50. let kidStr = gameMethod.isEmpty(AD_VIDEO_STRING[kid]) ? kid : AD_VIDEO_STRING[kid]
  51. let properties = {
  52. "ad_platform": "微信小游戏",
  53. "ad_id": adkey,
  54. "ad_type": "激励视频",
  55. "ad_placement_name": "home_feed",
  56. "ad_placement_id": order11Id,
  57. "current_page": kidStr,
  58. // "ad_ecpm": 0,
  59. "ad_app_name": "未知"
  60. }
  61. ThinkingDataMgr.TDTrack("ad_click", properties)
  62. GameDataCenter.plat.instance.showRewardAd(adkey, kidStr, order11Id)
  63. }
  64. }
  65. // 下单成功通知看广告
  66. onXiadanSucc() {
  67. let param: Kind11SuccessPram = {
  68. order11Id: this.adOrderId
  69. }
  70. // 通知一下
  71. this.send(Kind11Success.url, param, (result: SevBack) => {
  72. if (result.type == 1) {
  73. this.seeSuccCallback(true, result);
  74. }
  75. })
  76. }
  77. // 淘宝 下单成功通知看广告
  78. onTaoBaoXiadanSucc() {
  79. let param: TaobaoKind11RwdPram = {
  80. }
  81. // 通知一下
  82. this.send(TaobaoKind11Rwd.url, param, (result: SevBack) => {
  83. if (result.type == 1) {
  84. this.seeSuccCallback(true)
  85. }
  86. })
  87. }
  88. // 是否可以跳过广告
  89. isAdFree(adUnitId: string): boolean {
  90. if (GameDataCenter.hdPriCard.isPriCardEffect(HdPriCardKey.adver) || gameMethod.isEmpty(adUnitId)) {
  91. return true
  92. }
  93. return false
  94. }
  95. }