From ef37c59e055a990ce247b265b27d3fcef430a243 Mon Sep 17 00:00:00 2001
From: 杨磊 <505174330@qq.com>
Date: 星期五, 15 八月 2025 10:19:18 +0800
Subject: [PATCH] first submit

---
 src/assets/js/middleGround/api/store.js |  534 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 534 insertions(+), 0 deletions(-)

diff --git a/src/assets/js/middleGround/api/store.js b/src/assets/js/middleGround/api/store.js
new file mode 100644
index 0000000..63e1432
--- /dev/null
+++ b/src/assets/js/middleGround/api/store.js
@@ -0,0 +1,534 @@
+import request from "@/plugin/axios";
+import { tokenKey, goodsStore } from "@/assets/js/config";
+import toolClass from "@/assets/js/toolClass";
+import {
+  handleQueryResourceListData,
+  handleDetailQueryRequestData
+} from "../tool";
+const storeApi = {
+  /*
+    **鑾峰彇鍟嗗搧鍒楄〃**
+    path: 鏁版嵁璺緞
+    storeInfo: 浠撳偍
+    channelInfo: 棰戦亾
+    subAccess: 
+    queryType: 妫�绱㈢被鍨�
+    paging: 鍒嗛〉
+    sort: 鎺掑簭
+    fields: 鑷畾涔夊瓧娈�
+  */
+  getProductList: ({
+    path = "",
+    storeInfo = goodsStore,
+    storeEventIdOrRefCode = "",
+    queryType,
+    linkType,
+    subAccess = [],
+    paging = {},
+    sort,
+    fields,
+    filterList,
+    coverSize,
+    mainProductId
+  }) => {
+    const query = {
+      AccessControl: {
+        Path: path,
+        StoreRefCode: storeInfo + "",
+        Type: queryType || "\\",
+        LinkType: linkType || ""
+      },
+      SubAccess: subAccess.length > 0 ? subAccess : [],
+      PageQuery: {
+        Start: paging.start || "0",
+        Size: paging.size || "10"
+      },
+      SortQuery:
+        sort?.length == 0
+          ? []
+          : sort
+          ? [sort]
+          : [
+              {
+                LinkOrder: "Desc"
+              }
+            ],
+      CreateDate: [],
+      Description: [],
+      Name: [],
+      Icon: [],
+      RefCode: [],
+      TypeId: [],
+      SysType: [],
+      State: [],
+      Tag: [],
+      BeginDate: [],
+      EndDate: [],
+      ProductLinkInfo: [],
+      AllowDonate: [],
+      // DonatePriceList: [],
+      StoreEvent: [],
+      SubProductCount: [],
+      SaleMethod: [],
+      SaleMethodValid: [],
+      StoreEventIdOrRefCode: storeEventIdOrRefCode,
+      ...fields,
+      ...filterList
+    };
+    if (mainProductId) {
+      query.AccessControl.MainProductId = mainProductId;
+    }
+    const body = {
+      query: JSON.stringify({
+        Query: [
+          {
+            Q1: query
+          }
+        ]
+      })
+    };
+    let token = toolClass.getCookie(tokenKey);
+    let url = token
+      ? "/store/api/ApiQueryProductByAppUser"
+      : "/store/api/ApiQueryProduct";
+    return request({
+      url: url,
+      method: "post",
+      data: body
+    }).then((resp) => {
+      if (resp.length > 0) {
+        const data = resp[0];
+        const datas = handleQueryResourceListData({
+          datas: data.datas,
+          fields,
+          path,
+          storeInfo,
+          coverSize
+        });
+        return {
+          datas,
+          total: data.totalCount,
+          extraInfos: data.extraInfos?.StoreEvent
+        };
+      }
+      return {
+        datas: [],
+        total: 0
+      };
+    });
+  },
+  /*
+    **鑾峰彇鍟嗗搧璇︽儏**
+    path: 鏁版嵁璺緞
+    storeInfo: 浠撳偍
+    channelInfo: 棰戦亾
+    subAccess: 
+    fields: 鑷畾涔夊瓧娈�
+    productId: 鍟嗗搧ID
+    cmsPath锛歝msPath
+  */
+  getProductDetail: ({
+    path = "",
+    storeInfo = goodsStore,
+    channelInfo = "",
+    queryType,
+    subAccess = [],
+    fields,
+    productId,
+    cmsPath,
+    coverSize,
+    itemId,
+    itemFields,
+    linkTypes
+  }) => {
+    const subQuery = {};
+    if (cmsPath) {
+      subQuery["QueryCms"] = {
+        Path: cmsPath + "",
+        Type: "\\",
+        Name: [],
+        Icon: [],
+        TypeId: [],
+        PageQuery: {
+          Start: 0,
+          Size: 100
+        },
+        ProductLinkInfo: [],
+        ...itemFields
+      };
+      if (itemId) subQuery["QueryCms"]["Id="] = [`${itemId}`];
+    }
+    // 鑾峰彇鍏宠仈璧勬簮
+    let linkFields = {};
+    if (linkTypes && linkTypes.length) {
+      for (let i = 0; i < linkTypes.length; i++) {
+        const linkType = linkTypes[i];
+        subQuery["QueryLink_" + linkType.linkType] = {
+          Path: cmsPath + "",
+          Type: "\\",
+          Name: [],
+          Icon: [],
+          TypeId: [],
+          LinkTypes: [linkType.linkType],
+          PageQuery: {
+            Start: 0,
+            Size: 100
+          },
+          ProductLinkInfo: [],
+          ...linkType.fields
+        };
+        linkFields = {
+          ...linkFields,
+          ...linkType.fields
+        };
+      }
+    }
+    const query = {
+      AccessControl: {
+        Path: path,
+        StoreRefCode: storeInfo + "",
+        ChannelRefCode: channelInfo + "",
+        Type: queryType || "\\"
+      },
+      SubAccess: subAccess.length > 0 ? subAccess : [],
+      PageQuery: {
+        Start: "0",
+        Size: "1"
+      },
+      "Id=": [`${productId}`],
+      SortQuery: [],
+      CreateDate: [],
+      Description: [],
+      Name: [],
+      Icon: [],
+      RefCode: [],
+      TypeId: [],
+      SysType: [],
+      State: [],
+      Tag: [],
+      BeginDate: [],
+      EndDate: [],
+      ProductLinkInfo: [],
+      AllowDonate: [],
+      DonatePriceList: [],
+      StoreEvent: [],
+      SaleMethod: [],
+      SaleMethodValid: [],
+      ProductCmsQuery: [subQuery],
+      ...fields
+    };
+    if (productId) query["Id="] = [`${productId}`];
+
+    const body = {
+      query: JSON.stringify({
+        Query: [
+          {
+            Q1: query
+          }
+        ]
+      })
+    };
+    let token = toolClass.getCookie(tokenKey);
+    let url = token
+      ? "/store/api/ApiQueryProductByAppUser"
+      : "/store/api/ApiQueryProduct";
+    return request({
+      url: url,
+      method: "post",
+      data: body
+    }).then((resp) => {
+      if (resp.length > 0) {
+        const data = resp[0];
+        if (data.datas.length) {
+          data.datas[0].subDatas = data.datas[0].cmsDatas;
+          const datas = handleDetailQueryRequestData({
+            item: data.datas[0],
+            fields,
+            itemFields: {
+              ...itemFields,
+              ...linkFields
+            },
+            path,
+            coverSize
+          });
+          return {
+            datas,
+            total: data.totalCount
+          };
+        } else {
+          return {
+            datas: [],
+            total: 0
+          };
+        }
+      }
+      return {
+        datas: [],
+        total: 0
+      };
+    });
+  },
+
+  // 鑾峰彇浼樻儬鍒稿垪琛�
+  getChannelPromoteCodeList(data) {
+    return request({
+      url: "/store/api/ApiGetChannelPromoteCodeList",
+      method: "post",
+      data
+    });
+  },
+
+  // 鑾峰彇鐢ㄦ埛宸查鍙栫殑浼樻儬鍒稿垪琛�
+  getPromoteCodeList(data) {
+    return request({
+      url: "/store/api/ApiGetPromoteCodeList",
+      method: "post",
+      data
+    });
+  },
+
+  // 鑾峰彇鐢ㄦ埛娴忚鎺掕
+  getProductViewRank(data) {
+    return request({
+      url: "/store/api/ApiGetProductViewRank",
+      method: "post",
+      data
+    });
+  },
+
+  // 鑾峰彇鐢ㄦ埛閿�鍞帓琛�
+  getProductSaleRank(data) {
+    return request({
+      url: "/store/api/ApiGetProductSaleRank",
+      method: "post",
+      data
+    });
+  },
+
+  // 鑾峰彇鍟嗗搧鍙敤浼樻儬鍒�
+  getProductPromoteCodeList(data) {
+    return request({
+      url: "/store/api/ApiGetProductPromoteCodeList",
+      method: "post",
+      data
+    });
+  },
+
+  // 鑾峰彇璁㈠崟鍙敤浼樻儬鍒�
+  getOrderPromoteCodeList(data) {
+    return request({
+      url: "/store/api/GetOrderPromoteCodeList",
+      method: "post",
+      data
+    });
+  },
+
+  // 鑾峰彇閿�鍞柟寮忓彲鐢ㄤ紭鎯犲埜
+  getSaleMethodPromoteCodeList(data) {
+    return request({
+      url: "/store/api/GetSaleMethodPromoteCodeList",
+      method: "post",
+      data
+    });
+  },
+
+  // 棰嗗彇浼樻儬鍗�
+  getPromoteCode(data) {
+    return request({
+      url: "/store/api/ApiGetPromoteCode",
+      method: "post",
+      data
+    });
+  },
+
+  // 涓鸿鍗曚娇鐢ㄤ紭鎯犲埜
+  updateOrderPromoteCode(data) {
+    return request({
+      url: "/store/api/UpdateOrderPromoteCode",
+      method: "post",
+      data
+    });
+  },
+
+  // 涓洪攢鍞柟寮忎娇鐢ㄤ紭鎯犲埜
+  updateSaleMethodPromoteCode(data) {
+    return request({
+      url: "/store/api/UpdateSaleMethodPromoteCode",
+      method: "post",
+      data
+    });
+  },
+
+  // 閫氳繃璁㈠崟鍙疯幏鍙栬鍗�
+  getOrderByOrderNum(data) {
+    return request({
+      url: "/store/api/GetOrderByOrderNum",
+      method: "post",
+      data
+    });
+  },
+
+  // 鍒涘缓璁㈠崟
+  initOrder(data) {
+    return request({
+      url: "/store/api/InitOrder",
+      method: "post",
+      data
+    });
+  },
+
+  // 纭璁㈠崟
+  confirmOrder(data) {
+    return request({
+      url: "/store/api/ConfirmOrder",
+      method: "post",
+      data
+    });
+  },
+
+  // 鍙栨秷璁㈠崟
+  cancelOrder(data) {
+    return request({
+      url: "/store/api/CancelOrder",
+      method: "post",
+      data
+    });
+  },
+
+  // 璧炶祻
+  CreateDonateOrder(data) {
+    return request({
+      url: "/store/api/CreateDonateOrder",
+      method: "post",
+      data
+    });
+  },
+
+  //鑾峰彇鐢ㄦ埛璁㈠崟鍒楄〃
+  getUserOrderList(data) {
+    return request({
+      url: "/store/api/GetUserOrderList",
+      method: "post",
+      data
+    });
+  },
+
+  //鑾峰彇棰戦亾涓嬬殑鍒楄〃
+  getStoreChannelList(data) {
+    return request({
+      url: "/store/api/ApiGetStoreChannelList",
+      method: "post",
+      data
+    });
+  },
+
+  //鑾峰彇璐墿杞�
+  getShoppingCartProductList(data) {
+    return request({
+      url: "/store/api/ApiGetShoppingCartProductList",
+      method: "post",
+      data
+    });
+  },
+
+  //娣诲姞鍒拌喘鐗╄溅
+  addShoppingCart(data) {
+    return request({
+      url: "/store/api/ApiAddShoppingCart",
+      method: "post",
+      data
+    });
+  },
+
+  //璐墿杞﹀垹闄ゅ晢鍝�
+  delShoppingCart(data) {
+    return request({
+      url: "/store/api/ApiDelShoppingCart",
+      method: "post",
+      data
+    });
+  },
+
+  //浠庤喘鐗╄溅鍒涘缓璁㈠崟
+  shoppingCartCreateOrder(data) {
+    return request({
+      url: "/store/api/ApiShoppingCartCreateOrder",
+      method: "post",
+      data
+    });
+  },
+
+  //鑾峰彇宸茶喘涔扮殑鍟嗗搧鍒楄〃
+  getPurchasedProductList(data) {
+    return request({
+      url: "/store/api/ApiGetPurchasedProductList",
+      method: "post",
+      data
+    });
+  },
+
+  //璋冨彇寰俊鏀粯
+  makeWeChatPay(data) {
+    return request({
+      url: "/store/api/MakeWeChatPay",
+      method: "post",
+      data
+    });
+  },
+
+  //璋冨彇寰俊浜岀淮鐮佹敮浠�
+  makeWeChatQrPay(data) {
+    return request({
+      url: "/store/api/MakeWeChatQrPay",
+      method: "post",
+      data
+    });
+  },
+
+  // 鑾峰彇婵�娲荤爜璇︽儏
+  getActiveCode(data) {
+    return request({
+      url: "/store/api/ApiGetActiveCode",
+      method: "post",
+      data
+    });
+  },
+
+  // 浣跨敤婵�娲荤爜
+  userActiveCode(data) {
+    return request({
+      url: "/store/api/ApiUseActiveCode",
+      method: "post",
+      data
+    });
+  },
+
+  // 鍟嗗搧鏌ヨ绫诲瀷瀛楁鎺ュ彛
+  getProductTypeField(data) {
+    return request({
+      url: "/store/api/ApiGetProductTypeField",
+      method: "post",
+      data
+    });
+  },
+
+  // 鍙栨秷鏀惰棌鎴栫Щ闄や功鏋�
+  delProductLink(data) {
+    return request({
+      url: "/store/api/ApiDelProductLink",
+      method: "post",
+      data
+    });
+  },
+
+  //鏀惰棌鍟嗗搧
+  productLink(data) {
+    return request({
+      url: "/store/api/ApiAddProductLink",
+      method: "post",
+      data
+    });
+  }
+};
+
+export default storeApi;

--
Gitblit v1.9.1