训练营大作业
1 系统概述
1.1 系统目的
通达物流系统是一个解决同城用户与快递员快速寄件/取件、下单/抢单、支付/提现、综合查询的物流系统。该系统通过对用户周围寄件资源(快递员)的合理调配,提高了社会资源的利用率,实现了优势快递资源的共享,以达到用户快速寄件的目的。
该系统是公司同城物流战略的核心系统,承担着公司主要的业务功能,是实现公司上市基石。
该系统后续还会支持后台管理,如订单、物流信息的汇总、生成业务报表、统计等功能。
2 系统需求
2.1 功能需求
通达物流系统主要包含以下功能:
· 用户通过手机 App(iOS/Android) 发起快递下单请求并支付
· 快递员通过自己的手机 App 上报自己的地理位置,每 30 秒上报一次
· 系统收到快递请求后,向距离用户直线距离 5km 内所有的快递员发送通知
· 快递员需要进行抢单,第一个抢单的快递员得到配单,系统向其发送用户详细地址
· 快递员到用户处收取快递,并记录到系统中:已收件
· 快递员将快递送达到目的地,并记录到系统中:已送达
系统使用者包括:用户、快递员、管理员。
2.3 用例图
说明:
● app 用户:进行下单和支付操作。
● 快递员:使用 app 进行抢单和状态更新。
● app 后台:对终端 app 使用者的操作进行响应,派单给快递员且响应快递员的抢单请求。
3 系统概要设计
3.1 系统部署图
系统上线时预计部署 10 台物理机(1 台负载均衡,4 台应用服务器,1 台分布式缓存服务器,2 台 MySQL 主从服务器,1 台文件服务器,1 台消息队列服务器)。
系统部署图如图 3-1 所示:
图 3-1 通达物流系统部署图
3.2 系统框架图
系统包含如下模块:
· 订单:用户使用手机 App 下单、寄快件,生成寄件订单; 快递员抢单、配单。
· 财务:用户使用手机 App 支付;快递员使用手机 App 提现。
· 物流:快递员抢到订单后,到用户处上门收取快递,登记物流信息(已收件),然后送快 递(运送中),送达后登记物流信息(已送达)。
地理位置:获取用户和快递员的实时地理位置信息。
· 地理位置:获取用户和快递员的实时地理位置信息。
图 3-2 通达物流系统框架图
3.3 下单场景
3.3.1 业务活动图
用户:打开手机 App, 在系统主界面/首页进行下单,填写快递信息,点击“下单”。
订单子系统:创建订单,并自动跳转到支付界面。
财务子系统:处理支付,支付成功后向订单子系统消息队列发送“已支付”消息。
图 3-3 通达物流系统 - 下单业务活动图
3.3.2 时序图
图 3-4 通达物流系统 - 下单时序图
用户登录后,发送请求下单消息到订单模块,订单模块根据创建订单信息,自动跳转到财务支付界面,用户完成支付,返回支付结果并发送新订单通知。如果支付失败(网络错误、余额不足等),用户也可以手动向财务模块发送请求支付消息。只有当支付成功后,系统才会发送新订单消息,通知快递员抢单。
3.4 抢单场景
3.4.1 业务活动图
快递员:打开手机 App, 在系统主界面/首页进行“听单”,收到抢单消息进行“抢单”。
订单子系统:监控已支付订单消息,当有新“已支付”订单消息进入时,查询快递员地理位置,发送抢单消息,通知快递员进行抢单,然后处理快递员抢单。
地理位置子系统:获取用户 5km 里范围内快递员的地理位置信息。
图 3-5 通达物流系统 – 抢单业务活动图
3.4.2 时序图
图 3-6 通达物流系统 – 抢单时序图
当用户支付完成后,订单模块接收到新订单通知,它会根据消息中的用户地址,向地理位置模块请求 5km 内的快递员列表,然后向快递员发送抢单消息。快递员收到抢单消息,进行抢单,订单模块处理抢单消息,返回抢单结果。
3.5 订单状态
图 3-7 通达物流系统 – 订单状态图
订单有 6 中状态,当用户输入完下单信息(用户/收件地址、手机号等),点击提交,订单状态变为”待支付“,用户支付完成,订单状态变为”已支付“,快递员抢单成功,订单状态变为”已配单“,快递员上门收件,订单状态变为”已收件“,快递员送达快递,订单状态变为“已送达”。
当订单处在“待支付”和“已支付”状态时,用户可以取消订单,订单状态变为“已取消”。
评论