文章目录
项目演示视频
是否包含论文文档
否
详细描述
物流快递系统:系统架构图与功能说明
1. 项目结构
-
后端:
logitcsSpringboot/service/service-admin(Spring Boot 服务,统一 Admin API) -
管理端:
logitcsAdminVue(Vue3 + Element Plus 管理后台) -
移动端(H5):
logitcs-mobile-vue(Vue3 + Vite 移动端/快递员端)
2. 系统架构图
2.1 总体架构(组件视图)
基础设施
后端
前端
HTTPS/REST
HTTPS/REST
MySQL
Redis
OSS/对象存储
支付宝 SDK/沙箱
高德地图
前端SDK/服务
Admin API
service-admin
Spring Boot
认证与权限
Sa-Token + RBAC
物流业务模块
运单/扫码/轨迹/派送/评价/异常
管理端 Web
logitcsAdminVue
Vue3/Vite/ElementPlus
移动端 H5
logitcs-mobile-vue
Vue3/Vite
3. 功能模块说明(对照需求)
3.1 移动端(用户端)
-
注册/登录:短信验证码(演示可自动填充)、登录态保存
-
下单寄件:寄收地址、物品信息、生成运单号
-
运单列表/详情:按状态筛选、轨迹时间线展示
-
模拟支付:未支付时可触发支付(对接
/lg-waybill/mock-pay) -
评价:已签收运单可评价,已评价则隐藏按钮(对接
/lg-evaluation)
3.2 移动端(快递员端)
-
揽收:输入运单号/取件码、填写评估价格、选择站点后确认揽收
-
派送:输入运单号、选择签收方式后确认签收(对接
/lg-waybill/sign) -
扫码:选择类型并保存扫码记录(对接
/lg-scan,同时写入轨迹)
3.3 管理端(站点/系统)
-
运单管理:查询、查看详情、状态流转辅助
-
派送任务:创建/分配、按快递员过滤(支持显示
sys_user.nickname或后端回传courierName) -
站点管理:站点信息维护
-
扫码管理:入库/出库/派送/签收扫码记录维护
-
轨迹管理:追踪事件查询
-
评价管理:评价列表与维护
-
系统管理:用户/角色/菜单/字典/参数/日志等
3.4 关键交互细节(实现要点)
-
运单轨迹生成机制
-
通过“扫码记录”与“轨迹事件”两条链路写入:
lg_scan、lg_tracking_event -
写入轨迹后会联动更新运单状态:
lg_waybill.status_cd(用于列表筛选与详情展示)
-
-
快递员站点下拉来源
-
快递员端揽收/派送/扫码需要选择站点
-
站点下拉优先来自派送任务关联站点:
/lg-delivery-task/pickup-sites
-
-
已评价隐藏评价入口
-
运单详情在“已签收”状态显示评价入口
-
若同一用户对同一运单已存在评价,则隐藏“评价”按钮(通过查询
/lg-evaluation判断)
-
3.5 核心接口清单(摘要)
| 模块 | 接口 | 说明 |
|---|---|---|
| 认证 | POST /auth/login |
登录,获取 token |
| 认证 | POST /auth/register |
注册 |
| 用户 | GET /sys-user/userinfo |
获取当前登录用户信息 |
| 运单 | GET /lg-waybill |
运单分页查询(支持 userId/statusCd/payStatusCd/courierId 等) |
| 运单 | GET /lg-waybill/{id} |
运单详情 |
| 运单 | POST /lg-waybill/pickup |
揽收(运单号/取件码 + 站点 + 评估价格) |
| 运单 | POST /lg-waybill/sign |
签收(运单号 + 站点 + 备注) |
| 运单 | POST /lg-waybill/mock-pay |
模拟支付(更新支付状态) |
| 地址 | GET /lg-address |
用户地址列表 |
| 地址 | POST /lg-address / PUT /lg-address / DELETE /lg-address |
地址新增/修改/删除 |
| 扫码 | POST /lg-scan |
新增扫码记录(同时写入轨迹,并联动更新运单状态) |
| 轨迹 | GET /lg-tracking-event |
轨迹分页查询(支持 waybillNo 等) |
| 派送任务 | GET /lg-delivery-task |
派送任务列表(支持新增返回 courierName) |
| 派送任务 | GET /lg-delivery-task/pickup-sites |
当前快递员可选站点列表 |
| 评价 | POST /lg-evaluation |
新增评价(写入 lg_evaluation) |
| 评价 | GET /lg-evaluation |
评价查询(用于“已评价隐藏入口”等逻辑) |
4. 角色与权限边界(RBAC)
结合需求.md与当前系统,建议以 RBAC(角色-权限)为主,辅以数据范围(如按站点隔离)。
-
用户(寄件/收件)
-
下单、支付、查询轨迹、取消(规则限制)、评价
-
-
快递员
-
揽收、派送签收、扫码、异常上报(可扩展)
-
-
站点管理员
-
入库/出库、派送分配、异常审核(可扩展)
-
-
系统管理员
-
用户/角色/权限、字典与参数、审计与数据治理
-
4.1 权限粒度(示例)
系统以“菜单权限 + 按钮权限”为主,前端通过权限标识控制按钮/菜单可见性,后端通过权限注解控制接口访问(示例:派送任务的新增/编辑/删除按钮权限)。
4.2 数据范围(建议)
-
用户侧:按
user_id约束仅能访问自己的运单/地址/评价 -
快递员侧:按
courier_id与派送任务/站点关联约束可操作范围 -
站点侧:按
site_id做隔离(站点管理员仅管理所属站点数据)
5. 技术栈说明
5.1 后端(service-admin)
-
语言与框架:Java 21、Spring Boot Web
-
认证鉴权:Sa-Token(登录态/权限注解)
-
ORM/DAO:MyBatis-Flex(见
common-db-mysql) -
数据库迁移:Liquibase(
db/changelog/changelog-master.xmlincludeAlldb/changelog/merged) -
API 文档:Knife4j + SpringDoc OpenAPI3
-
缓存:Redis(
common-db-redis) -
文件:OSS 模块(
common-oss) -
支付:支付宝 SDK(沙箱/模拟能力)
5.2 管理端(logitcsAdminVue)
-
Vue 3 + TypeScript + Vite
-
UI:Element Plus
-
状态管理:Pinia(含持久化)
-
网络:Axios
5.3 移动端(logitcs-mobile-vue)
-
Vue 3 + TypeScript + Vite
-
路由:Vue Router
-
网络:Axios
-
加密:node-forge(登录密码加密配合后端 challenge)
6. 数据与表(核心)
与需求“核心实体”一致,当前系统已包含/使用:
-
运单:
lg_waybill -
地址:
lg_address -
扫码记录:
lg_scan -
轨迹事件:
lg_tracking_event -
派送任务:
lg_delivery_task -
评价:
lg_evaluation -
系统用户:
sys_user(同时承载移动端账号)
6.1 状态码约定(摘要)
-
运单状态(
lg_waybill.status_cd):CREATED(待揽收)、PICKED(已揽收)、IN_TRANSIT(运输中)、DELIVERED(已签收)、CANCELLED(已取消)、EXCEPTION(异常) -
支付状态(
lg_waybill.pay_status_cd):UNPAID(未支付)、PAID(已支付)、FAILED(支付失败)
7. 数据库迁移说明(Liquibase)
-
迁移入口:
classpath:db/changelog/changelog-master.xml,通过includeAll /db/changelog/merged自动加载 merged 目录下脚本 -
初始化 dump 脚本:
db/changelog/merged/dump-logticsadmin-202603011644.sql-
采用 Liquibase formatted SQL + changeset
-
通过前置条件保护:当库中已存在
sys_user表时跳过执行(避免覆盖已有库)
-
技术描述
后端:springboot3
前端:vue3+ts
项目截图描述


























