GodTower.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import { _decorator, Component, Node, Label } from 'cc';
  2. import { Data } from '../core/data/Data';
  3. import { DataSystem } from '../core/data/DataSystem';
  4. import { Http, HttpResponseCode } from '../core/net/Http';
  5. import { WindowSystem } from '../core/ui/window/WindowSystem';
  6. import { platform } from '../data/jsb/platform';
  7. import { UserData } from '../data/UserData';
  8. import { RedPointData } from '../main/RedPointData';
  9. import { ReportThinking } from '../ReportThinking';
  10. import { GodTowerData } from './GodTowerData';
  11. const { ccclass, property, requireComponent } = _decorator;
  12. @ccclass('GodTower')
  13. @requireComponent(Http)
  14. export class GodTower extends Component {
  15. @property({ type: [Node], tooltip: "好友子节组" })
  16. roleGroup: Node[] = [];
  17. @property({ type: Label, tooltip: "贡献文本" })
  18. contributionLabel: Label;
  19. @property({ type: Label, tooltip: "可提现文本" })
  20. cashLabel: Label;
  21. private userData: UserData;
  22. private infoData: GodTowerData;
  23. async start() {
  24. this.userData = DataSystem.getData(UserData);
  25. this.infoData = DataSystem.getData(GodTowerData);
  26. let result = await this.getComponent(Http).send("/api/fission/GetFission");
  27. if (result && result.code == HttpResponseCode.Success) {
  28. this.infoData.parentUin = result.data.memberDatas.parentUin;
  29. this.infoData.parentAvatar = result.data.memberDatas.parentAvatar;
  30. this.infoData.parentNickname = result.data.memberDatas.parentNickname;
  31. for (let i = 1; i < 6; i++) {
  32. this.infoData[`g${i}Members`] = result.data.memberDatas[`g${i}Members`];
  33. }
  34. }
  35. else {
  36. WindowSystem.showTips('获取神台数据失败');
  37. }
  38. this.setContributino();
  39. }
  40. update() {
  41. DataSystem.watch(this.userData, 'contribution') && this.setContributino();
  42. }
  43. private setContributino() {
  44. this.contributionLabel.string = this.userData.contribution + '';
  45. this.cashLabel.string = '约' + (this.userData.contribution / 10000).toFixed(3) + '元';
  46. DataSystem.getData(RedPointData).checkFission = this.getAllRevenueAmount();
  47. }
  48. /**一键领取 */
  49. public async onGetButton() {
  50. if (this.getAllRevenueAmount()) {
  51. let result = await this.getComponent(Http).send("/api/fission/ReceiveFission", { receiveUserID: 0 });
  52. if (result && result.code == HttpResponseCode.Success) {
  53. ReportThinking.invite_get(this.userData.contribution + result.data.addTotalContribution);
  54. this.userData.contribution += result.data.addTotalContribution;
  55. WindowSystem.showTips('贡献领取成功');
  56. this.clearRevenue();
  57. }
  58. } else {
  59. WindowSystem.showTips("当前没有贡献可领取!");
  60. }
  61. }
  62. //邀请
  63. public async onInvite() {
  64. let result = await this.getComponent(Http).send("/api/app/share", {});
  65. if (result && result.code == HttpResponseCode.Success) {
  66. ReportThinking.invite();
  67. platform.wxShare(result.data.url, result.data.title, result.data.descroption);
  68. } else {
  69. WindowSystem.showTips("分享信息获取失败,请稍后再试");
  70. }
  71. }
  72. /**判断当前是否可领取贡献 红点用*/
  73. public getAllRevenueAmount() {
  74. if (this.infoData) {
  75. for (let i = 1; i < 6; i++) {
  76. let members = this.infoData[`g${i}Members`];
  77. for (let j = 0; j < members.length; j++) {
  78. if (members[j].revenueAmount > 0) {
  79. return true;
  80. }
  81. }
  82. }
  83. }
  84. return false;
  85. }
  86. /**一键领取贡献更新本地贡献数据 */
  87. public clearRevenue() {
  88. for (let i = 1; i < 6; i++) {
  89. let members = this.infoData[`g${i}Members`];
  90. for (let j = 0; j < members.length; j++) {
  91. if (members[j].revenueAmount) {
  92. members[j].revenueAmount = 0;
  93. }
  94. }
  95. this.infoData[`g${i}Members`] = members;
  96. }
  97. }
  98. }