ShopM.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import { PayType } from "../../prefab/common/PayItems";
  2. import PayM from "../mgr/PayM";
  3. import { GoodInfo } from "./UserM";
  4. import WsM from "./WsM";
  5. export class ShopDto {
  6. public id: number;
  7. public totalSell: number;
  8. public dailyUserSell: number;
  9. public userSell: number;
  10. public userAdSell: number;
  11. public dailyUserAdSell: number;
  12. public seasonId: number;
  13. public endTimeAt: number;
  14. public freeAirdropTotal: number;
  15. public freeAirdropSell: number;
  16. }
  17. export class ShopResult {
  18. public storeId: number;
  19. public shopDtoList: ShopDto[];
  20. }
  21. export class BuyResult {
  22. public goodList: GoodInfo[];
  23. public changeList: GoodInfo[];
  24. }
  25. export default class ShopM {
  26. async shardToGamePass() {
  27. let result: BuyResult = await WsM.ins.syncRequest(21004, {});
  28. return result;
  29. }
  30. async createOrder(id: number, payType: PayType) {
  31. let currency = "USD";
  32. let result: string = await WsM.ins.syncRequest(21002, {
  33. shopId: id,
  34. currency: currency,
  35. });
  36. PayM.ins.jumpToPay(result);
  37. return result;
  38. }
  39. async buyUseAD(id: number, num: number, adPrice: number) {
  40. let result: BuyResult = await WsM.ins.syncRequest(21003, {
  41. shopId: id,
  42. num: num,
  43. ad: adPrice,
  44. });
  45. return result;
  46. }
  47. async buyUseGem(shopItemId: number, num: number, gem: number) {
  48. let result: BuyResult = await WsM.ins.syncRequest(21003, {
  49. shopId: shopItemId,
  50. num: num,
  51. diamond: gem,
  52. });
  53. return result;
  54. }
  55. private static _ins: ShopM;
  56. public static get ins(): ShopM {
  57. return (ShopM._ins ??= new ShopM());
  58. }
  59. async getShopListByStoreId(storeId: number): Promise<ShopDto[]> {
  60. let result: ShopResult = await WsM.ins.syncRequest(21001, {
  61. storeId: storeId,
  62. });
  63. if (!result) {
  64. return [];
  65. }
  66. return result.shopDtoList;
  67. }
  68. async openBox(goodId: number, num: number): Promise<BuyResult> {
  69. let result = await WsM.ins.syncRequest(21005, {
  70. goodId: goodId,
  71. num: num,
  72. });
  73. return result;
  74. }
  75. }