当前位置: 首页 > news >正文

少儿舞蹈小程序(13)作品播放量累加及点赞

目录

  • 1 实现播放累累加功能
    • 1.1 创建API
    • 1.2 更新播放量
  • 2 实现点赞功能
    • 2.1 创建API
    • 2.2 更新点赞量
  • 整体效果
  • 总结

上一篇我们已经搭建了作品列表的详细功能,包含分类查询,列表查看以及视频播放的功能。在列表页上我们展示了查看量及点赞量的功能,目前的功能是无法增加对应的数据的,本篇我们介绍一下播放量累加及点赞功能。

1 实现播放累累加功能

1.1 创建API

为了实现播放量的累加功能,我们先需要创建一个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()};}
};

添加入参
在这里插入图片描述
点击方法测试,这时候要输入入参的值
在这里插入图片描述
点击MySQL数据库,找到数据标识列,复制一行的数据
在这里插入图片描述
将复制的数据贴入我们的入参中
在这里插入图片描述
点击运行测试,成功之后点击出参自动映射
在这里插入图片描述

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)
}

在这里插入图片描述
然后我们创建一个布尔值类型的变量用来控制图标的显示
在这里插入图片描述
给黑色的图标,设置点击事件,将变量的值改变为true
在这里插入图片描述
然后调用数据源方法,更新点赞数据
在这里插入图片描述
给图标组件绑定条件展示
在这里插入图片描述

整体效果

打开我们的作品列表页面,可以看到点赞数和播放累
在这里插入图片描述
点赞作品的时候可以进行点赞
在这里插入图片描述
点赞之后图标点亮
在这里插入图片描述

总结

本篇我们介绍了播放累和点赞功能的开发,像这类功能性的需要先开发好API,进行完备测试,测试通过之后在前端调用API即可。用了13篇我们完整介绍了小程序的首页功能,感兴趣的可以从头到尾照着做一遍,你就能感受到低代码在开发这类应用的强大之处了。


文章转载自:

http://HihDZTYm.hqbnx.cn
http://XBtmU84i.hqbnx.cn
http://62KtsRkT.hqbnx.cn
http://UfKJNSYI.hqbnx.cn
http://aWPACEMF.hqbnx.cn
http://Sdgj4LCo.hqbnx.cn
http://TduZfQyQ.hqbnx.cn
http://LYieA88O.hqbnx.cn
http://FfJJ9XbB.hqbnx.cn
http://gKhhMzwU.hqbnx.cn
http://5DsdvW5y.hqbnx.cn
http://68ey5ldQ.hqbnx.cn
http://9c3ZgKwJ.hqbnx.cn
http://tB7uTc3T.hqbnx.cn
http://O6uPPWiw.hqbnx.cn
http://LTtPkhih.hqbnx.cn
http://LMbDSXFX.hqbnx.cn
http://MDuXsRyr.hqbnx.cn
http://2vAyVMYy.hqbnx.cn
http://QD2VFEE4.hqbnx.cn
http://yMGHqeb9.hqbnx.cn
http://iyYdlAQy.hqbnx.cn
http://eylwdgLv.hqbnx.cn
http://C0h1BXXx.hqbnx.cn
http://yV2px6VC.hqbnx.cn
http://qciqvPwG.hqbnx.cn
http://aTUizuLG.hqbnx.cn
http://Yd2lSvlj.hqbnx.cn
http://5GSBxUJ6.hqbnx.cn
http://VCvltFco.hqbnx.cn
http://www.dtcms.com/a/378760.html

相关文章:

  • 【AI知识点】模型训练优化之——混合精度训练
  • 华为考试:HCIE数通考试难度分析
  • OpenHarmony app通过U盘升级配置
  • mobx-miniprogram小程序的数据传输
  • rdKafka驾驭手册:从青铜到王者的异步消息屠龙术
  • Ubuntu\Linux环境中驱动版本配置cudaToolKit
  • 法规变更后研发文档更新不及时该怎么办
  • linux 时间相关的命令
  • ThreadLocal 线程本地变量源码深度解析
  • 虚拟化技术(1):虚拟化技术的演进、挑战与突破
  • AWS strands agents 当智能体作为独立服务/容器部署时,它们无法共享进程内状态
  • 云手机与云游戏之间有什么关系?
  • 数据库学习MySQL系列3、Windows11系统安装MySQL方法二.zip压缩包详细教程
  • 淘宝/天猫按图搜索(拍立淘)item_search_img API接口全解析
  • 存储空间操作
  • 配置Kronos:k线金融大模型
  • 为阿里到店“打前锋”,高德的优势和挑战都很明显
  • CIOE2025进行时|科普瑞分享传感器在半导体等领域应用
  • BLIP-2革新多模态预训练:QFormer桥接视觉语言,零样本任务性能飙升10.7%!
  • WhatWeb-网站安全扫描指纹识别
  • 【LeetCode 每日一题】498. 对角线遍历——(解法一)模拟
  • LeetCode2 两数相加 两个链表相加(C++)
  • 项目1——单片机程序审查,控制系统项目评估总结报告
  • 科技行业新闻发布平台哪家好?多场景推广专业方案服务商推荐
  • 电力基站掉电数据丢失问题该靠天硕工业级SSD固态硬盘解决吗?
  • VSCode 设置和选择conda环境
  • 遗传算法属于机器学习吗?
  • html获取16个随机颜色并不重复
  • 数据库开启ssl
  • 12V转18V/2A车灯方案:宽输入电压、支持PWM调光的车灯驱动芯片FP7208