)
系统面向中小型剧场解决传统线下购票中排队时间长、选座不方便、票务记录混乱、演出信息更新不及时等问题。系统整体上实现了管理员后台、观众PC端、微信小程序端和检票员扫码端的协同使用覆盖了剧场票务从演出发布到购票、支付、出票、入场核销和销售统计的完整流程。系统首先实现了用户注册和登录功能并将用户划分为普通观众、管理员和检票员三类角色。普通观众可以浏览演出信息、查看演出详情、在线选择座位、生成订单、完成支付、查看自己的订单和电子票也可以申请退票。管理员主要负责剧场运营管理可以维护演出信息包括新增演出、编辑演出、设置演出上下架状态、管理订单、审核退款申请、查看销售统计数据和导出报表。检票员主要负责现场入场核销可以通过扫码或手动输入票号的方式验证观众电子票。在演出管理方面系统支持管理员录入和维护演出名称、类型、场馆、演出时间、票价、座位布局、海报和简介等内容。对于已经产生售出票据的演出系统不会直接删除而是通过下架的方式处理防止出现票据还存在但演出信息被删除的问题。系统还支持观众在PC端或微信小程序中浏览演出列表并进入演出详情页面进行购票。在购票流程方面系统实现了在线选座、座位锁定、订单生成和支付出票功能。观众进入选座页面后可以看到座位图不同座位会显示为可选、已锁定或已售出状态。用户选择座位后系统会通过Redis对座位进行10分钟锁定避免多个用户同时抢到同一个座位。如果用户在规定时间内完成支付座位状态会变为已售出如果超时未支付系统会自动取消订单并释放座位。在支付和出票方面系统对接了支付宝沙箱支付同时也提供模拟支付功能用于演示。支付成功后系统会生成电子票并为每张票生成带有防伪签名的二维码。二维码内容采用票号加HMAC-SHA256签名的方式能够防止二维码被伪造。观众可以在订单或票据页面查看电子票二维码并在入场时出示给检票员。在检票核销方面系统实现了扫码核销和手动输入票号核销两种方式。检票员进入核销页面后可以使用摄像头扫描观众出示的二维码系统会校验二维码签名、票据状态、演出场次和是否重复核销。如果校验通过就显示核销成功如果票据无效、已退票、已核销或场次不匹配则返回失败原因。每一次核销结果都会记录到核销日志中方便后续审计和查询。在后台统计方面系统实现了销售数据统计和报表导出功能。管理员可以查看今日销售额、售票数、待支付订单数、在售演出数、近7日销售趋势、演出销售排行等数据。系统还支持按日、周、月统计销售额、订单数、售票数、取消率和客单价并可以将统计结果导出为Excel文件。微信小程序端主要面向移动购票场景实现了首页演出浏览、演出列表、订单查看、个人中心和移动端选座购票等功能。小程序选座页面针对手机屏幕进行了适配座位图更紧凑已选座位和价格信息固定在页面底部方便用户单手操作。整体上系统实现了从后台管理到用户购票、电子票生成、现场检票和销售分析的一整套剧场票务管理功能。