From 0b9f190e5df708761642d9a688d251515c68a16f Mon Sep 17 00:00:00 2001
From: QYF-GitLab1 <1940665526@qq.com>
Date: 星期四, 31 七月 2025 11:18:20 +0800
Subject: [PATCH] 优化资源查看逻辑

---
 packageDomain/pages/resourceDetails/document/index.js                 |   43 ++++------
 packageBookService/pages/bookServices/detail/buyResource/index.js     |   16 ---
 packageBookService/pages/bookServices/detail/components/tree/index.js |  106 ++++++--------------------
 packageBookService/pages/bookServices/detail/index.js                 |   52 ++++--------
 packageCourse/pages/teachClass/detail/index.js                        |    1 
 5 files changed, 62 insertions(+), 156 deletions(-)

diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js
index 423f6e6..d1586c8 100644
--- a/packageBookService/pages/bookServices/detail/buyResource/index.js
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.js
@@ -222,20 +222,6 @@
             // const index = data.findIndex(i => i.id == parent.id)
             parent.isShowIcon = true
           }
-          //  else {
-          //   // 鐖剁骇娌℃湁閿�鍞柟寮忥紝鏌ユ壘璇ヨ祫婧愮埗绾�
-          //   const arr = parent.productLinkPath.split('\\')
-          //   const linkData = arr[arr.length - 1] // arr[arr.length - 1] 鎺掗櫎鑷繁
-          //   linkData.reverse()
-          //   const dataList = linkData.map(ritem => {
-          //     const parentData = data.find(citem => citem.id == ritem);
-          //     if (parentData) return parentData;
-          //   })
-          //   if (dataList?.length > 0) {
-          //     const index = data.findIndex(i => i.id == dataList[0].id)
-          //     data[index].isShowIcon = true
-          //   }
-          // }
         } else {
           item.isShowIcon = true
         }
@@ -598,7 +584,7 @@
   // 鍗曚釜鍕鹃�夋柟娉�
   checkResoucrceInfo(tree, id) {
     function findAndUpdate(node) {
-      if (node.sysType == "CmsFolder" && node.children.length > 0) {
+      if (node.sysType == "CmsFolder" && node.children?.length > 0) {
         for (let index = 0; index < node.children.length; index++) {
           const element = node.children[index];
           findAndUpdate(element);
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.js b/packageBookService/pages/bookServices/detail/components/tree/index.js
index 509c3a9..8b6a3ec 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.js
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.js
@@ -162,62 +162,6 @@
       }; // 瑙﹀彂浜嬩欢鐨勯�夐」
       this.triggerEvent("downloadTeach", myEventDetail, myEventOption);
     },
-    // 鍒ゆ柇璧勬簮鏄惁璐拱
-    resourceIsBuy(data) {
-      if (data.saleMethod && data.saleMethod.length) {
-        const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
-        if (saleData.State == 'Disable') return false
-        const isSHow = this.properties.buyIds.some(
-          (item) => item == saleData.Id
-        );
-        // 宸茬粡璐拱
-        if (isShow) return false
-        // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈�
-        if (!isShow) {
-          const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
-            new Date(saleData.BeginDate).getTime() <= new Date().getTime()
-          if (flag) {
-            // 涓鸿繃鏈� 锛岄渶瑕佽喘涔�
-            return true
-          } else {
-            // 宸茶繃鏈� 鏃犻渶璐拱
-            return false
-          }
-        }
-      } else {
-        return false;
-      }
-    },
-
-
-    // 鍒ゆ柇褰撳墠鐩爣鏄惁宸茶喘涔�
-    async getCmsDataByQrcode(item) {
-      let query = {
-        path: '*',
-        queryType: '*',
-        productId: this.properties.bookInfo.id,
-        itemId: item.id,
-        itemFields: {
-          // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁�
-          selectType: [],
-          freeFile: [],
-          file: [],
-          protectedFile: [],
-          resourcesClassification: [],
-          isDownload: [],
-          jsek_resourceBrief: [],
-          jsek_link: [],
-          jsek_questionBank: [],
-          learnSelectType: []
-        },
-        pading: {
-          start: 0,
-          size: 999
-        }
-      }
-      const data = await app.MG.store.getProductDetail(query)
-      return data?.datas ?? []
-    },
 
     // 璺宠浆闊宠棰戞挱鏀惧櫒
     goPlayer(e) {
@@ -266,35 +210,33 @@
           }
         }
         if (this.properties.tab == "jsek_cloudLearning") {
-          // 1.鎵惧嚭鎵�鏈夌埗绾х洰褰曞拰鏈韩(鏈夐攢鍞柟寮�) 鍜� 浜戝涔犳湰韬�(鏈夐攢鍞柟寮�) 鏀惧埌涓�涓暟缁�  涓虹┖鍒欐殏鏈紑鏀鹃攢鍞�
-          let learn = []
-          if (this.properties.isCloundHaveSaleMethod) {
-            // 1.1 浜戝涔犳湁閿�鍞柟寮忥紝鍔犲叆鐖剁骇鏁扮粍
-            learn.push(this.properties.learnMenu)
-          } else {
-            // 1.2 浜戝涔犳棤閿�鍞柟寮忥紝灏嗙埗绾х洰褰曞拰鏈韩鍔犲叆鏁扮粍
-            learn = this.handleTreeData(this.properties.learnList).filter(
-              (citem) => citem.saleMethod &&
-              citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal' && ditem.Price > 0) &&
-              new Date(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').EndDate).getTime() >= new Date().getTime() &&
-              new Date(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime() &&
-              item.productLinkPath.includes(citem.productLinkPath)
-            )
-          }
-          // 2.鎵惧嚭杩欎釜鏁扮粍閲屽凡璐拱鐨� 褰㈡垚鏂版暟缁�     涓虹┖鍒欐湭璐拱
-          let buyList = []
-          if (learn.length) buyList = learn.filter((item) => this.properties.buyIds.includes(item.saleMethod.find((citem) => citem.SaleType == 'Normal').Id))
-          // 鏈夌埗绾�(鍖呭惈閿�鍞柟寮�)锛屼笖鏈喘涔�
-          if (learn.length && !buyList.length && !item.freeFile) return wx.showToast({
+          // // 1.鎵惧嚭鎵�鏈夌埗绾х洰褰曞拰鏈韩(鏈夐攢鍞柟寮�) 鍜� 浜戝涔犳湰韬�(鏈夐攢鍞柟寮�) 鏀惧埌涓�涓暟缁�  涓虹┖鍒欐殏鏈紑鏀鹃攢鍞�
+          // let learn = []
+          // if (this.properties.isCloundHaveSaleMethod) {
+          //   // 1.1 浜戝涔犳湁閿�鍞柟寮忥紝鍔犲叆鐖剁骇鏁扮粍
+          //   learn.push(this.properties.learnMenu)
+          // } else {
+          //   // 1.2 浜戝涔犳棤閿�鍞柟寮忥紝灏嗙埗绾х洰褰曞拰鏈韩鍔犲叆鏁扮粍
+          //   learn = this.handleTreeData(this.properties.learnList).filter(
+          //     (citem) => citem.saleMethod &&
+          //     citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal' && ditem.Price > 0) &&
+          //     new Date(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').EndDate).getTime() >= new Date().getTime() &&
+          //     new Date(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime() &&
+          //     item.productLinkPath.includes(citem.productLinkPath)
+          //   )
+          // }
+          // // 2.鎵惧嚭杩欎釜鏁扮粍閲屽凡璐拱鐨� 褰㈡垚鏂版暟缁�     涓虹┖鍒欐湭璐拱
+          // let buyList = []
+          // if (learn.length) buyList = learn.filter((item) => this.properties.buyIds.includes(item.saleMethod.find((citem) => citem.SaleType == 'Normal').Id))
+          // // 鏈夌埗绾�(鍖呭惈閿�鍞柟寮�)锛屼笖鏈喘涔�
+          if (!item.isbuy && !item.freeFile) return wx.showToast({
             icon: 'error',
             title: '璇峰厛璐拱璇ヨ祫婧�',
           })
           if (item.protectedFile || item.freeFile) {
-            const currentSaleMaths = await this.getCmsDataByQrcode(item)
             let file = item.fileMap[item.protectedFile] ? item.fileMap[item.protectedFile] : item.fileMap[item.freeFile]
             if (file && file.protectType !== "Public") {
-              const isBuyData = currentSaleMaths.purchasedSaleMethodIdList?.includes(item.saleMethod[0]?.Id)
-              if (!isBuyData) {
+              if (!item.isbuy) {
                 return wx.showToast({
                   icon: 'error',
                   title: '璇峰厛璐拱璇ヨ祫婧�',
@@ -324,7 +266,11 @@
       const token = wx.getStorageSync(app.config.tokenKey);
       if (!token && this.data.tab != 'jsek_teachingResources') {
         loginInfo(app, (data) => {
-          if (data) {}
+          if (data) {
+            wx.redirectTo({
+              url: '/packageBookService/pages/bookServices/detail/index?id=' + this.data.bookInfo.id + '&name=' + encodeURI(this.data.bookInfo.name),
+            })
+          }
         })
       } else {
         goPlayerFun()
diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js
index 8fc6ca3..94dc1a8 100644
--- a/packageBookService/pages/bookServices/detail/index.js
+++ b/packageBookService/pages/bookServices/detail/index.js
@@ -470,6 +470,7 @@
       res.datas.contactInformation = res.datas.contactInformation ? res.datas.contactInformation : '-'
       this.setData({
         bookDetail: res.datas,
+        bookName: res.datas.name,
         buyIdList: res.datas.purchasedSaleMethodIdList,
         pageLoading: false
       });
@@ -998,20 +999,24 @@
     for (let item of tree) {
       // 鏄惁鏄剧ず鎸夐挳
       item.isShowIcon = false;
-      if (item.sysType == 'CmsItem') {
-        // 鏌ユ壘鐩綍涓嬭祫婧愰攢鍞柟寮忥紝鐩綍涓嬭祫婧愭病鏈夐攢鍞柟寮�
-        if (item.saleMethod?.length == 0) {
-          // 鏌ョ湅鍏剁埗绾ф槸鍚︽湁閿�鍞柟寮�
-          if (parent.saleMethod?.length > 0) {
-            // 鐖剁骇鏄湁閿�鍞柟寮忕洿鎺ユ樉绀烘寜閽�
-            parent.isShowIcon = true
+      if (!wx.getStorageSync(app.config.tokenKey)) {
+        item.isShowIcon = false;
+      } else {
+        if (item.sysType == 'CmsItem') {
+          // 鏌ユ壘鐩綍涓嬭祫婧愰攢鍞柟寮忥紝鐩綍涓嬭祫婧愭病鏈夐攢鍞柟寮�
+          if (item.saleMethod?.length == 0) {
+            // 鏌ョ湅鍏剁埗绾ф槸鍚︽湁閿�鍞柟寮�
+            if (parent.saleMethod?.length > 0) {
+              // 鐖剁骇鏄湁閿�鍞柟寮忕洿鎺ユ樉绀烘寜閽�
+              parent.isShowIcon = true
+            }
+          } else {
+            item.isShowIcon = true
           }
         } else {
-          item.isShowIcon = true
-        }
-      } else {
-        if (item.children?.length > 0) {
-          this.handleSalmethodBtn(item.children, data, item)
+          if (item.children?.length > 0) {
+            this.handleSalmethodBtn(item.children, data, item)
+          }
         }
       }
     }
@@ -1724,29 +1729,6 @@
   },
   // 鍒ゆ柇璧勬簮鏄惁璐拱
   resourceIsBuy(data) {
-    // if (data.saleMethod && data.saleMethod.length) {
-    //   const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
-    //   if (saleData.State == 'Disable') return false
-    //   const isShow = this.data.buyIdList.some(
-    //     (item) => item == saleData.Id
-    //   );
-    //   // 宸茬粡璐拱
-    //   if (isShow || saleData.Price == 0) return false
-    //   // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈�
-    //   if (!isShow) {
-    //     const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
-    //       new Date(saleData.BeginDate).getTime() <= new Date().getTime()
-    //     if (flag) {
-    //       // 涓鸿繃鏈� 锛岄渶瑕佽喘涔�
-    //       return true
-    //     } else {
-    //       // 宸茶繃鏈� 鏃犻渶璐拱
-    //       return false
-    //     }
-    //   }
-    // } else {
-    //   return false;
-    // }
     let linkData = data.productLinkPath.split("\\");
     linkData.reverse()
     let dataList = linkData.map(item => {
diff --git a/packageCourse/pages/teachClass/detail/index.js b/packageCourse/pages/teachClass/detail/index.js
index 3fcab3c..3dfe478 100644
--- a/packageCourse/pages/teachClass/detail/index.js
+++ b/packageCourse/pages/teachClass/detail/index.js
@@ -93,7 +93,6 @@
       }]
     }
     app.MG.ugc.getTopicMessageList(data).then((res) => {
-      debugger
       const list = res.datas.map((item, i) => {
         item.question = []
         item.bookId = null
diff --git a/packageDomain/pages/resourceDetails/document/index.js b/packageDomain/pages/resourceDetails/document/index.js
index 9f1643a..67f40d3 100644
--- a/packageDomain/pages/resourceDetails/document/index.js
+++ b/packageDomain/pages/resourceDetails/document/index.js
@@ -413,10 +413,16 @@
     let that = this
     //鍥剧墖
     if (item.selectType == 'picture' || item.learnSelectType == 'picture') {
-      let file = isTry ? item.freeFile : item.protectedFile || item.file
-      this.setData({
-        showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + file,
-      })
+      let file = isTry ? item.freeFile : item.protectedFile || item.file;
+      if (isTry) {
+        this.setData({
+          showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + file,
+        })
+      } else {
+        this.setData({
+          showData: app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey)
+        })
+      }
       wx.hideLoading();
     }
     // 涓嬭浇鏂囦欢zip
@@ -435,14 +441,20 @@
     }
     //鏂囨。绛�
     if (item.selectType == 'document' || item.selectType == 'pdf' || item.learnSelectType == 'document' || item.learnSelectType == 'pdf') {
-      let md5 = isTry ? item.freeFile : item.protectedFile || item.file || item.freeFile
+      let md5 = isTry ? item.freeFile : item.protectedFile || item.file || item.freeFile;
+      let urlPage = ''
+      if (isTry) {
+        urlPage = app.config.requestCtx + '/file/api/ApiDownload?md5=' + md5
+      } else {
+        urlPage = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + md5 + '&token=' + wx.getStorageSync(app.config.tokenKey)
+      }
       if (item.fileMap[md5]?.extension == 'xlsx' || item.fileMap[md5]?.extension == 'xls') {
         this.setData({
           selectTypeData: 'excel',
           showMd5: md5,
         })
         wx.request({
-          url: app.config.requestCtx + '/file/api/ApiDownload?md5=' + md5,
+          url: urlPage,
           method: 'GET', // 璇锋眰鏂瑰紡
           responseType: 'arraybuffer', // 鎸囧畾杩斿洖绫诲瀷涓� arraybuffer
           success: (res) => {
@@ -525,25 +537,6 @@
     wx.previewImage({
       urls: urls // 闇�瑕侀瑙堢殑鍥剧墖http閾炬帴鍒楄〃
     })
-  },
-  // 鍒ゆ柇褰撳墠鐐瑰嚮鐨勬暟鎹槸鍚﹁喘涔�
-  cmsItemIsBuy(item) {
-    let flag = false
-    // 涔颁簡
-    if (this.data.buyList.length) {
-      if (this.data.buyList.some(citem => item.productLinkPath.includes(citem.productLinkPath)))
-        flag = true
-    } else {
-      // 娌′拱涓旀棤閿�鍞柟寮�
-      if (!item.saleMethod.length) {
-        flag = true
-      } else {
-        // 娌′拱涓旈攢鍞柟寮忚繃鏈�//娌′拱锛岄攢鍞柟寮忎环鏍间负0
-        const itemSaleMethod = item.saleMethod.find(citem => citem.SaleType == 'Normal')
-        if (new Date().getTime() > new Date(itemSaleMethod.EndDate).getTime() || itemSaleMethod.Price == 0) flag = true
-      }
-    }
-    return flag
   },
   // 
   scrolltolower(e) {

--
Gitblit v1.9.1