|
@@ -1,606 +0,0 @@
|
|
|
-/*
|
|
|
- * @Author: ZhengXiaowei
|
|
|
- * @Date: 2019-07-24 17:21:47
|
|
|
- * @LastEditors: Please set LastEditors
|
|
|
- * @LastEditTime: 2021-06-28 15:51:55
|
|
|
- * @Description: file content
|
|
|
- */
|
|
|
-import Axios from "axios";
|
|
|
-import axios from "./axios";
|
|
|
-import {
|
|
|
- bookListFormat,
|
|
|
- bookFormat,
|
|
|
- urlFormat,
|
|
|
- contentFormat,
|
|
|
- recordFormat,
|
|
|
- shelfFormat
|
|
|
-} from "./util";
|
|
|
-import cache from "../util/cache.js";
|
|
|
-import { Subscribe, Pay } from "../view/namespace.js";
|
|
|
-import bus from "../util/bus";
|
|
|
-
|
|
|
-//获取首页(书城)内容
|
|
|
-let index = {};
|
|
|
-export function getIndex(type) {
|
|
|
- //male or female
|
|
|
- if (type === "boy") type = "male";
|
|
|
- else if (type === "girl") type = "female";
|
|
|
- else type = "male";
|
|
|
- if (index[type]) return Promise.resolve(index[type]);
|
|
|
- return axios(`/books/${type}/index`).then(r => {
|
|
|
- r.forEach(list => {
|
|
|
- bookListFormat(list.books);
|
|
|
- });
|
|
|
- index[type] = r;
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-/**
|
|
|
-获取书库书籍
|
|
|
-关键字 key String
|
|
|
-分类id category_id Number
|
|
|
-页码 page String
|
|
|
-完结 status 完结:1 | 连载:0
|
|
|
- */
|
|
|
-
|
|
|
-export function getBook(params) {
|
|
|
- getBook.source = Axios.CancelToken.source();
|
|
|
- return axios("/books/library", { cancelToken: getBook.source.token, params })
|
|
|
- .then(r => {
|
|
|
- bookListFormat(r.list);
|
|
|
- return r;
|
|
|
- })
|
|
|
- .catch(function(thrown) {
|
|
|
- if (!Axios.isCancel(thrown)) {
|
|
|
- return Promise.reject(thrown);
|
|
|
- }
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-//获取分类
|
|
|
-let category = null;
|
|
|
-export function getCategory() {
|
|
|
- if (category) return Promise.resolve(category);
|
|
|
- return (category = axios("/books/getCategory").then(r => {
|
|
|
- r.unshift({
|
|
|
- name: "不限",
|
|
|
- id: 0
|
|
|
- });
|
|
|
- return r;
|
|
|
- }));
|
|
|
-}
|
|
|
-// 获取详情
|
|
|
-// 创建一个书籍详情的缓存池
|
|
|
-let detail = new cache({
|
|
|
- meta: {
|
|
|
- name: "书籍详情"
|
|
|
- },
|
|
|
- limit: 40
|
|
|
-});
|
|
|
-
|
|
|
-//更新书籍信息中的是否在书架上(is_on_user_shelf)
|
|
|
-function detailUpdate(id, status) {
|
|
|
- let book = detail.find(id);
|
|
|
- if (book.complete) {
|
|
|
- book.result.data.is_on_user_shelf = status;
|
|
|
- }
|
|
|
-}
|
|
|
-export function getDetail(id, s = "",pos='') {
|
|
|
- return detail
|
|
|
- .getAsync(id, function() {
|
|
|
- return axios("/book/" + id + "?s=" + s + '&pos=' + pos).then(r => {
|
|
|
- return {
|
|
|
- id,
|
|
|
- data: r
|
|
|
- };
|
|
|
- });
|
|
|
- })
|
|
|
- .then(r => {
|
|
|
- return bookFormat(r.result.data);
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取目录
|
|
|
-// 创建一个目录的缓存池
|
|
|
-let catalog = new cache({
|
|
|
- meta: {
|
|
|
- name: "目录"
|
|
|
- },
|
|
|
- limit: 20
|
|
|
-});
|
|
|
-export function getCatalog(id, page = 1, s = "") {
|
|
|
- return catalog
|
|
|
- .getAsync(id + "+" + page, function() {
|
|
|
- return axios(`/books/${id}/catalog`, {
|
|
|
- params: { page_size: 100, page, s }
|
|
|
- }).then(r => {
|
|
|
- return {
|
|
|
- id: id + "+" + page,
|
|
|
- data: r.list,
|
|
|
- meta: r.meta
|
|
|
- };
|
|
|
- });
|
|
|
- })
|
|
|
- .then(r => {
|
|
|
- return r.result;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取同款推荐
|
|
|
-// 创建一个同款推荐的缓存池
|
|
|
-let similar = new cache({
|
|
|
- meta: {
|
|
|
- name: "同款推荐"
|
|
|
- },
|
|
|
- limit: 20
|
|
|
-});
|
|
|
-
|
|
|
-export function getSimilar(bid, category_id) {
|
|
|
- return similar
|
|
|
- .getAsync(bid, function() {
|
|
|
- return axios(`/books/similar`, { params: { category_id, bid } }).then(
|
|
|
- r => {
|
|
|
- let data = bookListFormat(r);
|
|
|
- detail.push(
|
|
|
- data.map(v => {
|
|
|
- return {
|
|
|
- id: v.book_id,
|
|
|
- data: v
|
|
|
- };
|
|
|
- })
|
|
|
- );
|
|
|
- return {
|
|
|
- id: bid,
|
|
|
- data: data
|
|
|
- };
|
|
|
- }
|
|
|
- );
|
|
|
- })
|
|
|
- .then(r => {
|
|
|
- return r.result.data;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-//获取用户信息
|
|
|
-let userinfo = null;
|
|
|
-export function getUserInfo() {
|
|
|
- // if (userinfo) return Promise.resolve(userinfo)
|
|
|
- return axios("/userinfo").then(r => {
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-//获取书架
|
|
|
-let shelf = null;
|
|
|
-export function getShelf() {
|
|
|
- if (shelf) return Promise.resolve(shelf);
|
|
|
- return axios("/userShelfBooks").then(r => {
|
|
|
- r = shelfFormat(r);
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-//删除书架
|
|
|
-export function delShelf(bid) {
|
|
|
- return axios("/userShelfBooks/delete?bid=" + bid).then(r => {
|
|
|
- detailUpdate(bid, 0);
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-//添加书架
|
|
|
-export function addShelf(bid) {
|
|
|
- return axios.post("/userShelfBooks", { bid }).then(r => {
|
|
|
- shelf = null;
|
|
|
- detailUpdate(bid, 1);
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-//获取阅读记录
|
|
|
-let readerRecord = null;
|
|
|
-
|
|
|
-export function getReadrecord() {
|
|
|
- if (readerRecord) return Promise.resolve(readerRecord);
|
|
|
- return axios("/readrecord").then(r => {
|
|
|
- return r.map(book => {
|
|
|
- book.book_id = book.bid;
|
|
|
- return book;
|
|
|
- });
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 添加阅读记录
|
|
|
-export function setReadrecord(params) {
|
|
|
- return axios.post("/readrecord", params);
|
|
|
-}
|
|
|
-//删除阅读记录
|
|
|
-export function delReadrecord(bid) {
|
|
|
- return axios.post("/readrecord/delete", { bid }).then(r => {
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 签到记录
|
|
|
-export function getSignRecord(page = 1) {
|
|
|
- return axios(`/user/sign_record?page=${page}`);
|
|
|
-}
|
|
|
-
|
|
|
-//获取章节内容
|
|
|
-// 创建一个同款推荐的缓存池
|
|
|
-
|
|
|
-/*
|
|
|
-错误处理
|
|
|
-10012 未关注(默认链接)
|
|
|
-10014 全本订阅余额不足(rmb)
|
|
|
-10015 章订余额不足(充值)
|
|
|
-10016 购买章节(书币)
|
|
|
-10017 购买图书(书币)
|
|
|
-10019 全本订阅余额不足(充值)
|
|
|
-10023 未关注 (跳转渠道接诶)
|
|
|
------ 以上是弹窗 -------
|
|
|
-10020 全本订阅余额不足,直接进入充值页
|
|
|
-10021 章节订阅余额不足,直接进入充值页
|
|
|
-10022 进入版权站
|
|
|
-*/
|
|
|
-let content = new cache({
|
|
|
- meta: {
|
|
|
- name: "章节内容"
|
|
|
- },
|
|
|
- limit: 20
|
|
|
-});
|
|
|
-
|
|
|
-export function getContent(bid, cid, adStatus = 0, from, code = "") {
|
|
|
- console.log(from);
|
|
|
- let url = options.adTargetId
|
|
|
- ? `/books/${bid}/chapters/${cid}?ad_status=${adStatus}&page_from=${from}&code=${encodeURIComponent(
|
|
|
- code
|
|
|
- )}`
|
|
|
- : `/books/${bid}/chapters/${cid}?page_from=${from}&code=${encodeURIComponent(
|
|
|
- code
|
|
|
- )}`;
|
|
|
- return content
|
|
|
- .getAsync(bid + "+" + cid, function() {
|
|
|
- return axios(url).then(r => {
|
|
|
- return {
|
|
|
- id: bid + "+" + cid,
|
|
|
- data: contentFormat(r)
|
|
|
- };
|
|
|
- });
|
|
|
- })
|
|
|
- .then(r => {
|
|
|
- if (!r.fresh) {
|
|
|
- setReadrecord({ bid, cid, chapter_name: r.result.data.chapter_name });
|
|
|
- }
|
|
|
- // TODO: 暂时这么做
|
|
|
- // let cacheTap = localStorage.getItem(cid)
|
|
|
- // if (cacheTap) {
|
|
|
- // r.result.data.chapter_comment = cacheTap
|
|
|
- // }
|
|
|
- return r.result.data;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-//余额支付
|
|
|
-export function subscribeByBalance(bid, cid, remind) {
|
|
|
- let params = remind ? { params: { remind: 1 } } : {};
|
|
|
- return axios(`/books/${bid}/balance/chapterOrders/${cid}`, params).then(r => {
|
|
|
- content.push({
|
|
|
- id: bid + "+" + cid,
|
|
|
- data: contentFormat(r)
|
|
|
- });
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-//RMB支付
|
|
|
-export function subscribeByRMB(params) {
|
|
|
- const a = document.createElement("a");
|
|
|
- const redirect = {
|
|
|
- host: location.origin,
|
|
|
- pathname: "/reader",
|
|
|
- query: {
|
|
|
- bid: params.book_id,
|
|
|
- cid: params.chapter_id
|
|
|
- }
|
|
|
- };
|
|
|
- const href = {
|
|
|
- host: window.options.pay_url,
|
|
|
- query: {
|
|
|
- product_id: params.product_id,
|
|
|
- uid: window.options.uid,
|
|
|
- distribution_channel_id: window.options.distribution_channel_id,
|
|
|
- send_order_id: window.options.send_order_id,
|
|
|
- pay_redirect_url: encodeURIComponent(urlFormat(redirect))
|
|
|
- }
|
|
|
- };
|
|
|
- a.href = urlFormat(href);
|
|
|
- a.click();
|
|
|
-}
|
|
|
-
|
|
|
-// 排行帮
|
|
|
-//type Int (点击帮:1|字数帮:2|新书榜:3)
|
|
|
-//time Int (周:1|月:2|总:3)
|
|
|
-let rank = {};
|
|
|
-export function getRank(type = 1, time = 1) {
|
|
|
- let id = type + "+" + time;
|
|
|
- if (rank[id]) return Promise.resolve(rank);
|
|
|
- return axios("/books/rank", {
|
|
|
- params: {
|
|
|
- type,
|
|
|
- time
|
|
|
- }
|
|
|
- }).then(r => {
|
|
|
- bookListFormat(r.male);
|
|
|
- bookListFormat(r.female);
|
|
|
- rank[id] = r;
|
|
|
- return rank;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-//充值产品列表
|
|
|
-let product = null;
|
|
|
-export function getProductList(bid) {
|
|
|
- if (product) return product;
|
|
|
- else return axios("/order/chargeList", { params: { bid } });
|
|
|
-}
|
|
|
-
|
|
|
-//充值
|
|
|
-export function recharge({ product_id, bid, cid, use_coupon }) {
|
|
|
- const a = document.createElement("a");
|
|
|
- const redirect =
|
|
|
- bid && cid
|
|
|
- ? {
|
|
|
- host: location.origin,
|
|
|
- pathname: "/reader",
|
|
|
- query: {
|
|
|
- bid,
|
|
|
- cid
|
|
|
- }
|
|
|
- }
|
|
|
- : {
|
|
|
- host: location.origin,
|
|
|
- pathname: "/recent"
|
|
|
- };
|
|
|
- const href = {
|
|
|
- host: window.options.pay_url,
|
|
|
- query: {
|
|
|
- product_id: product_id,
|
|
|
- uid: window.options.uid,
|
|
|
- use_coupon,
|
|
|
- distribution_channel_id: window.options.distribution_channel_id,
|
|
|
- send_order_id: window.options.send_order_id,
|
|
|
- from: window.options.from,
|
|
|
- bid,
|
|
|
- cid,
|
|
|
- pay_redirect_url: encodeURIComponent(urlFormat(redirect)),
|
|
|
- crm: window.options.crm || ""
|
|
|
- }
|
|
|
- };
|
|
|
- a.href = urlFormat(href);
|
|
|
- a.click();
|
|
|
-}
|
|
|
-
|
|
|
-//单本消费记录
|
|
|
-export function getRecordOrderByBook(page) {
|
|
|
- return axios("/order/bookOrderList", { params: { page } });
|
|
|
-}
|
|
|
-
|
|
|
-//章节消费记录
|
|
|
-export function getRecordOrderByChapter(page) {
|
|
|
- return axios("/order/chapterOrderList", { params: { page } });
|
|
|
-}
|
|
|
-
|
|
|
-//充值记录
|
|
|
-export function getRecordRecharge(page) {
|
|
|
- return axios("/order/chargeRecordLists", { params: { page } }).then(r => {
|
|
|
- recordFormat(r.list);
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-//赠送记录
|
|
|
-export function getRecordSend(page) {
|
|
|
- return axios("/getGivenRocords", { params: { page } }).then(r => {
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 尾页推荐
|
|
|
-export function getReadOverRecommend(bid) {
|
|
|
- return axios("/books/readOverRecommend", { params: { bid } }).then(r => {
|
|
|
- bookListFormat(r.recommend_result);
|
|
|
- return r;
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取弱关二维码
|
|
|
-export function getweakSubscribeQR() {
|
|
|
- return axios("/subscribe/qrcode");
|
|
|
-}
|
|
|
-
|
|
|
-// 用户行为
|
|
|
-export function PostUserBehavior(data) {
|
|
|
- return axios.post("/userBehavior", data);
|
|
|
-}
|
|
|
-
|
|
|
-// 错误捕获
|
|
|
-export function undefinedCollect(data) {
|
|
|
- return axios.post("/error/undefinedCollect", data);
|
|
|
-}
|
|
|
-
|
|
|
-// 章节底部评价
|
|
|
-export function chapterComment(bid, chapter, tags) {
|
|
|
- return axios.post("/chapter/comment", { bid, chapter, tags });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取章节底部评价
|
|
|
-export function getChapterComment(bid, chapter) {
|
|
|
- return axios("/chapter/getComment", { params: { bid, chapter } });
|
|
|
-}
|
|
|
-
|
|
|
-// 签到页面
|
|
|
-export function toSign() {
|
|
|
- return axios("user/sign");
|
|
|
-}
|
|
|
-
|
|
|
-// 获取礼物列表
|
|
|
-export function getGiftList() {
|
|
|
- return axios("/gift/getGiftsList");
|
|
|
-}
|
|
|
-
|
|
|
-// 送礼
|
|
|
-export function sendGift(data) {
|
|
|
- return axios.post("/gift/sendGifts", data);
|
|
|
-}
|
|
|
-
|
|
|
-// 送礼记录
|
|
|
-export function getSendGiftRecord(params) {
|
|
|
- return axios("/gift/getUserSendGiftsRecord", { params });
|
|
|
-}
|
|
|
-
|
|
|
-// 消费记录中的送礼记录
|
|
|
-export function getUserSendGiftRecord(page) {
|
|
|
- return axios("/gift/getUserGiftsConsumeRecord", { params: { page } });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取代付用户数据
|
|
|
-export function getSubstitutePay(product_id) {
|
|
|
- return axios("/order/substitutePay", { params: { product_id } });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取代付充值列表
|
|
|
-export function getSubstitutePayList(product_id, su) {
|
|
|
- return axios("/order/substitutePayChargeList", {
|
|
|
- params: { product_id, su }
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 代充
|
|
|
-export function substituteRecharge({ product_id, uid }) {
|
|
|
- const a = document.createElement("a");
|
|
|
- const href = {
|
|
|
- host: window.options.pay_url,
|
|
|
- query: {
|
|
|
- product_id: product_id,
|
|
|
- suid: window.options.uid,
|
|
|
- uid: uid,
|
|
|
- distribution_channel_id: window.options.distribution_channel_id,
|
|
|
- send_order_id: window.options.send_order_id,
|
|
|
- from: window.options.from
|
|
|
- }
|
|
|
- };
|
|
|
- a.href = urlFormat(href);
|
|
|
- a.click();
|
|
|
-}
|
|
|
-
|
|
|
-// 最近阅读轮播
|
|
|
-export function recentSlideList() {
|
|
|
- return axios("/books/H5SmartRecommendBooks?pos=h5RecentReadLoop");
|
|
|
-}
|
|
|
-
|
|
|
-// 获取代付充值列表
|
|
|
-export function getbookFromWhere(bid, fromwhere) {
|
|
|
- return axios("/bookFromWhere/" + bid, { params: { fromwhere } });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取分享按钮是否显示
|
|
|
-export function getRecordShare(bid, cid) {
|
|
|
- return axios("/user/recordShare", { params: { bid, cid } });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取分享签名
|
|
|
-export function getWechatJsConfig(bid, cid, url) {
|
|
|
- return axios("/chapter/getWechatJsConfig", { params: { bid, cid, url } });
|
|
|
-}
|
|
|
-
|
|
|
-// 广告点击情况
|
|
|
-export function recordAdClickStatus(bid, cid, type = "UNLOCK") {
|
|
|
- return axios.post("/user/advisitstat", {
|
|
|
- bid,
|
|
|
- cid,
|
|
|
- type
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 尾页推荐催更
|
|
|
-export function upgBookStatus(bid) {
|
|
|
- return axios("/user/urgeUpdate", { params: { bid } });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取举报内容
|
|
|
-export function getReportList() {
|
|
|
- return axios("/complaints/getComplaintTags");
|
|
|
-}
|
|
|
-
|
|
|
-// 举报
|
|
|
-export function uploadReport(data) {
|
|
|
- return axios.post("/complaints/add", data);
|
|
|
-}
|
|
|
-
|
|
|
-// 获取广告banner
|
|
|
-export function getReaderAdBanner() {
|
|
|
- return axios("//banner.66kshu.com/b.gif");
|
|
|
-}
|
|
|
-
|
|
|
-// 发送验证码
|
|
|
-export function getPhoneCode(phone) {
|
|
|
- return axios.post("/bindphone/sendcode", { phone });
|
|
|
-}
|
|
|
-
|
|
|
-// 绑定手机
|
|
|
-export function phoneBind(data) {
|
|
|
- return axios.post("/bindphone/bind", data);
|
|
|
-}
|
|
|
-
|
|
|
-// 获取fakebook详情
|
|
|
-export function getBookDetail(id) {
|
|
|
- return axios("/red_book/getBookDetail?id=" + id);
|
|
|
-}
|
|
|
-
|
|
|
-// 获取fakebook详情
|
|
|
-export function getChapterList(id) {
|
|
|
- return axios("/red_book/getChapterList?id=" + id);
|
|
|
-}
|
|
|
-
|
|
|
-// 查询包月订单是否成功
|
|
|
-export function isMonthOrderSuc() {
|
|
|
- return axios("/monthorder/issuccess");
|
|
|
-}
|
|
|
-
|
|
|
-// 配置wx分享
|
|
|
-export function getWxConfig(url) {
|
|
|
- return axios.post("/weixin/jsSdkConfig", { url });
|
|
|
-}
|
|
|
-
|
|
|
-// 获取要展示的banner数组
|
|
|
-export function getMergeBanner() {
|
|
|
- let { crm_public } = window.options;
|
|
|
- if (crm_public) return axios(crm_public.url);
|
|
|
- else return Promise.reject("");
|
|
|
-}
|
|
|
-
|
|
|
-// 个人中心客服
|
|
|
-export function getCustomQRCode(distribution_channel_id, openid) {
|
|
|
- return axios("/custom_qrcode", {
|
|
|
- params: { distribution_channel_id, openid }
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-// 限免书单
|
|
|
-export function getBookLimitFree() {
|
|
|
- return axios("/books/freeBook");
|
|
|
-}
|
|
|
-
|
|
|
-// 新版排行列表
|
|
|
-export function getRankListV2() {
|
|
|
- return axios("/books/rankList");
|
|
|
-}
|
|
|
-//用户优惠券列表
|
|
|
-export function getUserCoupon() {
|
|
|
- return axios("/user/userCoupon");
|
|
|
-}
|
|
|
-
|
|
|
-//支付可用优惠券
|
|
|
-export function getOrderCoupon() {
|
|
|
- return axios("/order/effectiveCoupon");
|
|
|
-}
|