当前位置: 首页 > 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篇我们完整介绍了小程序的首页功能,感兴趣的可以从头到尾照着做一遍,你就能感受到低代码在开发这类应用的强大之处了。

相关文章:

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

深入解析:少儿舞蹈小程序(13)作品播放量累加及点赞pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monos…...

Ubuntu 24.04 安装最新版podman@5.6.1

0. 更新系统 sudo apt update && sudo apt upgrade -y 1. 下载并解压官方静态包 cd /tmp curl -L -O https://github.com/containers/podman/releases/download/v5.6.1/podman-remote-static-linux_amd64.tar.gz tar -xzf podman-remote-static-linux_amd64.tar.gz chm…...

深入解析:Unity:XML笔记(二)——Xml序列化、反序列化、IXmlSerializable接口

深入解析:Unity:XML笔记(二)——Xml序列化、反序列化、IXmlSerializable接口pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "C…...

2025.9.15——知识点学习

图 回路 起点和终点相同的路径,也叫“环” 重边 两个顶点中间不只有一条边 自环 自己到自己的边 简单图 没有重边和自环的图 完全图 每对定点之间都恰有一条边相连 稠密图 边数接近完全图,e>=NlogN 稀疏图 边数远少于完全图,e<NlogN...

详细介绍:拉帮结派下的制造麻烦

详细介绍:拉帮结派下的制造麻烦pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; fon…...

C# Avalonia 13- MoreDrawing - CustomPixelShader

C# Avalonia 13- MoreDrawing - CustomPixelShader目前Avalonia无法继承Effect类重写,因为构造函数是internal。我们重写一个GrayscaleImage实现灰化。GrayscaleImage类public class GrayscaleImage : Control{public static readonly StyledProperty<IImage?> SourceP…...

使用标签Tag控制蒙太奇的触发时机-playmontageAndWait-Send GameplayEvent-WaitGameplayEvent

控制蒙太奇的通知,可以在蒙太奇中的通知中发送标签事件,在GA中接收标签事件 在事件通知蓝图中...

sql事务执行

使用上下文管理器from sqlalchemy import create_engine, text from sqlalchemy.orm import sessionmaker from contextlib import contextmanager import logging# 创建数据库连接 engine = create_engine(mysql+pymysql://username:password@localhost/dbname) SessionLocal …...

GAS_Aura-Spawn FireBolt from Event

1将Spawn火球设置为单独的接口,并在触发GA时触发...

在CentOS 7系统上创建SSL/TLS证书以启用HTTPS

第一步:装备准备 首先,确保您的武器库(包管理器)是最新的。咒语(命令)如下: sudo yum update sudo yum install epel-release sudo yum install mod_ssl 这将更新您的包索引,安装EPEL仓库,并让Apache HTTP服务器拥有处理SSL的能力。 第二步:私钥的锻造 SSL/TLS证书需…...

从Craigslist广告到BHIS安全顾问:非科班生的渗透测试求职之路

本文讲述作者通过Craigslist招聘广告应聘Black Hills信息安全公司的经历,涉及文本简历防钓鱼技巧、Linux技术面试、网络端口知识考察以及问题解决能力的实际测试,展现了网络安全行业独特的招聘方式与技术评估要点。ADVISORY: 本博文中提及的技术和工具可能已过时,不适用于当…...

Java 微服务架构中的实践与挑战

一、引言 微服务架构已成为现代分布式系统的主流设计思想。它强调将单体应用拆分为一组小而自治的服务,每个服务聚焦特定业务能力,并通过轻量级通信方式协作。对于以 Java 为核心的企业级系统,微服务架构的落地往往依赖 Spring Boot、Spring Cloud 以及后续兴起的服务网格(…...

Java 与大数据处理:从 Hadoop 到实时计算

一、引言 在大数据时代,数据已经成为企业的战略资产。无论是金融风控、智能推荐,还是智慧城市与医疗健康,背后都依赖海量数据的存储与计算。作为企业开发的主流语言,Java 在大数据生态中扮演着不可替代的角色。从最早的 Hadoop 批处理框架,到 Spark、Flink 的内存与流式计…...

国产IT运维卡壳?乐维智能运维体让运维团队告别“适配难、监控乱”

“刚把3台核心服务器操作系统从CentOS7换成麒麟V10,之前用的Zabbix探针直接无法采集服务器的CPU、磁盘温度;机房中华为交换机、锐捷AC、浪潮存储分散在不同机柜,每台设备都要单独登录后台看告警,上周就因为没有及时发现交换机端口故障,导致研发部门断网整整一天……” 某1…...

ubuntu18安装mysql5.7

环境Os:ubuntu 18.04 desktop桌面版mysql:mysql-5.7.42-linux-glibc2.12 查看操作系统信息root@db:/soft# uname -a Linux db 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linuxroot@db:/soft# cat /etc/os-release NAME="U…...

【IEEE出版 |已连续5届EI稳定检索】第六届计算机工程与智能控制学术会议(ICCEIC 2025)

聚焦计算机工程与智能控制前沿,涵盖网络安全、硬件系统、软件工程、嵌入式创新等多个核心议题及交叉学科研究。ICCEIC 2025将计算机工程和智能控制领域的创新学者和工业专家聚集到一个共同的论坛上,共享最新科研成果,破解关键问题,展望未来发展。第六届计算机工程与智能控制…...

在选择2025年代码托管平台时,Gitee和GitHub作为国内外两大主流平台各有优势。本文将从多个维度进行对比分析,帮助开发者做出更适合自身需求的选择。

在选择2025年代码托管平台时,Gitee和GitHub作为国内外两大主流平台各有优势。本文将从多个维度进行对比分析,帮助开发者做出更适合自身需求的选择。 作为中国本土领先的代码托管平台,Gitee近年来发展迅猛。数据显示,平台已拥有超过500万注册用户和1000万活跃仓库,在国内开…...

android使用socks5的教程

1.安装APP 下载地址忽略 2.使用配置的地址账号信息 少侠,我看你气度不凡天赋异禀,骨骼精奇,这么帅,来了就帮推荐一把吧 我的最近更新 最新发布文章、框架、咨询等,来看看吧...

vue3 自定义指令并实现页面元素平滑上升

基本示例 // 在directives/example.ts中 import type { Directive } from "vue"; /*** 示例*/ const example: Directive = {mounted(el) {console.log("mounted", el);},beforeUnmount(el) {console.log("beforeUnmount", el);} }; export defa…...

abp记录

abp记录abp8.3 : abp new MyCompany.MyProject -t app --no-ui -d ef --database-provider mysql --version 8.3.0...

强化学习(二十):模仿学习

一、概念 1、很多情况下,环境没有明确的奖励,例如聊天,自动驾驶的操作,无法明确定义好坏 2、不知道该怎么定义奖励时,可以收集专家示范 3、模仿学习(imitation learning,IL):智能体通过专家示范来学习,环境没有奖励给智能体二、行为克隆 1、类似于监督学习,专家做什…...

重生之从零开始的神经网络算法学习之路 —— 第七篇 重拾 PyTorch(超分辨率重建和脚本的使用)

重生之从零开始的神经网络算法学习之路 —— 第七篇 重拾 PyTorch(超分辨率重建和脚本的使用)重生之从零开始的神经网络算法学习之路——第七篇 重拾PyTorch(超分辨率重建和脚本的使用) 引言 在前一篇中,我们初步探索了PyTorch框架的使用并体验了GPU加速计算的优势。本篇将…...

从基础到实践(四十五):车载显示屏LCD、OLED、Mini-LED、MicroLED的工作原理、设计差异等说明 - 教程

从基础到实践(四十五):车载显示屏LCD、OLED、Mini-LED、MicroLED的工作原理、设计差异等说明 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…...

国产项目管理工具崛起:Gitee如何以本土化优势重构开发协作生态

国产项目管理工具崛起:Gitee如何以本土化优势重构开发协作生态 在数字化浪潮席卷全球的当下,项目管理工具已成为企业技术栈中不可或缺的基础设施。随着中国科技产业的蓬勃发展,本土化项目管理平台正展现出强大的竞争力。作为国内领先的DevOps全生命周期解决方案提供商,Gite…...

GAS_Aura-Sending Gameplay Events

1讲了增加一个TaskNotify的通知蓝图,及其内部的函数的作用...

【IEEE-智造领空天,寰宇链未来】第五届机电一体化技术与航空航天工程国际学术会议(ICMTAE 2025)

会议将围绕“航空航天工程”、“机电一体化”、“先进制造”、“精密测量与仪器”、“结构强度与完整性”等相关最新研究领域,为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供一个分享专业经验,扩大专业网络,面对面交流新思想以及展示研究成…...

进程间通信(消息队列)

消息队列概念 Linux系统中消息队列(Message Queue)是进程间通信的一种方式,这种通信机制的好处是可以传输指定类型(用户可以自行定义)的数据,相同类型的数据根据到达顺序在队列中进行排队。 当然,不同类型的数据不能处于同一个队列中,也就是说系统中可能存在多个消息队列…...

有点长所以单发的闲话(对acgn的看法(存疑))

因为某个东西的影响,突然有些感悟,想写点东西。 先解释题目吧,\(a,c,g,n\) 分别是动画,漫画,游戏,小说。算是构成了所谓“二次元”。 逢 我了解二次元这一块可以说是比较健康且古早的。我看电脑是从 \(3,4\) 岁开始的(我妈如是说),当时是小学吧,我在腾讯(应该是)看…...

【光照】Unity中的[光照模型]概念辨析

本文介绍了游戏渲染中的核心光照模型。传统标准光照模型(Phong/Blinn-Phong)包含漫反射和环境光,计算简单但真实感不足。物理基础渲染(PBR)基于BRDF数学框架,整合GGX法线分布和菲涅尔效应,通过金属度/粗糙度参数实现更真实的能量守恒光照效果。相比传统经验模型,PBR计算…...

深入解析:Shell脚本监控系统资源详解

深入解析:Shell脚本监控系统资源详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important…...

计算几何全家桶

#include <bits/stdc++.h> using namespace std;using point_t=long double; //全局数据类型,可修改为 long long 等constexpr point_t eps=1e-8; constexpr long double PI=3.1415926535897932384l;// 点与向量 template<typename T> struct point {T x,y;bool …...

链表

点击查看代码 /******************************************************************************************************** * * * * * * * Copyright (c) 2023-2024 cececlmx@126.com All right Reserved * ******************************************************…...

国产代码托管平台Gitee崛起:企业数字化转型的安全基石

国产代码托管平台Gitee崛起:企业数字化转型的安全基石 在数字经济高速发展的今天,软件开发已成为企业创新的核心驱动力。作为分布式版本控制系统的Git,因其高效协作特性而广受开发者青睐。然而,随着国际形势变化和数据安全法规日趋严格,越来越多的中国企业开始寻求自主可控…...

Gitee:本土化创新赋能企业数字化转型,打造高效研发新范式

Gitee:本土化创新赋能企业数字化转型,打造高效研发新范式 在数字化转型浪潮席卷各行各业的当下,企业研发效能提升已成为关乎企业核心竞争力的关键因素。作为国内领先的一站式DevOps研发管理平台,Gitee凭借其独特的本土化优势和技术创新实力,正在重新定义企业级代码托管与协…...

完整教程:从无声视频中“听见”声音:用视觉语言模型推理音频描述

完整教程:从无声视频中“听见”声音:用视觉语言模型推理音频描述pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&…...

Win10如何安装语音包

一、系统环境Win10 参考 https://cp.baidu.com/landing/tscp_doc/8e36175e077a04256c1b85e9a0975471二、安装步骤 2.1、控制面板,打开windows设置说明:选择时间和语言选项,看到如下界面,主要关注语言及语音即可2.2、语言安装 选择语言,点击添加语言功能选择泰语,点击一下…...

C#通过TCP/IP控制康奈视读码枪实现方案

一、通信协议解析 康奈视读码枪(如DataMan系列)的TCP/IP通信遵循以下规范:通信模式 服务器模式:读码枪作为TCP服务端监听指定端口(默认23/8000) 客户端模式:PC作为客户端主动连接设备IP指令格式指令类型 示例指令 功能说明触发扫描 TRIGGER ON 启用连续扫描模式读取数据…...

利用三方APP[IP切换助手]使用socks5

1.安装前必读提示 a.此乃三方软件,它有收费模式,你不必理会它首页所出的收费方式.这些都是随机IP,且是不稳定的. b.此乃三方软件,我们不排除他们有可能会收集配置服务器,用户自行决定.之所以推荐它,目的:是为那些不想麻烦自己去注册其他地区apple store id的用户; c.此乃三方软…...

智能卫浴雷达模块感应方案WT4101寿命长不怕干扰

目前新装修的公共卫浴很多都采用的是雷达方案的感应开关方式,采用雷达方案做感应开关的原因很简单,因为雷达在公共环境当中干扰因素少寿命长,能够稳定的承担起感应开关的工作,并且雷达的成本也在逐年下降,让更多雷达感应开关普及到市场上。红外感应模块应用在公共卫浴的痛…...

修改Windows 资源器中文件的创建时间或更新时间

方法一:使用PowerShell 使用管理员身份打开PowerShell 执行语句 更改创建时间(Get-Item "D:\文件\demo.txt").CreationTime = "2025-09-15 12:34:56"更改更新时间(Get-Item "D:\文件\demo.txt").LastWriteTime = "2025-09-15 14:30:00&qu…...

Mysql练习,15个必练语句带你玩转数据库

还在为记不住MySQL语句而苦恼吗?你是否每次写SQL都要反复查阅文档?今天我们就来一起练习MySQL最常用的15个语句,让你从零开始掌握数据库操作。 快速上手MySQL基本操作 连接数据库是第一步,记住用户名和密码要紧跟-u和-p参数,不能有空格。如果不想明文显示密码,可以只输入…...

威力导演2026中文版 CyberLink PowerDirector 2026 v24.0 旗舰版更新内容

讯连科技威力导演(PowerDirector)是一款功能全面的视频编辑软件及视频剪辑软件.威力导演中文版采用独家之智慧型高速不失真影片输出技术SVRT,可快速编辑处理视频,威力导演旗舰版(CyberLink PowerDirector Ultimate)支持XAVC-S及H.265/HEVC音视频编码,威力导演破解版视频创作功能…...

越权漏洞

本实验用本地搭建的pikachu漏洞练习平台做实验水平越权水平越权是指同一权限级别下的不同用户之间,可以非法访问或操作其他用户的数据或资源。即用户通过某种手段,绕过系统的访问控制机制,获取与自身权限同级的其他用户的信息或执行相关操作咱们先看一下水平越权环境可以看到…...

GAS_Aura-Ability Tasks

1讲了PlayMontageAndWait的源码...

本地大模型的崛起:为什么越来越多人不用云端 AI?

一、引言过去两年,AI 产品几乎都依赖云端模型,比如 ChatGPT、文心一言。但现在越来越多人开始尝试 本地大模型(Local LLM):不需要联网、不依赖云端服务器。为什么这种趋势正在兴起?本文从 隐私、安全、成本、效率 等角度来解读。二、什么是“本地大模型”?定义:将大语言…...

Gitee:国产代码托管平台如何重塑企业研发效能版图

Gitee:国产代码托管平台如何重塑企业研发效能版图 在全球数字化转型浪潮中,企业研发效能正成为决定商业竞争力的关键因素。作为中国本土领先的代码托管平台,Gitee通过深度本地化服务与技术创新,正在重新定义企业级软件开发流程。最新统计显示,该平台已汇聚超过1350万开发者…...

CompassBench 大模型评测

OpenCompass 是一个开源开放的大模型评测平台,构建了包含学科、语言、知识、理解、推理五大维度的通用能力评测体系,支持了超过 50 个评测数据集和 30 万道评测题目,支持零样本、小样本及思维链评测。OpenCompass 支持大部分主流 HuggingFaces 上的大语言模型的评测,只需几…...

Windows截图工具Acropalypse漏洞剖析:开发者中心安全的重要教训

本文深入分析Windows Snip and Sketch工具中的Acropalypse漏洞,揭示API设计缺陷导致的安全风险,探讨开发者中心安全原则,并对比Win32与UWP API的安全差异,为安全软件开发提供重要见解。Windows Snip and Sketch中的Acropalypse漏洞,开发者中心安全的教训 Acropalypse是一个…...

bootstrap-flex总结

一主轴方向、默认横线排布 flex-row(默认)。flex-column是竖向排列<div class="d-flex "> <div class="p-2 bg-primary text-white">Item 1</div><div class="p-2 bg-success text-white">Item 2</div><div …...

【源码解读之 Mybatis】【基础篇】-- 第2篇:配置系统深度解析

【源码解读之 Mybatis】【基础篇】-- 第2篇:配置系统深度解析第2篇:配置系统深度解析 1. 配置系统概述 1.0 第1篇思考题解答 在深入学习配置系统之前,让我们先回顾并解答第1篇中提出的思考题,这将帮助我们更好地理解配置系统在整个架构中的作用。 思考题1:为什么 MyBatis …...