一张飞机票是如何下单的
项目背景:
随着现在网络的快速发展,网络的应用在各行各业当中它很快融入到了许多商家的眼球之中,他们利用网络来做这个电商的服务,随之就产生了将机票拿到网上来售卖,这样就让人们机票售票更加方便简单。
项目目标:
- 及时汇总订票、退票的情况,使各售票处的余票得到及时处理;
- 合理组织社会运输,协调机票、车票预订情况,合理安排中转旅客,减少旅客中转滞留,使运输系统发挥最大经济效益;
- 方便旅客,一般自动订票系统可以预订一个月之内的机票、车票,旅客可以从容地安排自己的日程;
- 加强航空、列车的客运管理,及时发现问题,采取改进措施。
项目过程:
首先是商务和航空公司商谈,然后把具体的文档交付给项目经理。我们当时开发是六个人,然后全是后端开发,我们就对着文档去开发。
框架选择:我们当时选择的是spring+springboot+mybatis,数据库选择的mysql,消息中间件选择kafka。
开发任务:按照需求进行软件开发,实现与多方数据进行对接。实现航班查询,查询当天有多少航班,有哪些航班。价格校验,校验查询出来的价格和航空公司提供的价格是否一致。生单占座,根据填写的用户信息,去下单航班占座。支付前校验,支付前校验航班信息、乘客信息、价格。出票,根据产生的订单出票。取消订单,将已经下单的订单取消掉。查询的数据通过Redis进行缓存航班,第二次查询时直接查询redis,提高查询效率。如果数据有变化,将数据通过kafka写入数据库。最后数据成功展示在飞猪、携程等平台上。最后同事一起测试在平台上成功下单,项目成功上线。
存在问题:因为当时是第一次使用redis,zookeeper等新技术,还非常好奇和疑惑,然后经过同事的指导慢慢就熟悉了。飞机票存在redis中,没有实时去查询,等顾客下单的时候才发现价格变了,所以产生了支付前校验的功能。还有顾客信息填错了、顾客下单之后没有付款等问题。
项目总结:
因为刚开始的时候,大家都没有类似的开发经验,而且文档也是全英文的,所以开发都很慢、有一点困难。然后航空公司那边就安排人员进行培训讲解,向我们讲解那些接口是需要开发的,那些字段和文档的含义。所以,英语水平高一点还是很有好处的,一些英文文档都能直接看懂,如果用翻译软件翻译,有些地方是描述的不准确的。而且在培训的时候,总有一种老师在上课的感觉,听着昏昏欲睡,培训完之后还是会存在一些问题。
写在最后,不管项目有没有做过,首先的熟悉项目的一些文档,包括背景以及需求;不熟悉的技术、或者不会的问题一定要及时沟通,不要不好意思,可以多多问问同事。因为有可能就因为你一个人的原因导致整个项目的进度落后,所以有问题一定要及时沟通。