user.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import Http from "../utils/http";
  2. import { host } from "../utils/constant";
  3. const userHttp = new Http(host);
  4. export function fetchProfile() {
  5. return userHttp.get("/user/me").then((res) => {
  6. res.balance = (Number(res.balance) / 100).toFixed(2);
  7. res.discountAmount = (Number(res.discountAmount) / 100).toFixed(2);
  8. res.refundableAmount = (Number(res.refundableAmount) / 100).toFixed(2);
  9. getApp<any>().globalData.user = res;
  10. return res;
  11. });
  12. }
  13. export function fetchCollectList() {
  14. if (getApp<any>().globalData.collectIds) {
  15. return Promise.resolve(getApp<any>().globalData.collectIds);
  16. }
  17. return userHttp
  18. .get<
  19. {
  20. status: number;
  21. stationId: number;
  22. }[]
  23. >("/user/collectList?page=1&page_size=999")
  24. .then((res) => {
  25. getApp<any>().globalData.collectIds = res
  26. ? res
  27. .filter((item) => Number(item.status) === 1)
  28. .map((item) => {
  29. return Number(item.stationId);
  30. })
  31. : [];
  32. return getApp<any>().globalData.collectIds;
  33. });
  34. }
  35. export function addCollectList(sid: number) {
  36. let ids = getApp<any>().globalData.collectIds
  37. ? (getApp<any>().globalData.collectIds as number[])
  38. : [];
  39. const status = ids.includes(sid) ? 0 : 1;
  40. return userHttp
  41. .post("/user/collect", {
  42. data: {
  43. stationId: sid,
  44. status,
  45. },
  46. })
  47. .then(() => {
  48. if (status === 1) {
  49. ids.push(sid);
  50. } else {
  51. ids = ids.filter((id) => id !== sid);
  52. }
  53. getApp<any>().globalData.collectIds = ids;
  54. return status === 1;
  55. });
  56. }
  57. export function updateProfile(data: any) {
  58. return userHttp.put("/user", {
  59. data,
  60. });
  61. }
  62. declare const wx: any;
  63. export function insertMoney(amount: number) {
  64. return userHttp
  65. .post("/payment/wxPay", {
  66. data: {
  67. amount: parseInt(`${amount * 100}`),
  68. openid: getApp<any>().globalData.user.openid,
  69. },
  70. })
  71. .then((res: any) => {
  72. return new Promise((resolve, reject) => {
  73. // #ifdef MP-WEIXIN
  74. wx.requestPayment({
  75. timeStamp: `${res.timeStamp}`,
  76. nonceStr: res.nonceStr,
  77. package: res.packageVal,
  78. signType: res.signType,
  79. paySign: res.paySign,
  80. success(res: any) {
  81. resolve(res);
  82. },
  83. fail: reject,
  84. });
  85. // #endif
  86. // #ifndef MP-WEIXIN
  87. reject({
  88. errMsg: "目前仅支持微信支付",
  89. });
  90. // #endif
  91. });
  92. });
  93. }
  94. export function logout() {
  95. return userHttp.get("/user/logout");
  96. }
  97. export function fetchWallet(type: number, page: number, pageSize: number) {
  98. return userHttp.get(
  99. `/account/walletDetail?page=${page}&page_size=${pageSize}&type=${type}`
  100. );
  101. }
  102. export function fetchOrder(orderid: string) {
  103. return userHttp.get(`/charge/orderDetail/${orderid}`);
  104. }
  105. export function applyRefund(reason: string) {
  106. return userHttp.get(`/payment/wxApplyRefund?reason=${reason}`);
  107. }