“实现帖子与评论上传图片,删除评论,评论计数,管理员界面”
Change-Id: I33d5331e41de0411f2d6f1913f3a939db61f665d
diff --git a/src/api/administer.js b/src/api/administer.js
new file mode 100644
index 0000000..5f28e45
--- /dev/null
+++ b/src/api/administer.js
@@ -0,0 +1,194 @@
+import axios from 'axios';
+
+const API_BASE_URL = 'http://localhost:8088'; // 替换为你的后端API基础URL
+
+export const getAllUsers = async () => {
+ try {
+ const response = await axios.get(`${API_BASE_URL}/user/allUser`, {
+ headers: {
+ Authorization: localStorage.getItem('token')
+ }
+ });
+
+ console.log("API Response:", response.data); // 打印完整响应
+
+ if (response.data && response.data.code === 200) {
+ // 修正这里:response.data.data.data 才是用户数组
+ const data = response.data.data.data;
+ return Array.isArray(data) ? data : [data];
+ } else {
+ throw new Error(response.data?.message || "未知错误");
+ }
+ } catch (error) {
+ console.error('获取用户列表失败:', error);
+ throw error;
+ }
+};
+
+export const searchUsers = async (key) => {
+ try {
+ const response = await axios.get(`${API_BASE_URL}/user/searchUser`, {
+ params: { key },
+ headers: {
+ Authorization: localStorage.getItem('token')
+ }
+ });
+
+ if (response.data?.code === 200) {
+ // 提取正确的用户数组:response.data.data.data
+ const users = response.data.data.data;
+ return Array.isArray(users) ? users : [users];
+ } else {
+ throw new Error(response.data?.message || "搜索失败");
+ }
+ } catch (error) {
+ console.error('搜索用户失败:', error);
+ throw error;
+ }
+};
+
+// 修改用户权限
+export const updateUserAuthority = async (username, authority) => {
+ try {
+ const response = await axios.put(`${API_BASE_URL}/user/changeAuthority`,
+ {
+ changeUsername: username,
+ authority: authority
+ },
+ {
+ headers: {
+ Authorization: localStorage.getItem('token')
+ }
+ }
+ );
+ return response.data;
+ } catch (error) {
+ console.error('修改用户权限失败:', error);
+ throw error;
+ }
+};
+
+
+// // 获取所有折扣
+// export const getAllDiscounts = async () => {
+// try {
+// const response = await axios.get(`${API_BASE_URL}/discount/all`, {
+// headers: {
+// Authorization: localStorage.getItem('token')
+// }
+// });
+
+// if (response.data && response.data.code === 200) {
+// // 确保返回的是数组格式
+// const data = response.data.data.data || response.data.data;
+// return Array.isArray(data) ? data : [data];
+// } else {
+// throw new Error(response.data?.message || "获取折扣信息失败");
+// }
+// } catch (error) {
+// console.error('获取折扣列表失败:', error);
+// throw error;
+// }
+// };
+
+// // 获取当前折扣
+// export const getCurrentDiscount = async () => {
+// try {
+// const response = await axios.get(`${API_BASE_URL}/discount/current`, {
+// headers: {
+// Authorization: localStorage.getItem('token')
+// }
+// });
+
+// if (response.data && response.data.code === 200) {
+// return response.data.data.data || response.data.data;
+// } else {
+// throw new Error(response.data?.message || "获取当前折扣失败");
+// }
+// } catch (error) {
+// console.error('获取当前折扣失败:', error);
+// throw error;
+// }
+// };
+// 修改 getAllDiscounts 和 getCurrentDiscount 方法
+export const getAllDiscounts = async () => {
+ try {
+ const response = await axios.get(`${API_BASE_URL}/discount/all`, {
+ headers: {
+ Authorization: localStorage.getItem('token')
+ }
+ });
+
+ if (response.data && response.data.code === 200) {
+ // 更健壮的数据提取方式
+ return response.data.data?.data || response.data.data || [];
+ } else {
+ throw new Error(response.data?.message || "获取折扣信息失败");
+ }
+ } catch (error) {
+ console.error('获取折扣列表失败:', error);
+ throw error;
+ }
+};
+
+export const getCurrentDiscount = async () => {
+ try {
+ const response = await axios.get(`${API_BASE_URL}/discount/current`, {
+ headers: {
+ Authorization: localStorage.getItem('token')
+ }
+ });
+
+ if (response.data && response.data.code === 200) {
+ // 更健壮的数据提取方式
+ return response.data.data?.data || response.data.data || null;
+ } else if (response.data?.message === "目前没有进行中的折扣") {
+ return null;
+ } else {
+ throw new Error(response.data?.message || "获取当前折扣失败");
+ }
+ } catch (error) {
+ console.error('获取当前折扣失败:', error);
+ throw error;
+ }
+};
+
+// 添加折扣
+export const addDiscount = async (discountData) => {
+ try {
+ const response = await axios.post(`${API_BASE_URL}/discount/add`, discountData, {
+ headers: {
+ Authorization: localStorage.getItem('token')
+ }
+ });
+
+ if (response.data && response.data.code === 200) {
+ return response.data.data.data || response.data.data;
+ } else {
+ throw new Error(response.data?.message || "添加折扣失败");
+ }
+ } catch (error) {
+ console.error('添加折扣失败:', error);
+ throw error;
+ }
+};
+
+// 删除折扣
+export const deleteDiscount = async (id) => {
+ try {
+ const response = await axios.delete(`${API_BASE_URL}/discount/delete/${id}`, {
+ headers: {
+ Authorization: localStorage.getItem('token')
+ }
+ });
+
+ if (response.data && response.data.code === 200) {
+ return true;
+ } else {
+ throw new Error(response.data?.message || "删除折扣失败");
+ }
+ } catch (error) {
+ console.error('删除折扣失败:', error);
+ throw error;
+ }
+};
\ No newline at end of file