当前位置:网站首页>微信小程序云开发之券码领取,怎么防止用户领取到相同的数据?
微信小程序云开发之券码领取,怎么防止用户领取到相同的数据?
2022-08-02 03:23:00 【爱唱歌的前端】
项目场景:
之前在云开发中遇到了券码领取类型的活动, 但是在没有后端提供接口领取的情况下,我们要怎么去分配券码给用户了?问题描述:
当项目把一批券码发过来的是后,我的第一反应是给每一个券码都加上一个boolean值,用于标识当前的券码有没有被领取过,当用户点击领取时,把预先存放在云数据库表里的集合数组拿过来,之后循环数组,直到遇见未被领取过的那一条数据,把它发放给用户,之后把云数据库表里的这一条数据状态改已领券。但是,当我做完后,我发现了一个问题,那就是当用户A和B同时点击领取时会领取到相同的券码,因为那个时间段他两拿到的数组是相同的。解决方案:
于是我便问了问同事,然而同事却告诉我其实他们之做网站的时候就有这个问题了,但是一直没能解决,于是这次把项目交给我了,我(=`ェ´=;)ゞ???于是我便问了我一个做后端的同学他们是怎么处理这种分配的问题,结果也是一讲一堆,啥也没听懂。最后经过我的折腾,发现向用户表里插入用户的数据并不会出现同时占用一条数据的现象,于是便有了念头,那就是表格对照法,具体看下图:效果:
可以从GIF中看到,我把提示都写完整了,领取成功,已领取过了,数组越界后提醒领完了,包括复制券码都弄好,因为是录制,所以没办法展示多个用户同时点击领取时并不会拿到相同数据的效果,不过各位放心,我这是从线上的项目提取出来的,所以问题不大。
Demo部分:
代码我就不粘出来了,有点多,需要的话有积分可以下载CSDN的,没有的话下载百度云的就好。CSDN=》传送门
百度网盘=》提取码:f058
=》传送门
下载代码 Demo后,导入项目时用自己开通过云开发的AppID就好
接着再把app.js里的云环境ID换成你自己的
再把两个云函数上传到你的云服务器
接着我们打开云控制台,新建一个叫coupon-code
的券码集合,之后随便建几条数据用于测试,字段名是coupon_code
,别乱写,不然代码对不上。
紧接着新建一个叫UD-coupon-code
的用户集合,把默认的_openid
索引删了之后新建一个索引属性唯一的_openid
索引,防止一个用户有多条记录。
这样就完成了,至于代码部分都写了备注,就不多说了。
最后想补习云函数的可以点击这里哦!! 传送门
边栏推荐
- URL URL
- URL模块
- js takes the value of a feature at a certain position in the string, such as Huawei=> Huawei
- IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boo
- L1-043 阅览室 (20分)
- 微信小程序实现文本安全监测
- 啃瓜记录第一天
- 跨域问题解决
- parser = argparse.ArgumentParser()解析
- Redis simple study notes
猜你喜欢
【程序人生】做了多年的运维,靠什么转行拿下12K+年终奖的薪资?
Source Insight 使用教程(2)——常用功能
微信小程序云开发如何将页面生成为pdf?
require模块化语法
Deveco studio 鸿蒙app访问网络详细过程(js)
如何查看一个现有的keil工程之前由什么版本的keil IDE编译
DSPE-PEG-PDP, DSPE-PEG-OPSS, phospholipid-polyethylene glycol-mercaptopyridine supply, MW: 5000
Phospholipid-polyethylene glycol-hydrazide, DSPE-PEG-Hydrazide, DSPE-PEG-HZ, MW: 5000
配置mmdet来训练Swin-Transformer之一配置环境
Redis简单学习笔记
随机推荐
canvas--pie chart
ssm各类配置模板
【博学谷学习记录】超强总结,用心分享 | 软件测试 接口测试基础
知识问答与知识会话的区别
磷脂-聚乙二醇-靶向新生血管靶向肽APRPG,DSPE-PEG-APRPG
这些JS题面试时一定要答对!
canvas--饼状图
微信小程序怎么批量生成带参数的小程序码?
DSPE-PEG-PDP, DSPE-PEG-OPSS, phospholipid-polyethylene glycol-mercaptopyridine supply, MW: 5000
最新,每天填坑,Jeston TX1 精卫填坑,第一步:刷机
Advanced gradient of skeleton effect, suitable for waiting for pictures
我的小笔记 =》其他东东
STM32 触发HardFault_Handler如何查找原因
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
docker中配置mysql 5.7
云服务器安装部署Nacos2.0.4版本
DSPE-PEG-Silane, DSPE-PEG-SIL, phospholipid-polyethylene glycol-silane modified active group
DOM manipulation---magnifying glass case
基本运算符
sh: 1: curl: not found