上一篇我们已经搭建了作品列表的详细功能,包含分类查询,列表查看以及视频播放的功能。在列表页上我们展示了查看量及点赞量的功能,目前的功能是无法增加对应的数据的,本篇我们介绍一下播放量累加及点赞功能。
1 实现播放累累加功能
1.1 创建API
/**
* 增加作品浏览量API
* 根据作品ID增加作品的浏览次数
*/
module.exports = async function(params, context){
try {
// 获取作品ID参数
const showcaseId = params.showCaseId;
// 参数校验
if(!showcaseId){
return{
code: 400,
message: '作品ID不能为空',
data: null,
timestamp: Date.now()
};
}
// 查询作品当前信息(使用查询单条记录的语法)
const showcaseResult = await context.callModel({
dataSourceName: 'showcase',
methodName: 'wedaGetItemV2',
params: {
filter: {
where: {
_id: {$eq: showcaseId }
}
},
select: {$master:true}
}
});
// 检查作品是否存在
if(!showcaseResult&&Object.keys(showcaseResult).length===0){
return{
code: 404,
message: '作品不存在',
data: null,
timestamp: Date.now()
};
}
// 获取当前浏览量
const currentViews = showcaseResult.views ||0;
// 更新浏览量(当前浏览量+1)
const updateResult = await context.callModel({
dataSourceName: 'showcase',
methodName: 'wedaUpdateV2',
params: {
filter: {
where: {
_id: {$eq: showcaseId }
}
},
data: {
views: currentViews + 1
}
}
});
// 返回成功结果
return{
code: 200,
message: '浏览量更新成功',
data: {
showcaseId: showcaseId,
previousViews: currentViews,
currentViews: currentViews + 1
},
timestamp: Date.now()
};
} catch (error){
console.error('增加作品浏览量错误:', error);
return{
code: 500,
message: '服务器内部错误',
data: null,
timestamp: Date.now()
};
}
};
1.2 更新播放量
2 实现点赞功能
2.1 创建API
/**
* 增加作品点赞API
* 根据作品ID增加作品的点赞次数
*/
module.exports = async function(params, context){
try {
// 获取作品ID参数
const showcaseId = params.showCaseId;
// 参数校验
if(!showcaseId){
return{
code: 400,
message: '作品ID不能为空',
data: null,
timestamp: Date.now()
};
}
// 查询作品当前信息(使用查询单条记录的语法)
const showcaseResult = await context.callModel({
dataSourceName: 'showcase',
methodName: 'wedaGetItemV2',
params: {
filter: {
where: {
_id: {$eq: showcaseId }
}
},
select: {$master:true}
}
});
// 检查作品是否存在
if(!showcaseResult&&Object.keys(showcaseResult).length===0){
return{
code: 404,
message: '作品不存在',
data: null,
timestamp: Date.now()
};
}
// 获取当前点赞量
const currentLikes = showcaseResult.likes ||0;
// 更新浏览量(当前浏览量+1)
const updateResult = await context.callModel({
dataSourceName: 'showcase',
methodName: 'wedaUpdateV2',
params: {
filter: {
where: {
_id: {$eq: showcaseId }
}
},
data: {
likes: currentLikes + 1
}
}
});
// 返回成功结果
return{
code: 200,
message: '点赞量更新成功',
data: {
showcaseId: showcaseId,
previousLikes: currentLikes,
currentLikes: currentLikes + 1
},
timestamp: Date.now()
};
} catch (error){
console.error('增加作品点赞量错误:', error);
return{
code: 500,
message: '服务器内部错误',
data: null,
timestamp: Date.now()
};
}
};
2.2 更新点赞量
:root {
color:var(--primary-color)
}
