This commit is contained in:
cwt
2026-07-24 18:18:27 +08:00
parent faeb976e04
commit df2199cf57
11 changed files with 1541 additions and 1502 deletions
+66
View File
@@ -0,0 +1,66 @@
let showtype = false
// 激励视频广告实例(微信小程序)
const rewardedAd = wx.createRewardedVideoAd({
adUnitId: 'adunit-xxxxxxxxxx', // TODO: 替换为你的微信激励广告单元ID
});
// 加载激励视频广告
function insertAdload() {
rewardedAd.load().catch((err) => {
console.log('激励广告加载失败', err);
});
}
// 显示激励视频广告
function insertAdshow() {
if (showtype) {
console.log("显示广告");
rewardedAd.show().catch((err) => {
console.log('激励广告显示失败', err);
rewardedAd.load();
});
}
}
// 监听广告加载成功(支持回调)
function insertAdonLoad(onSuccess) {
rewardedAd.onLoad(() => {
showtype = true;
console.log('激励广告加载成功');
onSuccess && onSuccess();
});
}
// 监听错误(支持回调)
function insertAdonError(onFail) {
rewardedAd.onError((err) => {
console.log('激励广告错误', err);
showtype = false;
onFail && onFail();
setTimeout(() => {
insertAdload();
}, 30000);
});
}
// 监听广告关闭(微信特有:可判断是否看完)
function insertAdonClose(callback) {
rewardedAd.onClose((res) => {
console.log('激励广告关闭', res);
if (res && res.isEnded) {
callback && callback(true);
} else {
callback && callback(false);
}
insertAdload();
});
}
export default {
insertAdload,
insertAdshow,
insertAdonError,
insertAdonLoad,
insertAdonClose
}
+66 -63
View File
@@ -1,66 +1,69 @@
import {
httpRequest
} from "./request.js";
const login = {
wxLogin() {
return new Promise((resolve, reject) => {
uni.login({
provider: 'weixin',
success: (res) => {
httpRequest({
url: '/api/user/getOpenid',
data: {
code: res.code, //wx.login 登录成功后的code
ad_code: uni.getStorageSync('get_ad_code'),
invite: uni.getStorageSync("invite_number")
},
import {httpRequest} from "./request.js";
const login={
wxLogin(){
return new Promise((resolve,reject)=>{
uni.login({
provider: 'weixin',
success: (res) => {
httpRequest({
url:'/api/user/getOpenid',
data:{
code: res.code, //wx.login 登录成功后的code
ad_code: uni.getStorageSync('get_ad_code'),
invite: uni.getStorageSync("invite_number")
},
}).then((opRes) => {
if (res.code == 1) {
uni.setStorageSync("openid", opRes.data.openid)
if (opRes.msg == '登录成功') {
uni.setStorageSync("userinfo", opRes.data.userinfo);
uni.setStorageSync("token", opRes.data.userinfo.token);
uni.setStorageSync("config", opRes.data.config);
resolve('login success')
} else {
this.Loginops(opRes).then(opRes => {
resolve('login success')
}).catch(logPErr => {
reject(logPErr)
})
}
}
}).catch(opErr => {
reject(opErr)
})
},
fail: (err) => {
reject(err)
}
});
}).then((opRes)=>{
uni.setStorageSync("openid", opRes.data.openid)
if (opRes.msg == '登录成功') {
uni.setStorageSync("userinfo", opRes.data.userinfo);
uni.setStorageSync("token", opRes.data.userinfo.token);
uni.setStorageSync("config", opRes.data.config);
resolve('login success')
} else {
this.Loginops(opRes).then(opRes => {
resolve('login success')
}).catch(logPErr => {
reject(logPErr)
})
}
}).catch(opErr=>{
reject(opErr)
})
},
fail: (err) => {
reject(err)
}
});
})
},
Loginops(openData) {
return new Promise((resolve, reject) => {
httpRequest({
url:'/api/user/getphone',
method: 'GET',
data: {
openid: openData.data.openid,
pid: '0',
invite: uni.getStorageSync('invite_number') ||'',
ad_code: uni.getStorageSync('get_ad_code') || ''
},
}).then(uRes=>{
if(uRes.code ==1){
uni.setStorageSync("userinfo", uRes.data.userinfo);
uni.setStorageSync("token", uRes.data.userinfo.token);
uni.setStorageSync("config", uRes.data.config);
resolve('login success')
}
}).catch(uErr=>{
reject(uErr)
})
})
},
})
},
Loginops(openData) {
return new Promise((resolve, reject) => {
httpRequest({
url: '/api/user/getphone',
method: 'GET',
data: {
openid: openData.data.openid,
pid: '0',
invite: uni.getStorageSync('invite_number') || '',
ad_code: uni.getStorageSync('get_ad_code') || ''
},
}).then(uRes => {
if (uRes.code == 1) {
uni.setStorageSync("userinfo", uRes.data.userinfo);
uni.setStorageSync("token", uRes.data.userinfo.token);
uni.setStorageSync("config", uRes.data.config);
resolve('login success')
}
}).catch(uErr => {
reject(uErr)
})
})
},
}
export default login
export default login
+480 -394
View File
@@ -1,423 +1,509 @@
var playletPlugin = requirePlugin("playlet-plugin");
var serialNo = null
import configs from '@/utils/config.js';
import {httpRequest} from '@/utils/request'
import {login} from './login'
import {
httpRequest
} from '@/utils/request'
import {
login
} from './login'
import PAY from '@/utils/pay'
// 点击按钮触发此函数跳转到播放器页面
function navigateToPlayer(obj) {
// 下面的${dramaId}变量,需要替换成小程序管理后台的媒资管理上传的剧的dramaId
// 变量${srcAppid}是提审方appid
// 变量${serialNo}第几集
// 变量${extParam}是分享参数,分享的卡片和二维码会在分享的链接上携带此参数
const { extParam, dramaId, srcAppid=configs.mini_appid,serialNo=1 } = obj
wx.navigateTo({
url: `plugin-private://wx94a6522b1d640c3b/pages/playlet/playlet?dramaId=${dramaId}&srcAppid=${srcAppid}&serialNo=${serialNo}&extParam=${extParam || ''}`
})
// 下面的${dramaId}变量,需要替换成小程序管理后台的媒资管理上传的剧的dramaId
// 变量${srcAppid}是提审方appid
// 变量${serialNo}第几集
// 变量${extParam}是分享参数,分享的卡片和二维码会在分享的链接上携带此参数
const {
extParam,
dramaId,
srcAppid = configs.mini_appid,
serialNo = 1
} = obj
wx.navigateTo({
url: `plugin-private://wx94a6522b1d640c3b/pages/playlet/playlet?dramaId=${dramaId}&srcAppid=${srcAppid}&serialNo=${serialNo}&extParam=${extParam || ''}`
})
}
function deepClone(obj) {
if (typeof obj !== 'object' || !obj) return obj
let newObj = obj instanceof Array ? [] : {}
for (let key in obj) {
if (typeof obj[key] === 'object') {
newObj[key] = deepClone(obj[key])
} else {
newObj[key] = obj[key]
}
}
return newObj
if (typeof obj !== 'object' || !obj) return obj
let newObj = obj instanceof Array ? [] : {}
for (let key in obj) {
if (typeof obj[key] === 'object') {
newObj[key] = deepClone(obj[key])
} else {
newObj[key] = obj[key]
}
}
return newObj
}
const proto = {
data: { // 可通过this.data访问
playerId: '',//播放器id
arr: [],
vid:"",//剧id
info:{},
mid:"",//剧集id
userInfo:{},
is_record:0,//是否追剧 0未追 1已追
pay_oid:'',
},
_onPlayerLoad(info) {
let that = this,
shareInterval = null;
console.log("_onPlayerLoad",info);
if(info.extParam){
if(info.extParam.indexOf("%")<0){
this.data.info = info;
}else if(info.extParam){
info.extParam = decodeURIComponent(info.extParam )
this.data.info = info;
}else{}
this.data.vid = JSON.parse(info.extParam).vid;
if(JSON.parse(info.extParam).g_order_id){//存储分享后的gid
uni.setStorageSync('g_order_id',JSON.parse(info.extParam).g_order_id);
uni.setStorageSync('g_order_vid',JSON.parse(info.extParam).vid);
}
}
this.data.playerId = info.playerId
const pm = playletPlugin.PlayletManager.getPageManager(info.playerId)
this.pm = pm
data: { // 可通过this.data访问
playerId: '', //播放器id
arr: [],
vid: "", //剧id
info: {},
mid: "", //剧集id
userInfo: {},
is_record: 0, //是否追剧 0未追 1已追
pay_oid: '',
},
_onPlayerLoad(info) {
let that = this,
shareInterval = null;
console.log("_onPlayerLoad", info);
if (info.extParam) {
if (info.extParam.indexOf("%") < 0) {
this.data.info = info;
} else if (info.extParam) {
info.extParam = decodeURIComponent(info.extParam)
this.data.info = info;
} else {}
this.data.vid = JSON.parse(info.extParam).vid;
if (JSON.parse(info.extParam).g_order_id) { //存储分享后的gid
uni.setStorageSync('g_order_id', JSON.parse(info.extParam).g_order_id);
uni.setStorageSync('g_order_vid', JSON.parse(info.extParam).vid);
}
}
this.data.playerId = info.playerId
const pm = playletPlugin.PlayletManager.getPageManager(info.playerId)
this.pm = pm
let user = uni.getStorageSync('userinfo');
if(user.token){
this.data.userInfo = uni.getStorageSync('userinfo');
console.log('onPlayerLoad info', info, 'data', this.data)
that.getVideoId();
that.getEncryptData({serialNo: info.serialNo}).then(setRes => {
// encryptedData是后台加密后的数据,具体实现见官方文档的加密章节
let lists = [setRes.data];
pm.setCanPlaySerialList({
data: setRes.encryptedData,
freeList:lists
// freeList: [{ // 1~10集是免费剧,data里面的字段也必须至少设置1~10集可播放
// start_serial_no: setRes.data.start_serial_no,
// end_serial_no: setRes.data.end_serial_no
// }],
})
});
}else{
login.wxLogin().then(res=>{
this.data.userInfo = uni.getStorageSync('userinfo');
console.log('onPlayerLoad info', info, 'data', this.data)
that.getVideoId();
that.getEncryptData({serialNo: info.serialNo}).then(setRes => {
// encryptedData是后台加密后的数据,具体实现见官方文档的加密章节
let lists = [setRes.data];
pm.setCanPlaySerialList({
data: setRes.encryptedData,
freeList:lists
})
});
});
}
let user = uni.getStorageSync('userinfo');
if (user.token) {
this.data.userInfo = uni.getStorageSync('userinfo');
console.log('onPlayerLoad info', info, 'data', this.data)
that.getVideoId();
that.getEncryptData({
serialNo: info.serialNo
}).then(setRes => {
// encryptedData是后台加密后的数据,具体实现见官方文档的加密章节
let lists = [setRes.data];
pm.setCanPlaySerialList({
data: setRes.encryptedData,
freeList: lists
// freeList: [{ // 1~10集是免费剧,data里面的字段也必须至少设置1~10集可播放
// start_serial_no: setRes.data.start_serial_no,
// end_serial_no: setRes.data.end_serial_no
// }],
})
});
} else {
login.wxLogin().then(res => {
this.data.userInfo = uni.getStorageSync('userinfo');
console.log('onPlayerLoad info', info, 'data', this.data)
that.getVideoId();
that.getEncryptData({
serialNo: info.serialNo
}).then(setRes => {
// encryptedData是后台加密后的数据,具体实现见官方文档的加密章节
let lists = [setRes.data];
pm.setCanPlaySerialList({
data: setRes.encryptedData,
freeList: lists
})
});
});
}
// 需要解锁的事件
pm.onCheckIsCanPlay(this.onCheckIsCanPlay);
// 页面返回事件
pm.onBack(this.pageBack)
// 支付回调事件
pm.onCustomEvent('chargeEnd', this.chargeEnd)
pm.setVisualEffectOnCapture({
visualEffect: 'none',
})
// 参考文档章节“数据上报”
pm.onDataReport((obj) => {
if(obj.event === playletPlugin.REPORT_DATA_EVENTS.LIKE || obj.event === playletPlugin.REPORT_DATA_EVENTS.UNLIKE){//监听点赞、取消点赞操作
console.log("user like")
this.userLikeChange();
}else if(obj.event === playletPlugin.REPORT_DATA_EVENTS.FAV || obj.event === playletPlugin.REPORT_DATA_EVENTS.UNFAV){//监听在追,取消在追操作
console.log("user zhui ju")
this.changeStar()
}else if(obj.event === playletPlugin.REPORT_DATA_EVENTS.CHANGE_SERIAL){//监听切换剧集操作
console.log("user changePlay log")
this.changePlayLog()
}else if(obj.event === playletPlugin.REPORT_DATA_EVENTS.SHARE){//监听分享操作
console.log("user share")
}else {
// console.log("其他操作")
}
// 需要解锁的事件
pm.onCheckIsCanPlay(this.onCheckIsCanPlay);
// 页面返回事件
pm.onBack(this.pageBack)
// 支付回调事件
pm.onCustomEvent('chargeEnd', this.chargeEnd)
pm.setVisualEffectOnCapture({
visualEffect: 'none',
})
// 参考文档章节“数据上报”
pm.onDataReport((obj) => {
if (obj.event === playletPlugin.REPORT_DATA_EVENTS.LIKE || obj.event === playletPlugin
.REPORT_DATA_EVENTS.UNLIKE) { //监听点赞、取消点赞操作
console.log("user like")
this.userLikeChange();
} else if (obj.event === playletPlugin.REPORT_DATA_EVENTS.FAV || obj.event === playletPlugin
.REPORT_DATA_EVENTS.UNFAV) { //监听在追,取消在追操作
console.log("user zhui ju")
this.changeStar()
} else if (obj.event === playletPlugin.REPORT_DATA_EVENTS.CHANGE_SERIAL) { //监听切换剧集操作
console.log("user changePlay log")
this.changePlayLog()
} else if (obj.event === playletPlugin.REPORT_DATA_EVENTS.SHARE) { //监听分享操作
console.log("user share")
} else {
// console.log("其他操作")
}
})
// 设置右侧固定运营位置跳转路径
pm.setActivityInfo({
url: ''
})
// 设置运营区域
pm.updateOpenArea({
showLeft: false,
showRight: false,
leftsideAreaList: [
{
left: 16, // 类似绝对定位的样式
top: 20,
width: 72,
height: 32
},
],
ext: 'extInfo',
})
},
_initShare() {
const pm = this.pm
// 关于分享的处理
// 开启分享以及withShareTicket
pm.setDramaFlag({
share: true,
withShareTicket: true
})
// 获取分享参数,页面栈只有短剧播放器一个页面的时候可获取到此参数
// 例如从分享卡片进入、从投流广告直接跳转到播放器页面,从二维码直接进入播放器页面等情况
playletPlugin.getShareParams().then(res => {
console.log('getLaunch options query res', res)
// 关于extParam的处理,需要先做decodeURIComponent之后才能得到原值
const extParam = decodeURIComponent(res.extParam)
console.log('getLaunch options extParam', extParam)
// 如果设置了withShareTicket为true,可通过文档的方法获取更多信息
// https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html
const enterOptions = wx.getEnterOptionsSync()
console.log('getLaunch options shareTicket', enterOptions.shareTicket)
}).catch(err => {
console.log('getLaunch options query err', err)
})
this.getVideoId()
// 设置分享参数
pm.setExtParam(JSON.stringify({
vid:this.data.vid,
fxpid:this.data.userInfo.id,
invite:this.data.userInfo.invite||''
}))
},
// 检测是否可以播放
onCheckIsCanPlay(param) {
var that = this;
let intervalTime=null;
console.log('onCheckIsCanPlay param',param);
if(uni.getStorageSync('userinfo').token){
that.getVideoId().then(video=>{
that.beansPay(video.data.id,param.serialNo);
})
}else{
intervalTime = setInterval(()=>{
if(uni.getStorageSync('userinfo').token){
clearInterval(intervalTime)
that.getVideoId().then(video=>{
that.beansPay(video.data.id,param.serialNo);
})
}else {
console.log('no users login')}
},100)
}
},
getEncryptData(obj) {
const {code, serialNo } = obj;
let that = this;
// TODO: 此接口请求后台,返回下面的setCanPlaySerialList接口需要的加密参数
const { srcAppid, dramaId } = this.pm.getInfo()
})
// 设置右侧固定运营位置跳转路径
pm.setActivityInfo({
url: ''
})
// 设置运营区域
pm.updateOpenArea({
showLeft: false,
showRight: false,
leftsideAreaList: [{
left: 16, // 类似绝对定位的样式
top: 20,
width: 72,
height: 32
}, ],
ext: 'extInfo',
})
},
_initShare() {
const pm = this.pm
// 关于分享的处理
// 开启分享以及withShareTicket
pm.setDramaFlag({
share: true,
withShareTicket: true
})
// 获取分享参数,页面栈只有短剧播放器一个页面的时候可获取到此参数
// 例如从分享卡片进入、从投流广告直接跳转到播放器页面,从二维码直接进入播放器页面等情况
playletPlugin.getShareParams().then(res => {
console.log('getLaunch options query res', res)
// 关于extParam的处理,需要先做decodeURIComponent之后才能得到原值
const extParam = decodeURIComponent(res.extParam)
console.log('getLaunch options extParam', extParam)
// 如果设置了withShareTicket为true,可通过文档的方法获取更多信息
// https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html
const enterOptions = wx.getEnterOptionsSync()
console.log('getLaunch options shareTicket', enterOptions.shareTicket)
}).catch(err => {
console.log('getLaunch options query err', err)
})
this.getVideoId()
// 设置分享参数
pm.setExtParam(JSON.stringify({
vid: this.data.vid,
fxpid: this.data.userInfo.id,
invite: this.data.userInfo.invite || ''
}))
},
// 检测是否可以播放
onCheckIsCanPlay(param) {
var that = this;
let intervalTime = null;
serialNo = param.serialNo
console.log('onCheckIsCanPlay param', param);
if (uni.getStorageSync('userinfo').token) {
that.getVideoId().then(video => {
that.beansPay(video.data.id, param.serialNo);
})
} else {
intervalTime = setInterval(() => {
if (uni.getStorageSync('userinfo').token) {
clearInterval(intervalTime)
that.getVideoId().then(video => {
that.beansPay(video.data.id, param.serialNo);
})
} else {
console.log('no users login')
}
}, 100)
}
},
getEncryptData(obj) {
const {
code,
serialNo
} = obj;
let that = this;
// TODO: 此接口请求后台,返回下面的setCanPlaySerialList接口需要的加密参数
const {
srcAppid,
dramaId
} = this.pm.getInfo()
console.log('getEncryptData start', srcAppid, dramaId, serialNo)
return new Promise((resolve, reject) => {
// 获取免费剧集列表(包含用户已经支付的 )
wx.login({
success(res) {
// console.log('code',res.code)
httpRequest({
url:"/api/video/videoInfoWechatV1",
method:"GET",
data:{
code:res.code,
vid:that.data.vid,
oid:that.data.pay_oid
}
}).then(res=>{
console.log('videoPlayer getCanPlayList res', res)
resolve({
data:res.data.data,
encryptedData: res.data.enData
})
}).catch(err=>{
reject(err)
console.log(err)
})
}
})
})
},
pageBack(){
let that = this;
if(that.data.is_record==1){
// that.pm.navigateBack()
that.pm.switchTab({
url: '/pages/tabs/home'
})
}else{
uni.showModal({
title:"提示",
content:"是否将此剧加入追剧列表",
success(modelRes){
if(modelRes.confirm){
console.log('success');
that.changeStar();
}
that.pm.switchTab({
url: '/pages/tabs/home'
})
}
})
}
console.log('getEncryptData start', srcAppid, dramaId, serialNo)
return new Promise((resolve, reject) => {
// 获取免费剧集列表(包含用户已经支付的 )
wx.login({
success(res) {
// console.log('code',res.code)
httpRequest({
url: "/api/video/videoInfoWechatV1",
method: "GET",
data: {
code: res.code,
vid: that.data.vid,
oid: that.data.pay_oid
}
}).then(res => {
console.log('videoPlayer getCanPlayList res', res)
resolve({
data: res.data.data,
encryptedData: res.data.enData
})
}).catch(err => {
reject(err)
console.log(err)
})
}
})
})
},
pageBack() {
let that = this;
if (that.data.is_record == 1) {
// that.pm.navigateBack()
that.pm.switchTab({
url: '/pages/tabs/home'
})
} else {
uni.showModal({
title: "提示",
content: "是否将此剧加入追剧列表",
success(modelRes) {
if (modelRes.confirm) {
console.log('success');
that.changeStar();
}
that.pm.switchTab({
url: '/pages/tabs/home'
})
}
})
}
},
getVideoId(){
let that = this;
let infos = this.pm.getInfo();
console.log('getVideoId start',infos);
// 获取当前需支付剧集ID(媒资库的ID不能用,需要用我们自己的剧集ID)
return new Promise((resolve, reject) => {
httpRequest({
url:"/api/video/dramaIdToVideoId",
method:"GET",
data:{
drama_id:infos.dramaId,
no:infos.serialNo
}
}).then(res=>{
this.data.mid = res.data.id;
if(res.data.drama_vid != that.data.vid){
that.data.vid = res.data.drama_vid
}
this.data.is_record = res.data.is_record
resolve(res)
}).catch(err=>{
console.log(err)
reject(err)
})
})
},
},
getVideoId() {
let that = this;
let infos = this.pm.getInfo();
console.log('getVideoId start', infos);
// 获取当前需支付剧集ID(媒资库的ID不能用,需要用我们自己的剧集ID)
return new Promise((resolve, reject) => {
httpRequest({
url: "/api/video/dramaIdToVideoId",
method: "GET",
data: {
drama_id: infos.dramaId,
no: infos.serialNo
}
}).then(res => {
this.data.mid = res.data.id;
if (res.data.drama_vid != that.data.vid) {
that.data.vid = res.data.drama_vid
}
this.data.is_record = res.data.is_record
resolve(res)
}).catch(err => {
console.log(err)
reject(err)
})
})
},
// 金豆购买剧集
beansPay(mid,serialNo){
let buyData = uni.getStorageSync("buydata");
let that = this;
console.log('beansPay begin',mid,serialNo)
let upData={
sum:1,
buytype:"金豆",
pricebuy:buyData.isvip ==2?buyData.vippriceq:buyData.priceq,
token:uni.getStorageSync("userinfo").token,
uid:uni.getStorageSync("userinfo").id,
ad_code:uni.getStorageSync('get_ad_code'),
lx:2,//1 全章购买 2单集购买
smid:mid,//单集ID
wxlx:'wxxcx',
id:that.data.vid ,//剧ID
openid: uni.getStorageSync("openid")
}
// 支付
PAY.pays.beansPay(upData).then((res)=>{
console.log('beansPay res',res)
that.getEncryptData({serialNo: serialNo}).then(enRes => {
that.pm.isCanPlay({
data: enRes.encryptedData,
serialNo: serialNo,
status:res.code ==1?1:2
})
})
}).catch(err=>{
if(err.msg =='金豆不足'){
that.getEncryptData({serialNo: serialNo}).then(enRes => {
that.pm.isCanPlay({
data: enRes.encryptedData,
serialNo: serialNo,
status:2
})
})
}
console.log('jinDouPay fail',err)
})
// 金豆购买剧集
beansPay(mid, serialNo) {
let buyData = uni.getStorageSync("buydata");
let that = this;
console.log('beansPay begin', mid, serialNo)
let upData = {
sum: 1,
buytype: "金豆",
pricebuy: buyData.isvip == 2 ? buyData.vippriceq : buyData.priceq,
token: uni.getStorageSync("userinfo").token,
uid: uni.getStorageSync("userinfo").id,
ad_code: uni.getStorageSync('get_ad_code'),
lx: 2, //1 全章购买 2单集购买
smid: mid, //单集ID
wxlx: 'wxxcx',
id: that.data.vid, //剧ID
openid: uni.getStorageSync("openid")
}
// 支付
PAY.pays.beansPay(upData).then((res) => {
console.log('beansPay res', res)
that.getEncryptData({
serialNo: serialNo
}).then(enRes => {
that.pm.isCanPlay({
data: enRes.encryptedData,
serialNo: serialNo,
status: res.code == 1 ? 1 : 2
})
})
}).catch(err => {
if (err.msg == '金豆不足') {
that.getEncryptData({
serialNo: serialNo
}).then(enRes => {
that.pm.isCanPlay({
data: enRes.encryptedData,
serialNo: serialNo,
status: 2
})
})
}
console.log('jinDouPay fail', err)
})
},
// 更新喜欢状态
userLikeChange() {
let that = this;
that.getVideoId({
dramaId: that.data.info.dramaId,
serialNo: that.data.info.serialNo
}).then(res => {
httpRequest({
url: "/api/user/tapLove",
method: "GET",
data: {
vid: that.data.vid,
mid: res.data.id
}
}).then(res => {
console.log('userLikeChange res', res)
})
})
},
// 更新追剧状态
changeStar() {
let that = this;
let subData = {
vid: that.data.vid,
token: uni.getStorageSync("userinfo").token,
uid: uni.getStorageSync("userinfo").id,
mid: ""
}
that.getVideoId({
dramaId: that.data.info.dramaId,
serialNo: that.data.info.serialNo
}).then(res => {
},
// 更新喜欢状态
userLikeChange(){
let that = this;
that.getVideoId({dramaId:that.data.info.dramaId,serialNo:that.data.info.serialNo}).then(res=>{
httpRequest({
url:"/api/user/tapLove",
method:"GET",
data:{
vid:that.data.vid,
mid:res.data.id
}
}).then(res=>{
console.log('userLikeChange res',res)
})
})
},
// 更新追剧状态
changeStar(){
let that = this;
let subData = {
vid:that.data.vid,
token:uni.getStorageSync("userinfo").token,
uid:uni.getStorageSync("userinfo").id,
mid:""
}
that.getVideoId({dramaId:that.data.info.dramaId,serialNo:that.data.info.serialNo}).then(res=>{
httpRequest({
url: "/api/user/videorecord",
method: "GET",
data: {
vid: that.data.vid,
mid: res.data.id
}
}).then(rest => {
console.log('userLikeChange res', rest)
}).catch(errs => {
console.log(errs)
})
httpRequest({
url:"/api/user/videorecord",
method:"GET",
data:{
vid:that.data.vid,
mid:res.data.id
}
}).then(rest=>{
console.log('userLikeChange res',rest)
}).catch(errs=>{
console.log(errs)
})
})
},
// 更新播放记录
changePlayLog() {
let that = this;
that.getVideoId({
dramaId: that.data.info.dramaId,
serialNo: that.data.info.serialNo
}).then(res => {
console.log('changePlayLog mid', res)
httpRequest({
url: "/api/video/bfjl",
method: "GET",
data: {
vid: that.data.vid,
mid: res.data.id
}
}).then(rest => {
console.log('changePlayLog res', rest)
}).catch(errs => {
console.log('change PlayLog fail', errs)
})
})
},
})
},
// 更新播放记录
changePlayLog(){
let that = this;
that.getVideoId({dramaId:that.data.info.dramaId,serialNo:that.data.info.serialNo}).then(res=>{
console.log('changePlayLog mid',res)
httpRequest({
url:"/api/video/bfjl",
method:"GET",
data:{
vid:that.data.vid,
mid:res.data.id
}
}).then(rest=>{
console.log('changePlayLog res',rest)
}).catch(errs=>{
console.log('change PlayLog fail',errs)
})
})
},
// 支付完
chargeEnd(payRes){
let that = this;
console.log("paySuccess",payRes)
let share_g_order_vid = uni.getStorageSync('g_order_vid');
if(payRes.status == "paySuccess"){
that.data.pay_oid = payRes.oid;
this.onCheckIsCanPlay({dramaId:that.data.info.dramaId,serialNo:payRes.serialNo,oid:payRes.oid })
that.pm.setExtParam(JSON.stringify({
vid:this.data.vid,
fxpid:this.data.userInfo.id,
invite:this.data.userInfo.invite||'',
g_order_id:payRes.gOrderId,
g_order_vid:payRes.vid
adEnd(mid) {
let buyData = uni.getStorageSync("buydata");
let that = this;
let upData = {
sum: 1,
buytype: 'adUnlock'
pricebuy: buyData.isvip == 2 ? buyData.vippriceq : buyData.priceq,
token: uni.getStorageSync("userinfo").token,
uid: uni.getStorageSync("userinfo").id,
ad_code: uni.getStorageSync('get_ad_code'),
lx: 2, //1 全章购买 2单集购买
smid: mid, //单集ID
wxlx: 'wxxcx',
id: that.data.vid, //剧ID
openid: uni.getStorageSync("openid")
}
// 支付
PAY.pays.beansPay(upData).then((res) => {
console.log('beansPay res', res)
that.getEncryptData({
serialNo: serialNo.serialNo
}).then(enRes => {
that.pm.isCanPlay({
data: enRes.encryptedData,
serialNo: serialNo.serialNo,
status: res.code == 1 ? 1 : 2
})
})
}).catch(err => {
if (err.msg == '金豆不足') {
that.getEncryptData({
serialNo: serialNo.serialNo
}).then(enRes => {
that.pm.isCanPlay({
data: enRes.encryptedData,
serialNo: serialNo.serialNo,
status: 2
})
})
}
console.log('jinDouPay fail', err)
})
},
}))
that.pm.hideChargeDialog();
if(payRes.gOrderId && share_g_order_vid != payRes.vid){
that.pm.updateOpenArea({showLeft: true});
}
// 支付完
chargeEnd(payRes) {
let that = this;
console.log("paySuccess", payRes)
let share_g_order_vid = uni.getStorageSync('g_order_vid');
if (payRes.status == "paySuccess") {
that.data.pay_oid = payRes.oid;
this.onCheckIsCanPlay({
dramaId: that.data.info.dramaId,
serialNo: payRes.serialNo,
oid: payRes.oid
})
that.pm.setExtParam(JSON.stringify({
vid: this.data.vid,
fxpid: this.data.userInfo.id,
invite: this.data.userInfo.invite || '',
g_order_id: payRes.gOrderId,
g_order_vid: payRes.vid
}
},
}))
that.pm.hideChargeDialog();
if (payRes.gOrderId && share_g_order_vid != payRes.vid) {
that.pm.updateOpenArea({
showLeft: true
});
}
}
},
}
function PlayerManager() {
var newProto = Object.assign({}, proto)
for (const k in newProto) {
if (typeof newProto[k] === 'function') {
this[k] = newProto[k].bind(this)
} else if (typeof newProto[k] === 'object') {
if (!newProto[k]) {
this[k] = newProto[k]
} else {
this[k] = deepClone(newProto[k])
}
}
}
var newProto = Object.assign({}, proto)
for (const k in newProto) {
if (typeof newProto[k] === 'function') {
this[k] = newProto[k].bind(this)
} else if (typeof newProto[k] === 'object') {
if (!newProto[k]) {
this[k] = newProto[k]
} else {
this[k] = deepClone(newProto[k])
}
}
}
}
PlayerManager.navigateToPlayer = navigateToPlayer
module.exports = PlayerManager
module.exports = PlayerManager