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