FreeBox.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { _decorator, Component, Node, utils } from 'cc';
  2. import { Http } from '../../core/net/Http';
  3. import { OpenWindow } from '../../core/ui/window/OpenWindow';
  4. import { WindowManager } from '../../core/ui/window/WindowManager';
  5. import { WindowOpenMode } from '../../core/ui/window/WindowOpenMode';
  6. import { Utils } from '../../core/utils/Utils';
  7. import { g } from '../../Data/g';
  8. import { HttpErrorCode } from '../../Data/HttpErrorCode';
  9. import { platform } from '../../Data/platform';
  10. import { User } from '../../Data/User';
  11. import { GetType } from '../GetWindow/GetType';
  12. const { ccclass, property } = _decorator;
  13. @ccclass('FreeBox')
  14. export class FreeBox extends Component {
  15. @property({ type: Http }) http: Http;
  16. // @property({ type: OpenWindow }) openWindow: OpenWindow;
  17. /**
  18. * 免费活动宝箱点击
  19. */
  20. async onFreeBoxClick() {
  21. let result = await this.http.send("/api/ad/watchVideoAD");
  22. if (result.code == 0) {
  23. platform.reportThinking("ad_init", JSON.stringify({ ad_id: "television", ad_time: Utils.formatDate(new Date()), id: g.userData.id, role_name: g.userData.nickName, level: g.userData.getLevel() }));
  24. //播放视频
  25. let adData = await g.showRewardVideo();
  26. if(adData){
  27. this.onBoxVideoOver();
  28. }else {
  29. //视频观看失败
  30. WindowManager.showTips("视频观看时间不足");
  31. }
  32. } else if (result.code == 106) {
  33. WindowManager.showTips("今日视频次数已用完,请明日再继续");
  34. } else if (result.code == HttpErrorCode.VideoADCD) {
  35. WindowManager.showTips("请求频繁,请稍后再试");
  36. } else {
  37. WindowManager.showTips("视频准备中,请稍后再试");
  38. }
  39. }
  40. /**
  41. * 当免费活动宝箱视频观看完毕
  42. */
  43. async onBoxVideoOver() {
  44. let result = await this.http.send("/api/user/getBonus", { adData: g.adData });
  45. if (result.code == 0) {
  46. platform.reportThinking("ad_end", JSON.stringify({ ad_id: "television", ad_time: Utils.formatDate(new Date()), id: g.userData.id, role_name: g.userData.nickName, level: g.userData.getLevel(), award: result.data }));
  47. platform.umUp("freeRewardAD");//免费宝箱埋点
  48. platform.reportThinking("envelope_increase", JSON.stringify({ previous_number: g.userData.bonus, increase_number: result.data, current_number: g.userData.bonus + result.data, reasons: "freeBox" }));
  49. WindowManager.open("Prefabs/GetWindow", WindowOpenMode.CloseAndAdd, [{ count: result.data, type: GetType.RedBag, needBezierEffect: true }]);
  50. } else if (result.code == 106) {
  51. WindowManager.open("Prefabs/ShareAlertWindow/ShareAlertWindow", WindowOpenMode.NotCloseAndAdd);
  52. }
  53. }
  54. }