个人中心全部,模糊乱序搜索,类型筛选

Change-Id: Id635654fccccaea80bfbf4d1480abd55f7d12046
diff --git a/src/api/personal.js b/src/api/personal.js
new file mode 100644
index 0000000..949afb4
--- /dev/null
+++ b/src/api/personal.js
@@ -0,0 +1,181 @@
+// src/api/personal.js

+import { api } from './auth';

+

+/**

+ * 获取用户信息

+ * @returns {Promise<Object>} 用户信息对象

+ */

+export const getUserInfo = async () => {

+  try {

+    const response = await api.get('/user/userInfo');

+    if (response.data.code === 200) {

+        const userData = response.data.data;

+        return {

+            username: userData.username,

+            level: userData.level,

+            registTime: formatDate(userData.registTime),

+            magicPoints: userData.magicPoints,

+            upload: userData.upload, 

+            download: userData.download, 

+            shareRate: userData.shareRate.toFixed(2)

+        };

+    }

+    throw new Error(response.data.message || '获取用户信息失败');

+  } catch (error) {

+    console.error('获取用户信息失败:', error);

+    throw error;

+  }

+};

+

+export const formatFileSize = (bytes) => {

+    if (bytes < 1024) {

+      return bytes + ' B';

+    }

+    const kb = bytes / 1024;

+    if (kb < 1024) {

+      return kb.toFixed(2) + ' KB';

+    }

+    const mb = kb / 1024;

+    if (mb < 1024) {

+      return mb.toFixed(2) + ' MB';

+    }

+    const gb = mb / 1024;

+    return gb.toFixed(2) + ' GB';

+  };

+  

+  

+  export const getDownloadQuota = async () => {

+    try {

+      const response = await api.get('/user/allowDownload');

+      if (response.data.code === 200) {

+        const data = response.data.data;

+        return {

+          total: data.total,  // 已经是字节

+          used: data.used,

+          remaining: data.remaining

+        };

+      }

+      throw new Error(response.data.message || '获取下载额度失败');

+    } catch (error) {

+      console.error('获取下载额度失败:', error);

+      throw error;

+    }

+  };

+

+// 修正后的时间格式化(正确处理时区)

+const formatDate = (dateString) => {

+    const date = new Date(dateString);

+    const year = date.getFullYear();

+    const month = String(date.getMonth() + 1).padStart(2, '0');

+    const day = String(date.getDate()).padStart(2, '0');

+    return `${year}-${month}-${day}`;

+  };

+

+

+  export const getDownloadProgress = async () => {

+    try {

+      const response = await api.get('/torrent/getProgress');

+      if (response.data.code === 200) {

+        return response.data.data.progresses;

+      }

+      throw new Error(response.data.message || '获取下载进度失败');

+    } catch (error) {

+      console.error('获取下载进度失败:', error);

+      throw error;

+    }

+  };

+

+  export const getUserTorrents = async (page = 1, size = 5) => {

+    try {

+      const response = await api.get('/torrent/get/torrentMyself', {

+        params: { page, size }

+      });

+      if (response.data.code === 200) {

+        const records = response.data.data.records.map(item => ({

+          ...item.torrent,

+          downloadCount: item.downloadCount,

+          formattedSize: item.formattedSize

+        }));

+        return {

+          records: records,

+          total: response.data.data.total

+        };

+      }

+      throw new Error(response.data.message || '获取上传记录失败');

+    } catch (error) {

+      console.error('获取上传记录失败:', error);

+      throw error;

+    }

+  };

+  

+

+  export const deleteTorrent = async (id) => {

+    try {

+      const response = await api.delete(`/torrent/deleteTorrent/${id}`);

+      if (response.data.code === 200) {

+        return response.data;

+      }

+      throw new Error(response.data.message || '删除种子失败');

+    } catch (error) {

+      console.error('删除种子失败:', error);

+      throw error;

+    }

+  };

+

+

+  export const generateInviteCode = async () => {

+    try {

+      const response = await api.post('/invitecode/generate');

+      if (response.data.code === 200) {

+        return response.data.data.inviteCode;

+      }

+      throw new Error(response.data.message || '生成邀请码失败');

+    } catch (error) {

+      console.error('生成邀请码失败:', error);

+      throw error;

+    }

+  };

+

+  export const getUserInviteCodes = async () => {

+    try {

+      const response = await api.get('/invitecode/userInviteCode');

+      if (response.data.code === 200) {

+        return response.data.data.inviteCode;

+      }

+      throw new Error(response.data.message || '获取邀请码列表失败');

+    } catch (error) {

+      console.error('获取邀请码列表失败:', error);

+      throw error;

+    }

+  };

+

+  export const exchangeUpload = async (magicPoints) => {

+    try {

+      const response = await api.post('/user/exchangeUpload', {

+        magicPoint: magicPoints

+      });

+      if (response.data.code === 200) {

+        return response.data;

+      }

+      throw new Error(response.data.message || '兑换上传量失败');

+    } catch (error) {

+      console.error('兑换上传量失败:', error);

+      throw error;

+    }

+  };

+

+  export const updatePassword = async (oldPassword, newPassword) => {

+    try {

+      const response = await api.put('/user/password', {

+        oldPassword,

+        newPassword

+      });

+      if (response.data.code === 200) {

+        return response.data;

+      }

+      throw new Error(response.data.message || '修改密码失败');

+    } catch (error) {

+      console.error('修改密码失败:', error);

+      throw error;

+    }

+  };