【立项背景和目标】高校校园里,取快递、取外卖、跑腿代办是高频需求,传统依靠微信群、朋友圈喊单的方式信息分散、没有资金保障、发生纠纷也难以追溯。本项目的目标是搭建一套覆盖“发布任务—支付赏金—接单配送—确认结算—售后退款”完整闭环的校园跑腿平台,让供需双方在可信、有记录、有资金保障的环境中完成交易。
【软件功能】系统由微信小程序用户端、Web管理后台和服务端组成。小程序端15个页面:支持微信一键登录、账号密码登录与注册;首页聚合轮播图、系统公告、灵动岛通知与附近任务;任务大厅支持分类筛选、按时间与赏金排序、关键词搜索;发布任务支持选择分类、取送地址、赏金、截止时间与附图,支付后进入待接单;我的订单支持骑手送达、确认收货、申请售后;另有校园互助发布、地址管理、骑手认证、余额充值与意见反馈。管理后台16个模块:仪表盘统计与用户地域分布、用户管理、骑手审核、任务管理、订单管理(含售后退款处理)、高校管理、轮播图管理、通知中心、分类配置、收益统计与操作日志。
【业务流程】学生发布任务并支付赏金后,任务进入待接单;通过认证的骑手在任务大厅接单,系统生成订单并进入配送;骑手点击已送达后,发布者确认收货,赏金自动入账骑手余额,后台收益统计实时更新;如有纠纷可申请售后,由管理员处理退款。骑手须先提交学号与证件照片、经后台审核通过后方可接单。超时未支付、超时未接单、超时未确认的单据由系统定时任务自动取消、退款或结算。
【整体架构与设计思路】采用前后端分离架构。服务端基于Spring Boot 3.3.7与Java 17,使用Spring Security+JWT实现无状态鉴权,Redis缓存登录态并维护token黑名单,MyBatis-Plus操作MySQL(17张表),图片存于腾讯云COS私有桶并经后端代理读取;小程序端为原生框架,统一请求封装与接口字段适配器;管理端为Vue3+Vite+ECharts,axios拦截器注入token,路由守卫控制访问。开发阶段通过Vite代理联调,生产环境以Docker多阶段构建部署至微信云托管。
【负责模块与结果】本人独立完成系统的需求分析、架构设计、三端开发与测试。实现小程序15个页面与后台16个管理模块;服务端提供14个小程序接口控制器、17个后台控制器,约130个接口;完成17张表的数据模型设计。核心交易闭环(发布、支付、接单、送达、确认、结算、售后)状态机全部落地,资金操作全部纳入事务并以条件更新防止并发问题;36条功能用例与8项接口冒烟测试全部通过;最终产出4份项目文档与演示视频。
【难点与解决方案】一是微信登录联调:jscode2session要求appid与密钥经环境变量注入且修改后需重启进程,code一次性有效,通过统一环境变量配置与错误信息分档(如appid missing、invalid code)快速定位问题,并用curl伪造code验证链路连通性。二是资金安全:早期方案存在信任前端金额的隐患,重构为服务端以数据库数据为准重新加载订单,扣款采用余额条件更新的原子SQL,入账与退款全部事务化。三是私有桶图片访问:小程序image标签无法携带token,改为后端代理接口读取并校验对象名前缀,防止越权。四是并发竞态:两名骑手同时接单时,用带旧状态条件的更新实现乐观锁,保证仅一人成功。五是金额精度:赏金以分、余额以元存储,换算统一收敛在SQL层,避免浮点误差。