本文主要是介绍小程序业务逻辑回忆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
这篇关于小程序业务逻辑回忆2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!