# 风运GoAndroid端司机端 **Repository Path**: xlr0306/fengyun-go-android-driver ## Basic Information - **Project Name**: 风运GoAndroid端司机端 - **Description**: 风运GoAndroid端司机端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-12-07 - **Last Updated**: 2025-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 风运Go # 1. 引言 ## 1.1 项目背景 物流产业在现代已成为我国重要的产业部门, 随着电商、物流、快递等行业的发展,对于货物运输的需求不断增加。特别是在城市间的货物运输市场,由于距离远、成本高、物流难度大等原因,很多传统的货运方式难以满足市场需求。而私家车数量不断增加,私家车资源却未被充分利用起来。针对此问题,本项目拟开发一个新型顺风车送货的APP,通过此平台将需要运输的货物和有出行计划的私家车或其他车辆联系起来,由司机顺路帮助运送货物。作为用户,我们需要将带货的需求以及出发地,目的地发布在平台上。作为司机,他也可以将自己的行程发布在平台上,通过可视化技术,让双方都能看到对方的行程或者需求。司机选择合适的用户进行接单,接单成功之后,系统能够显示双方的联系方式。若司机未能及时将货物安全的送到目的地,用户可以通过平台对司机进行追责,从而形成一套安全可靠的顺风车送货平台。该平台基于节能环保理念,以顺风车物流的形式,将道路上的私家车充分利用起来运输货物,减少空驶率,使得车流量转换为一种价值可观的资源,从而缓解了物流运输压力,有效地节约能源和减少环境污染。 ## 1.2 项目描述 “风运Go”是一款移动应用,该项目获2023年大学生创业训练项目省级立项,致力于为用户提供一站式顺风物流服务体验。应用的主要功能是用户发布送货请求并评价服务、司机查询并接受订单以及司机与用户的交流等。 ## 1.3 项目地址 风运Go-后端地址:https://gitee.com/xlr0306/fengyun-go-backend 风运Go-Android端-司机端地址:https://gitee.com/xlr0306/fengyun-go-android-driver 风运Go-Android端-用户端地址:https://gitee.com/xlr0306/fengyun-go-android-user) ## 1.4 技术栈 Spring Boot、Spring MVC、MyBatis、MySQL、Spring Security、Redis、Swagger ## 1.5 项目重点 采用Spring Boot结合Spring MVC构建Web层,实现前后端数据交互,并利用MyBatis作为ORM框架实现MySQL的数据持久化。 引入了Redis作为缓存层,实现了对注册验证码、token等关键信息的短期存储。 利用Spring Security框架实现了用户登录与认证功能,确保了系统的安全性。 通过WebSocket实现用户之间的交流。使用OkHttp框架进行前后端交互,集成了高德地图、阿里云OSS、支付宝等。 使用Swagger自动生成了清晰易读的API文档,便于前后端开发人员的协作与沟通。 # 2. 软件介绍 ## 2.1 总体介绍 “风运Go”是一个集顺风车运输和物流配送于一体的移动应用程序,旨在提供一种更便捷、更高效的物流配送解决方案。该项目的主要目标是通过利用顺风车资源和先进的技术手段,打造一个能够满足用户多元化需求的物流服务平台。主要分为三个部分:管理端、用户端以及司机端。 ①管理端:管理端的主要功能有:管理司机信息、管理账号信息、管理用户评价、处理用户申诉、审核司机申请等。管理司机信息是管理员可以对司机的信息进行更改;管理用户评价就是对用户的评价中不文明或者危险的言论进行删除或者其他处理;审核司机申请即为管理员通过申请人提交的材料确定该申请人是否能成为司机。 ②用户端:用户端的主要功能有:送货请求功能、服务评价、申请成为司机等。发布送货请求就是用户将自己的发货路线、货物种类、选择价保的信息发布在平台上,待到司机接单后可以与司机进行交流协商;服务结束后用户就可以对服务进行评价,觉得不满意的也可以进行投诉;申请成为司机即用户提交相关材料,然后审核通过后就可以作为司机进行接单。 ③司机端:司机端的主要功能就是发布行程路线、接受用户订单、与用户沟通、提交送达信息、联系客服等。发布行程路线即司机将自己的行程路线发布在平台上,平台就可以根据路线匹配合适的送货请求,司机还可在接单页面通过搜索等寻找相关路线的订单;在挑选好合适的订单后,司机可以与用户进行沟通协商;提交送达信息即当司机将货物送达后向用户提交送达信息,使用户知道货物已送达。 ## 2.2 移动端app的设计与实现 现如今手机已经成为每个人不可或缺的一项设备,而且当下大部分的手机都是基于Android系统的,所以设计实现Android APP可以为更多的用户提供本项目的服务。本项目中通过Android实现并满足了各种司机与用户的相关需求。移动端APP采用Android Studio开发,使用OkHttp框架与后端建立通信,进行前后端的交互。 移动端APP分为用户端和司机端。其中,用户端是普通用户使用,其功能有:发布订单、查看订单、取消订单、与司机通信、修改个人信息等。司机端供司机使用,其功能有:接受订单、查看订单、与订单发布用户通信、认证司机、修改个人信息等。 移动端根据用户的不同行为向后端发送不同的请求,对存在服务器数据库中的数据产生不同的效果如新增、修改、删除等。 ## 2.3 技术路线 项目总体采用前后端分离的架构,后端由Java进行编写。 后端采用Spring Boot框架进行搭建,使用了MyBatis框架对数据库进行操作,使用Spring Security 框架实现登录认证功能,支付调用了支付宝等第三方接口,确保了交易的安全便捷。使用Redis对验证码、token等进行存储,同时使用Redis实现了缓存功能。除此之外,利用WebSocket实现了司机与用户的消息发送。 前端即移动端使用Android Studio进行开发,使用了OkHttp进行前后端请求的发送和响应的接收。移动端司机与用户的消息沟通使用了WebSocket进行实现。对于图像的存储使用了阿里云OSS服务,数据库存储图片路径,使用阿里云OSS相关SDK对图片进行上传、下载等操作。对于起点、终点的选择使用的高德地图SDK来进行地图的展示、定位以及距离的计算。 ## 2.4 功能介绍 #### (1)发布订单 用户可设置并发布订单。用户设置好订单的起点、终点、物品等相关信息后可选择稍后再付和立即支付。订单发布后,若有司机用户接单,用户将得到系统发来的消息。 #### (2)取消订单 用户可对发布的订单进行取消操作,已经支付的订单将会得到退款。 #### (3)修改个人信息 司机端和用户端用户都可以对自己的个人信息包括昵称、头像、性别等进行修改。 #### (4)接受订单 司机端司机用户再订单详情页面选择接受订单后,系统将会发送消息给订单发布者用户提醒订单发布者用户选择合适的司机接单。若司机用户被订单发布者用户选中接单,系统同样会发送消息提醒司机用户。 #### (5)查看订单 用户端可以查看自己发布的所有订单的信息,司机端可以查看所有自己接受订单的信息。 #### (6)司机认证 司机输入自己的姓名和身份证号,并上传自己的身份证人像面、国徽面、手持身份证照、驾驶证照片用以认证司机。提交后管理员将在规定时间内完成审核。 #### (7)发送消息 司机端的司机用户和用户端的普通用户之间可以互相发送消息进行协商。 # 3. 使用说明 ## 3.1 用户端 ### **3.1.1** **登录界面** 下载风运Go用户端手机App安装包,安装好后点击App启动并运行, 登录界面如下图所示: ![img](assets/clip_image002.jpg) 图 3-1-1 登录界面 ### **3.1.2** **注册界面** 点击登录界面左下角的注册即可跳转到注册界面,在这个界面可以进行给注册操作,如下图所示: ![img](assets/clip_image004.jpg) ### 3.1.3 主页 用户登录成功后,由于数据库中的数据比较大,所以这时候需要稍许的时间来加载数据,但这通常很快,并且随着使用时间的增加,加载的速度会明显的加快,主页中央是一个地图,移动地图即可选择起点。 ![img](assets/clip_image006.jpg) 图 3-1-2 主页 ### 3.1.4 选择终点 点击主页的“请输入终点”即可进入终点选择界面。在这个界面可通过输入终点名称和图选两种方式来选择终点。 ![img](assets/clip_image008.jpg) 图 3-1-3 通过输入选择终点 ![img](assets/clip_image010.jpg) 图 3-1-4 通过地图选择终点 ### 3.1.5 设置货物信息 在选择好终点之后会跳转到确认位置的界面,在这个界面用户可查看自己的位置是否设置错误。确认无误之后跳转到设置货物信息的界面,在这个界面用户需要填写货物的相关信息。 ![img](assets/clip_image012.jpg) 图 3-4 查看历史消息 ​ ![img](assets/clip_image014.jpg) ### 3.1.6 发布订单详情界面 在确认订单之后将会跳转到发布订单时的订单详情界面。在这个界面,用户可对自己的订单信息进行再次确认。在确认完成之后,用户可选择稍后再付或立即支付来发布订单。选择稍后再付用户将在确认收货后进行支付操作,选择立即支付用户将立刻执行支付操作。 ​ ![img](assets/clip_image016.jpg) ### 3.1.7 消息界面 在消息界面,用户可以查看来自司机的消息和系统消息。当有司机接单、订单送到等情况,用户可从系统消息中接收到。 ​ ![img](assets/clip_image018.jpg) ### 3.1.8 聊天界面 在聊天界面,用户可与司机用户进行聊天、商量送货相关事情。 ​ ![img](assets/clip_image020.jpg) ### 3.1.9 我的界面 我的界面就是对用户个人信息进行管理的界面,在这里可以修改用户个人信息、修改密码、退出登录等。 ​ ![img](assets/clip_image022.jpg) ### 3.1.10 个人资料页面 点击顶部个人信息卡片即可进入个人资料页面,在这个页面可对个人信息进行修改。 ​ ![img](assets/clip_image024.jpg) ### 3.1.11 我的订单页面 点击“我的”中的“我的订单”即可进入这个页面,在这个页面可对发布的订单进行管理,包括选择合适的接单司机、确认收货、给订单评分等。 ​ **![img](assets/clip_image026.jpg)** ​ ### 3.1.12 订单详情 用户可点击对应订单进入订单详情页面,在订单详情页面,用户可以看到订单的详细情况。未接单时可以取消订单和选择司机,已收货后可以对订单进行评分。 ​ ![img](assets/clip_image028.jpg) ​ ![img](assets/clip_image030.jpg) ### 3.1.13 选择司机 用户可以点击订单详情页面的“选择司机”按钮选择合适的司机进行送货,点击列表中的司机可以查看司机的信息,点击“选择该司机”按钮即可选中该司机进行接单。 ​ ![img](assets/clip_image032.jpg) ​ ![img](assets/clip_image034.jpg) ## 3.2司机端 ### **3.2.1** **登录界面** 下载风运Go司机端手机App安装包,安装好后点击App启动并运行, 登录界面与用户端相同,如下图所示: ![img](assets/clip_image035.jpg) 图 3-2-1 登录界面 ### **3.2.2** **注册界面** 点击登录界面左下角的注册即可跳转到注册界面,在这个界面可以进行给注册操作,如下图所示: ![img](assets/clip_image036.jpg) ### **3.2.3** **主页** 登录成功后即进入主页,在主页用户可以查看到所有可接的订单信息。 ​ ![img](assets/clip_image038.jpg) ### **3.2.4** **搜索订单** 点击主页右上角的放大镜图标即可进入订单的搜索页面,在这个页面可输入起点或终点搜索相对应的订单。 ​ ![img](assets/clip_image040.jpg) ### **3.2.5** **接受订单** 点击主页或搜索结果页面的订单所在卡片即可进入订单详情页面,在这个页面用户可以查看订单的完整信息并且可以选择接受订单。要接受订单必须先认证为司机,认证司机在“我的”界面。若用户未认证未司机,用户将无法接单。当司机用户点击了“接受订单”之后,系统将会发送消息给订单发布用户,待订单发布用户选择好司机用户后,系统将发送消息给司机用户提示接单成功。 ​ ![img](assets/clip_image042.jpg) ### **3.2.6** **查看订单发布用户** 点击订单详情页面右上角的人像图标即可查看该订单发布用户的相关信息,在这里点击“发消息”按钮将会跳转至聊天界面,司机用户可在这里与订单发布用户商量相关信息。 ​ ![img](assets/clip_image044.jpg) ### **3.2.7** **消息界面** 在消息界面,司机用户可以查看来自普通用户的消息和系统消息。 ​ ![img](assets/clip_image046.jpg) ### **3.2.8** **我的界面** “我的”界面就是对司机用户个人信息进行管理的界面,在这里可以修改司机用户个人信息、修改密码、退出登录等,与用户端不同的是,司机端在这个界面有个司机认证功能。 ​ ![img](assets/clip_image048.jpg) ### **3.2.9** **司机认证** 点击“我的”页面的“司机认证”即可进入司机认证页面,在这个页面用户需要输入自己的姓名和身份证号,并上传自己的身份证人像面、国徽面、手持身份证照、驾驶证照片用以认证司机。提交后管理员将在规定时间内完成审核。 ​ ​ ![img](assets/clip_image050.jpg) ![1723901577066](assets/1723901577066.png) ![1723901591326](assets/1723901591326.png) ### 3.2.10 个人资料页面 点击顶部个人信息卡片即可进入个人资料页面,在这个页面可对个人信息进行修改。 ![img](assets/clip_image056.jpg) ### 3.2.10 我的订单页面 在“我的”页面点击“我的订单”即可进入我的订单页面。在这个页面,司机用户可以查看所有自己接过的订单包括已送达的、未送达的。点击订单所在行即可进入订单详情页面,若订单还未送达,将会显示一个已送达按钮。当订单送达后,司机用户需要点击已送达按钮,此时系统将发送系统消息提醒订单发布用户订单已送达。 ​ ![img](assets/clip_image058.jpg)