| | |
| | | }) |
| | | this.getLearnTime() |
| | | } |
| | | this.resourceDetailsData() |
| | | this.getBookInfo(options.bookId) |
| | | }, |
| | | /** |
| | |
| | | coverSize: { |
| | | height: 1, |
| | | }, |
| | | fields: {}, |
| | | fields: { |
| | | IsTextbook: [] |
| | | }, |
| | | }; |
| | | if (this.data.storeInfo) query['storeInfo'] = this.data.storeInfo |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | this.setData({ |
| | | bookDetail: res.datas, |
| | | bookName: res.datas.name, |
| | | buyIdList: res.datas.purchasedSaleMethodIdList, |
| | | learnClassData: res.datas.cmsDatas[0].datas.find(item => item.refCode == "jsek_cloudLearning") |
| | | }) |
| | | this.resourceDetailsData() |
| | | this.getResourceDataList(this.data.learnClassData) |
| | | }); |
| | | }, |
| | |
| | | wx.navigateBack(); |
| | | }, |
| | | |
| | | // 判断当前目标是否已购买 |
| | | async getCmsDataByQrcode() { |
| | | async getBuyCmsItem() { |
| | | let cmsItemData = null |
| | | let query = { |
| | | storeInfo: this.data.storeInfo, |
| | | path: '*', |
| | | queryType: '*', |
| | | cmsType: '*', |
| | | productId: this.data.bookId, |
| | | itemId: this.data.activeId, |
| | | cmsPath: this.data.bookDetail.rootCmsItemId, |
| | | itemFields: { |
| | | // 资源类型,试读文件,是否允许下载等参数 |
| | | selectType: [], |
| | | freeFile: [], |
| | | file: [], |
| | |
| | | size: 999 |
| | | } |
| | | } |
| | | const data = await app.MG.store.getProductDetail(query) |
| | | return data?.datas ?? [] |
| | | if (this.data.storeInfo) { |
| | | query.storeInfo = this.data.storeInfo |
| | | } |
| | | const res = await app.MG.store.getProductDetail(query) |
| | | let linkData = this.data.productLinkPath.split("\\"); |
| | | linkData.reverse() |
| | | let dataList = linkData.map(item => { |
| | | let data = res.datas.cmsDatas[0].datas.find(citem => citem.id == item); |
| | | if (data) return data; |
| | | }) |
| | | let isBuy = 1; |
| | | for (let i = 0; i < dataList.length; i++) { |
| | | const dataItem = dataList[i]; |
| | | if (dataItem) { |
| | | if (dataItem.saleMethod.length > 0) { |
| | | isBuy = 2; |
| | | if (this.data.bookDetail.purchasedSaleMethodIdList.indexOf(dataItem.saleMethod[0].Id) > -1 || dataItem.saleMethod[0].Price == 0) { |
| | | isBuy = 3; |
| | | break; |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (isBuy == 2) { |
| | | // 未购买 |
| | | if (dataList[0].freeFile) { |
| | | dataList[0].isFreeFile = true; // 这个资源可以试看 |
| | | cmsItemData = dataList[0] |
| | | } else { |
| | | wx.hideLoading(); |
| | | wx.showModal({ |
| | | title: '温馨提示', |
| | | content: '该资源未激活或购买,即将返回图书详情页面', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | if (this.data.source == 'qrcode') { |
| | | wx.navigateTo({ |
| | | url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=${this.data.formPath}`, |
| | | }); |
| | | } else { |
| | | wx.navigateBack() |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | | cmsItemData = dataList[0] |
| | | } |
| | | |
| | | return cmsItemData |
| | | }, |
| | | |
| | | resourceDetailsData() { |
| | |
| | | let selectedId = -1; // 初始化选中项索引 |
| | | let showDataUrl = ''; |
| | | let titleName = ''; |
| | | res.datas.cmsDatas[0].datas.forEach((item, index) => { |
| | | if (item.selectType === "audio" || item.learnSelectType === "audio") { |
| | | if (this.data.storeInfo == 'jsek_digitalCourses') { |
| | | // ###视频页面这里判断了是否购买,但音频这里没有判断,需要再核实 |
| | | if (this.data.storeInfo == 'jsek_digitalCourses') { |
| | | res.datas.cmsDatas[0].datas.forEach((item, index) => { |
| | | if (item.selectType === "audio" || item.learnSelectType === "audio") { |
| | | if (item.sysType == 'CmsItem') { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | if (item.sysType == 'CmsItem' && item.freeFile) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } else { |
| | | if (this.data.buyList.length) { |
| | | if (this.data.buyList.some(citem => item.productLinkPath.includes(citem.productLinkPath))) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } else { |
| | | if (!item.saleMethod.length) { |
| | | // 没买且无销售方式 |
| | | this.data.threeLeveData.push(item) |
| | | } else { |
| | | // 没买且销售方式过期//没买,销售方式价格为0 |
| | | const itemSaleMethod = item.saleMethod.find(citem => citem.SaleType == 'Normal') |
| | | if (new Date().getTime() > new Date(itemSaleMethod.EndDate).getTime() || itemSaleMethod.Price == 0) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | // 没买且只有试读资源 |
| | | if ((!item.file && !item.protectedFile) && item.freeFile) { |
| | | const state = this.data.threeLeveData.find(citem => citem.id == item.id) |
| | | if (!state) |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | if (this.data.source == 'qrcode') { |
| | | let qrData = this.data.threeLeveData.find(ditem => ditem.id == this.data.activeId) |
| | | const currentSaleMaths = await this.getCmsDataByQrcode() |
| | | // 判断是否购买目录 |
| | | const catalg = currentSaleMaths?.saleMethod?.find(i => currentSaleMaths.purchasedSaleMethodIdList.includes(i.Id)) |
| | | // 判断是否购买资源本身 |
| | | const ownCms = qrData.saleMethods?.find(i => currentSaleMaths.purchasedSaleMethodIdList.includes(i.Id)) |
| | | if (catalg || ownCms) { |
| | | this.setData({ |
| | | threeLeveData: [qrData] |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: [] |
| | | }) |
| | | } |
| | | }); |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: this.data.threeLeveData |
| | | }) |
| | | const itemCms = await this.getBuyCmsItem() |
| | | if (itemCms != null) { |
| | | this.data.threeLeveData.push(itemCms) |
| | | } |
| | | } |
| | | if (this.data.threeLeveData.length > 0) { |
| | | selectedId = this.data.threeLeveData.findIndex(items => items.productLinkPath == this.data.productLinkPath) |
| | | if (selectedId !== -1) { |
| | | let datas = this.data.threeLeveData[selectedId]; |
| | | if (this.data.formPath == 'jsek_cloudLearning') { |
| | | let file = this.cmsItemIsBuy(datas) ? datas.protectedFile || datas.freeFile : datas.freeFile |
| | | // let file = this.cmsItemIsBuy(datas) ? datas.protectedFile || datas.freeFile : datas.freeFile |
| | | let file |
| | | if (!datas.isFreeFile) { |
| | | file = datas.protectedFile |
| | | } else { |
| | | file = datas.freeFile |
| | | } |
| | | showDataUrl = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey); |
| | | } else { |
| | | showDataUrl = datas.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.freeFile |
| | |
| | | toView: 'activeName' + selectedId, |
| | | }); |
| | | this.pubulicPlayFun(); |
| | | } else { |
| | | wx.showModal({ |
| | | title: '温馨提示', |
| | | content: '该资源未购买,将返回购买', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | if (this.data.source == 'qrcode') { |
| | | wx.navigateTo({ |
| | | url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=${this.data.formPath}`, |
| | | }); |
| | | } else { |
| | | wx.navigateBack() |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | onVideo(e) { |
| | | this.setPlayerList() |
| | | this.setData({ |
| | |
| | | }) |
| | | if (item.selectType == "audio" || item.learnSelectType === "audio") { |
| | | if (this.data.formPath == 'jsek_cloudLearning') { |
| | | let file = item.protectedFile ? item.protectedFile : item.freeFile |
| | | let file |
| | | if (!item.isFreeFile) { |
| | | file = item.protectedFile |
| | | } else { |
| | | file = item.freeFile |
| | | } |
| | | // 这里处理云学习的 |
| | | this.setData({ |
| | | showData: app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey) |