小程序业务逻辑回忆2

1.用户下单购票业务

购票业务中可购选4中票,普通票、学生票、vip贵宾票、指定日票。购票类型用ticket_id

进行区分,每种类型票用户都可以购买 n张,但是用户只能激活一张,其他票可用于转增。

用户下单购票时首先以user_id创建order表,然后用工具类生成订单号,更新购买时间purchase_time为当前时间、付款状态payment_status初始状态为默认状态"未付款",总价mount为该订单id下的Order_item所有discount相加,生成的订单号作为order_item的order_number进行存储,更新orginal_user_id和current_owner_id为当前user_d

其中original_user_id原始购买人的用户ID,current_owner_id当前拥有者的用户ID,这两个字段主要用于判断票劵激活业务,和转赠业务.

生成票劵代码activation_code,更新票劵状态code_status为"未付款"

根据ticket_id的is_discount状态判断是否参加折扣,discount折后金额按照打折规则进行计算.

提交订单后调用微信支付功能,然后回传付款状态判断付款状态,15分钟未付款更新order表payment_status为"已关闭",15分钟已付款更新order表中付款状态payment_status为已付款,更新order表当前未退款金额current_mount为订单总金额mount(用于最后计算用户积分)

更新该订单id下order_item表中票劵状态code_status为"未激活"

更新该订单id下order_item表中退款状态refund为"未退款"

综上功能逻辑,设计数据库

ticket表,通用主键id,字段is_discount表示是否打折,name会议票种类名称,price价格

order订单表,通用主键id,user_id用户id(已激活票劵业务查询中可根据此id查询用户的个人信息),

order_number订单号,purchase_time购买时间,payment_status付款状态(已付款\未付款),mount订单总金额(各个票劵折后累加总金额),current_mount(当前未退款金额)

order_items门票订单表,通用主键id,order_id订单id,ticket_id门票信息id,正常情况下订单与门票属于1对多情况order表中设置一个ticket_id就行,不应设置中间表,表拆开后,积分运算更为简单(current_mount当前未退款金额是个实时更新的字段),而且就UI设计界面来说查询信息更为直观

original_user_id原始购买人的用户ID,current_owner_id当前拥有者的用户id

activation_code票劵代码,code_status票劵状态(激活\未激活\已作废,用于未激活票劵列表查询展示)

registration number 注册登记号,仅限已激活的会议门票,激活时生成并保持唯一

activated_time 激活时间,未激活票此字段为空

refund票据退款状态(未退款\已退款\退款中)

discount折后金额   code_url二维码URL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值