铁路客运是我国旅客运输的主体方式,售票环节作为旅客出行体验的第一触点,其业务规则复杂度远高于普通电商交易:既要处理席位在区间上的复用订阅,又要支持预售期内购票、候补排队兑现、退票按距开车时间梯次计收手续费、改签按票价差额补退、列车晚点与停运的全额退等多项中国国家铁路集团有限公司规定的业务规则。针对高校同类课程设计普遍存在的「只做增删改查、缺少真实业务规则」的共性问题,本文以中国国家铁路集团有限公司现行客票规则为依据,设计并实现了一套覆盖售票全生命周期的火车票售票系统
点击空白处退出提示
铁路客运是我国旅客运输的主体方式,售票环节作为旅客出行体验的第一触点,其业务规则复杂度远高于普通电商交易:既要处理席位在区间上的复用订阅,又要支持预售期内购票、候补排队兑现、退票按距开车时间梯次计收手续费、改签按票价差额补退、列车晚点与停运的全额退等多项中国国家铁路集团有限公司规定的业务规则。针对高校同类课程设计普遍存在的「只做增删改查、缺少真实业务规则」的共性问题,本文以中国国家铁路集团有限公司现行客票规则为依据,设计并实现了一套覆盖售票全生命周期的火车票售票系统
系统构建了 18 张数据表,涵盖车站车次基础数据、区间票价、车厢编组、票额动态扣减、订单票据、支付流水、退票与改签台账、候补队列、列车晚点公告、春运高峰期规则、操作日志共十一个主题域。在核心算法方面,设计了基于区间重叠判定的席位复用分配器 SeatAllocator,实现了「同一物理座位在不同不重叠乘坐区间多次售卖」的票额最大化利用;设计了 RuleService 规则引擎,完整实现退票费五档梯次费率、改签费按前后低票价四种情形计收、改签价差退还时价差部分核收退票费、春运期间改签后车票退票按最高档核收、以及铁路责任免收手续费等七项规则;设计了基于先进先出(FIFO)原则的候补排队兑现机制,退票或改签释放席位后自动触发队列扫描并生成待支付订单。
系统采用 JavaWeb 技术栈,以 JSP + Servlet + JavaBean 实现 MVC 分层架构,持久层基于 Apache Commons DbUtils 封装 BaseDao 泛型基类并通过 ThreadLocal 实现事务控制,数据存储采用 MySQL 8.0,Web 容器为 Apache Tomcat 8.5。







评论