杭电信工微巴士功能技术设计

1 平台需求分析
基于微信小程序的信工微巴士订票系统的用户角色分为普通用户(学生)和管理员用户俩类,在用户使用平台的过程中,管理员在管理页面发布新的线路,与该线路下的车次信息,用户通过个人账户下单,提交订单信息与该订单下的旅客信息,完成报名工作,管理员可在后台查看某班次的报名情况安排车辆。当用户遇到困难时可在意见反馈中提交个人信息与反馈信息。当长时间没有得到回复可在线联系客服人员。各用户功能需求如图所示。
微巴士

1.1 学生用户需求分析
学生用户指试图在信工微巴士订票系统下单订票的用户,其主要功能包括:注册账号、修改密码、添加乘客信息、删除乘客信息、购票、退票、查看订单状态、查看车票信息、意见反馈、积分签到、应用推荐等功能。下图为学生用户用例图。
在这里插入图片描述
学生用户具体功能需求如下所述:
(1) 用户注册模块:用户最初登录时使用的是游客身份,无法进行添加旅客,下单,查看订单信息等操作,游客可通过注册模块注册个人账号。因为用户下单,添加旅客时需要提交用户的账户信息用于纪录账户信息。
(2) 登录模块: 在用户注册后,可以登入平台,登录后可以对我的旅客进行修改。选择路线后下单,查看我的订单信息等。
(3) 我的旅客模块:学生用户可以在我的旅客模块对我的旅客信息进行增删改查,在下单页面也可新增旅客。方便后续购票选择。
(4) 购票模块:用户可以在购票页面搜索后选择自己的路线,选择适合自己的时间班次,填写个人信息,选择乘车旅客,下单付款。
(5) 订单管理模块:用户可以在订单页面查看自己的历史订单纪录,包括已经退款,已经取消,已经完成或待出行的订单,同时可以对订单进行退款,取消,付款等操作。
(6) 意见反馈模块:已经登录的用户在体验程序,行程后,当对本次服务存在不满时可在意见反馈模块将本次服务中的不足之处提交,方便服务方提供更好的服务。
(7) 积分签到模块:为了提高小程序用户的使用率和带给用户更多的优惠,增加了签到功能,签到可获得积分,当下单时每满一定积分可抵扣部分金额。
(8) 其他功能模块:为用户提供小程序分享功能,关于我们,联系客服等功能。

1.2 管理员用户需求分析
管理员用户为,服务方为了管理各线路以及各班次选择出来的人员。作为平台的主要参与者,可以对线路,路线进行增删改查,方便服务方管理。下图为管理员用户用例图。
在这里插入图片描述

管理员用户具体功能需求如下所述:
(1) 线路管理模块:当服务方需要新增线路时(如当前线路无杭电信工至温州线路),管理员用户可以在线路管理模块填写信息新增一条线路。若线路新增错误,管理员用户可直接在当前模块内修改。
(2) 车次管理模块,管理员可在车次管理页面对某线路下的车次进行增删改查。修改发车时间。
(3) 订单信息管理模块:管理员可在当前页面下查看某班次下的旅客信息,打印生成xlsx文件,方便线路管理者进行人数点名。
2 数据库需求分析
设计数据库需要确定平台对哪些数据需要进行持久化操作,通过对基于微信小程序的信工微巴士订票系统的功能需求进行分析,可以得到该系统的数据需求。
(1) 用户最初进入微信小程序是以游客身份进入,无法进入下单页面,我的旅客页面与订单页面。因此需要一个用户表单(user_msg)来存放普通用户的账户信息。
(2) 一个用户下可能需要购买多个旅客的订单,所以需要一个旅客表单(passengers_msg)来存放旅客信息(姓名,手机号,身份证号),方便用户同时购买多人订单。
(3) 通常情况下,一条线路不会仅有一辆车次,因此需要一个线路表单(line_msg)来存放线路信息(出发地,目的地,线路价格等信息用于展示)
(4) 每个线路下需要安排多个不同时间的车次供学生选择,因此需要一个车次表单(bus_msg)来存放车次信息(发车时间,预计到达时间,金额等数据)。
(5) 当用户选择完线路以及车次后,需要一个订单表单(order_msg)来存放订单信息(对应的车次,订单金额,是否支付)。
(6) 一个订单下可以存在多个旅客,若在订单中存放旅客id,则会导致旅客信息修改,订单中的旅客信息也会跟着修改,所以需要一个单独的订单旅客表单(order_passengers)来存放订单下旅客的信息。
(7) 当旅客发现行程中的问题,需要投诉反馈是会提交反馈信息与用户信息,因此需要一个意见反馈表单来存放用户意见信息(opinion_msg)。
(8) 提交意见反馈时可能附带多张图片信息。因此需要一个意见图片表单(opinion_photo)来存放某反馈下对应的图片路径。
3平台技术分析
现今,为了使软件拥有更好的可维护性和可扩展性,提高系统性能的健壮性。架构师都会对软件系统进行分层,最常见到的就是MVC分层模式,基于微信小程序的信工微巴士订票系统采用的便是下图的分层模式。
分层模式图
(1)Model层
①实体类对象存放与数据库中的属性值基本保持一致。
②成员变量+get/set方法把数据库字段映射为对象属性。
(2)Mapper层
①数据持久化,将数据存放到持久化的介质中,同时增加增删改查等方法。
②通过src/main/resources文件中的*.xml文件和model层中的数据对数据库进行操作。
(3)Service层
①用于存放业务逻辑处理,和一些关于数据库的操作,但并非直接对数据库进行操作。Service层中有接口,也有接口的实现方法,在接口的实现方法中需要(@Autowired)导入Mapper层,Mapper层才是直接对数据库进行操作的。
②Impl是把Service层和Mapper层进行整合操作,通过调用Mapper中的方法实现对数据的操作。
(4)Controller层
响应客户请求,截取每个URL请求,将前端传递的数据传递给响应的方法进行处理。
(5)View层
微信小程序界面采用了Mustache模板引擎。该引擎支持Javascript、PHP、Python、Perl 等多种编程语言。在小程序中,该引擎用于在WXML代码中嵌入JavaScript,使页面可以将从后台获取的数据展示出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值