券码是各种营销案例中经常使用到的一种功能,不同使用场景下券码的种类也不尽相同,不过体现在数据形式上每个券码都是数据库中的一条数据,应该有唯一的券码号字段作为区分标识,另外通过其它字段判断使用场景、用途、归属用户和是否使用等等。今天我们制作一个券码模型。
1.数据库
这个模型中我们使用微信公众号登录,所以需要一个用户组件,另外添加一个字段存放该用户的券数。然后再添加一个数据库存放券码,包含券码、是否兑换、兑换用户(登录用户openID)、用户姓名和手机号等字段。初始状态时,是否兑换为0,而兑换用户,姓名和手机字段为空。
这里的券码值比较简单,实际案例中我们可以利用循环和文本变量批量生成和导入更加复杂的券码。如下图所示,循环中利用文本变量生成随机字符串,这里选择了字符串长度为20,类型为字母与数组任意组合,最后将结果添加到对象数组中提交给数据库即可。
还需要一个数据库用来储存券码的兑换记录,我们添加券码,是否成功,姓名和手机等字段。另外,通过限制此数据库的提交次数我们就可以限制每位用户能够兑换的券码数量。
2.服务
在此模型中我们需要添加两个服务,一是提交兑换券码,二是将可兑换券码输出。兑换券码服务中我们需要提交券码的券码号以及用户的姓名和手机,首先到券码库更新该券码的是否兑换字段,更新完成后向兑换记录中提交一条数据并且更新用户表中该用户的可用券数字段,最后返回操作结果。
输出券码的服务比较简单,只是普通的数据库输出动作,这里我们输出3个还未兑换的券码并且只输出券码字段。
3.事件
在前台初始化时我们令用户组件发起微信公众号登录,获取用户的头像、昵称和券数,如果是第一次登录的用户其用户表中字段可用券数的值会为空,我们就将其设置为初始值0。
前台的第一个页面用于兑换券码,用户得到券码号后填入输入框并输入姓名和手机号就可以点击Exchange按钮进行兑换。案例会先判断输入框的内容是否为标准类型,如果不是则进行一个提示,如果符合输入标准就调用兑换服务并返回服务结果。注意要保持前后台数据一致,兑换成功后前台保存用户券数的数值变量需要加1。
点击文本组件My discount code页面会跳转到第二个页面,然后调用输出券码服务输出三个还未兑换的券码供用户取用。用户点击copy按钮就会将券码号复制到手机的粘贴板上然后返回首页输入进行兑换了。