RankM.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { PageRank } from "../../prefab/hall/PageRank";
  2. import { BadgeDto } from "./WalletM";
  3. import WsM from "./WsM";
  4. export class RankInfoDto {
  5. rank: number;
  6. seasonId: number;
  7. rankValue: number;
  8. endTimeAt: number;
  9. badgeId: number;
  10. }
  11. export class RankDto {
  12. seasonPog: number;
  13. dailyGrantPog: number;
  14. remainPog: number;
  15. onlineTime: number;
  16. badgeList: BadgeDto[];
  17. rankInfo: RankInfoDto;
  18. }
  19. export class RankPlayerDto {
  20. rank: number;
  21. seasonId: number;
  22. rankValue: number;
  23. endTimeAt: number;
  24. userName: string;
  25. badgeId: number;
  26. }
  27. export class RankPeopleResult {
  28. rankList: RankPlayerDto[];
  29. }
  30. export default class RankM {
  31. private static _ins: RankM;
  32. public static get ins(): RankM {
  33. return (RankM._ins ??= new RankM());
  34. }
  35. async rankData(type: number): Promise<RankDto> {
  36. let protocolId = type == PageRank.RankTypeSeason ? 25001 : 25002;
  37. let result = await WsM.ins.syncRequest(protocolId, {});
  38. return result;
  39. }
  40. async rankPeoples(type: number, grade: number): Promise<RankPeopleResult> {
  41. let top = 3;
  42. let protocolId = type == PageRank.RankTypeSeason ? 25005 : 25006;
  43. let result = await WsM.ins.syncRequest(protocolId, {
  44. badgeId: grade,
  45. top: top,
  46. });
  47. // for (let i = 0; i < 10; i++) {
  48. // let mock = new RankPlayerDto();
  49. // mock.rank = result.rankList.length + 1;
  50. // mock.userName = "name" + type + "grade" + grade;
  51. // mock.rankValue = i * 53974387;
  52. // result.rankList.push(mock);
  53. // }
  54. return result;
  55. }
  56. async _rank(protocolId: number): Promise<RankDto> {
  57. let result = await WsM.ins.syncRequest(protocolId, {});
  58. return result;
  59. }
  60. }