Browse Source

api HomepageApiController

zrug 7 tháng trước cách đây
mục cha
commit
2233b0b16f
3 tập tin đã thay đổi với 298 bổ sung0 xóa
  1. 6 0
      08.src/Xingxi-mp/config.js
  2. 222 0
      08.src/Xingxi-mp/service/api.js
  3. 70 0
      08.src/Xingxi-mp/utils/http.js

+ 6 - 0
08.src/Xingxi-mp/config.js

@@ -0,0 +1,6 @@
+export const baseUrl = "https://接口地址"; // 服务器地址
+// export const baseUrl = "http://测试接口地址"; // 测试服务器地址
+
+// export const ossHost = "https://res.zrug.top";
+export const version = "0.0.1"; // 版本号
+export const version_desc = "接口基础";

+ 222 - 0
08.src/Xingxi-mp/service/api.js

@@ -0,0 +1,222 @@
+import http from "../utils/http";
+
+// 服务器存活检测接口,返回200表示存活,否则表示不存活
+export const Ping = {
+  get: function () {
+    return http.get("/api/alive/ping");
+  },
+  post: function (data) {
+    return http.post("/api/alive/ping", data);
+  },
+}
+
+// 小程序体量限制1M,图片必须放在外部cdn上
+// 七牛云存储,获取token
+export const Qiniu = {
+  token: function () {
+    // TODO: get token from app first, if expired, request new
+    return http.post("/qiniu/token");
+  },
+}
+
+// HomepageApiController
+export const HomepageApi = {
+  /** 
+   * 返回示例:{
+    "bannerList": [
+      {
+        "createUser": "",
+        "createTime": "",
+        "updateUser": "",
+        "updateTime": "",
+        "remark": "",
+        "params": {
+          "": {}
+        },
+        "bannerId": 0,
+        "bannerUrl": "",
+        "bannerType": "",
+        "prodId": 0,
+        "newsId": 0,
+        "sort": 0,
+        "delFlag": ""
+      }
+    ]
+  }
+  */
+  getBanners: function (payload) {
+    return http.post("/api/store/homepage/banners", {
+      ...payload,
+    });
+  },
+
+  /**
+   * 返回示例:{
+    "ipInfoList": [
+      {
+        "createUser": "",
+        "createTime": "",
+        "updateUser": "",
+        "updateTime": "",
+        "remark": "",
+        "params": {
+          "": {}
+        },
+        "ipId": 0,
+        "ipName": "",
+        "ipUrl": "",
+        "colorNo": "",
+        "sort": 0,
+        "delFlag": ""
+      }
+    ]
+  }
+  */
+  getIpInfos: function (payload) {
+    return http.post("/api/store/homepage/ipInfos", {
+      ...payload,
+    });
+  },
+
+  /**
+   * 返回示例:{
+    "titleList": [
+      ""
+    ]
+  }
+  */
+  getTitles: function (payload) {
+    return http.post("/api/store/homepage/titles", {
+      ...payload,
+    });
+  },
+
+  /**
+   * 返回示例:{
+    "prodList": [
+      {
+        "id": 0,
+        "prodId": 0,
+        "sort": 0,
+        "prodPicList": [
+          {
+            "createUser": "",
+            "createTime": "",
+            "updateUser": "",
+            "updateTime": "",
+            "remark": "",
+            "params": {
+              "": {}
+            },
+            "id": 0,
+            "prodId": 0,
+            "picUrl": "",
+            "sort": 0,
+            "delFlag": ""
+          }
+        ]
+      }
+    ]
+  }
+  */
+  getLeftProds: function (payload) {
+    return http.post("/api/store/homepage/leftProds", {
+      ...payload,
+    });
+  },
+
+  /**
+   * 返回示例:{
+    "prodList": [
+      {
+        "id": 0,
+        "prodId": 0,
+        "sort": 0,
+        "prodPicList": [
+          {
+            "createUser": "",
+            "createTime": "",
+            "updateUser": "",
+            "updateTime": "",
+            "remark": "",
+            "params": {
+              "": {}
+            },
+            "id": 0,
+            "prodId": 0,
+            "picUrl": "",
+            "sort": 0,
+            "delFlag": ""
+          }
+        ]
+      }
+    ]
+  }
+  */
+  getMiddleProds: function (payload) {
+    return http.post("/api/store/homepage/middleProds", {
+      ...payload,
+    });
+  },
+
+  /**
+   * 返回示例:{
+    "prodList": [
+      {
+        "id": 0,
+        "prodId": 0,
+        "sort": 0,
+        "prodPicList": [
+          {
+            "createUser": "",
+            "createTime": "",
+            "updateUser": "",
+            "updateTime": "",
+            "remark": "",
+            "params": {
+              "": {}
+            },
+            "id": 0,
+            "prodId": 0,
+            "picUrl": "",
+            "sort": 0,
+            "delFlag": ""
+          }
+        ]
+      }
+    ]
+  }
+  */
+  getRightProds: function (payload) {
+    return http.post("/api/store/homepage/rightProds", {
+      ...payload,
+    });
+  },
+
+  /**
+   * 返回示例:{
+    "prodClassList": [
+      {
+        "createUser": "",
+        "createTime": "",
+        "updateUser": "",
+        "updateTime": "",
+        "remark": "",
+        "params": {
+          "": {}
+        },
+        "prodClassId": 0,
+        "className": "",
+        "classUrl": "",
+        "sort": 0,
+        "delFlag": ""
+      }
+    ]
+  }
+  */
+  getProdClasses: function (payload) {
+    return http.post("/api/store/homepage/prodClasses", {
+      ...payload,
+    });
+  },
+}

+ 70 - 0
08.src/Xingxi-mp/utils/http.js

@@ -0,0 +1,70 @@
+import { baseUrl } from "../config";
+
+function getHeader() {
+  if (wx.getStorageSync("token")) {
+    return {
+      "content-type": "application/json",
+      "x-token": wx.getStorageSync("token"),
+    };
+  }
+  return {
+    "content-type": "application/json",
+  };
+}
+
+function showErrToast(e) {
+  wx.showToast({
+    title: typeof e === "string" ? e : e.errMsg || e.toString(),
+    icon: "none",
+    duration: 1500,
+  });
+}
+
+function getPromise(url, data, method) {
+  return new Promise((resolve, reject) => {
+    wx.request({
+      url: `${baseUrl}${url}`,
+      header: getHeader(),
+      method: method,
+      data: data,
+      success: function (res) {
+        if (res.data.code === 200) {
+          resolve(res.data.data);
+        } else {
+          if (res.statusCode === 401) {
+            reject(401);
+          } else {
+            reject(res.data.message);
+          }
+        }
+      },
+      fail: function (err) {
+        reject(err);
+      },
+    });
+  }).catch((e) => {
+    if (401 === e) {
+      // redirect to login page
+      wx.navigateTo({
+        url: "/pages/login/login",
+      });
+    } else {
+      console.error(`in promise error, url: ${baseUrl}${url}`);
+      console.error(e);
+      if (e) {
+        showErrToast(e);
+      }
+    }
+  });
+}
+
+const http = {
+  get: function (url, data) {
+    return getPromise(url, data, "GET");
+  },
+  post: function (url, data) {
+    return getPromise(url, data, "POST");
+  },
+};
+
+export default http;