这个项目是一个基于若依二次开发的业务系统,整体采用经典的前后端分离架构:后端以 Spring Boot 2.5.x + MyBatis 为核心,前端使用 RuoYi-Vue 技术栈承载管理端页面与交互。代码结构延续若依多模块设计,根工程统一管理依赖与版本,按职责拆分为 ruoyi-admin(Web 入口)、ruoyi-framework(安全与框架能力)、ruoyi-system(系统管理能力)、ruoyi-common(通用组件)、ruoyi-quartz(定时任务)和 ruoyi-generator(代码生成)等模块,具备较好的工程化组织方式,便于按功能扩展和部署维护。
本项目的核心场景围绕“商品-下单-支付-履约-售后”形成完整闭环。控制层包含商品分类、商品管理、订单、子订单、购物车、售后、观演人、地址、轮播图、图文内容、表单等多个子域接口,同时提供面向微信端的聚合入口。业务命名和接口路径显示该系统兼具后台运营管理能力与微信侧用户服务能力,既支持后台对商品、内容、订单状态进行维护,也支持用户在微信端完成浏览、下单、支付、查询与售后申请等流程。
在核心交易链路上,订单服务实现了较完整的状态流转逻辑:下单前进行库存校验和扣减,生成主订单与子订单号,记录订单日志,结合 Redis 做待支付订单的超时控制,再通过支付回调推进支付状态与订单状态变更。支付模块集成微信支付能力,覆盖下单支付、回调验签处理、退款等关键路径;同时系统通过枚举类管理支付状态、订单状态与售后状态,提高了状态机可读性和一致性。
项目使用 MySQL 作为主数据存储,Druid 连接池管理数据库连接,Redis 承担缓存、会话态与部分业务状态存储;并集成 Redisson 用于分布式锁等并发控制场景。接口规范沿用若依体系的统一响应对象与分页对象,便于前后端协作和标准化返回。系统还保留了 Swagger、日志审计、权限控制、字典配置、定时任务等通用企业后台能力,具备较强的可运营性。整体上,这是一个以若依为底座、深度贴合微信业务流程的交易型管理系统,既继承了成熟后台框架的稳定性,也通过 mt 业务域实现了面向实际运营场景的功能落地。
在这个项目里,我整体采用的是“若依底座 + 业务域扩展”的思路。底层沿用若依多模块结构,把公共能力和业务能力拆开,避免把所有代码堆在一个工程里。技术上,后端是 Spring Boot + Spring MVC + MyBatis,数据库用 MySQL,缓存和状态控制用 Redis,并发控制场景引入了 Redisson。系统模块上,ruoyi-framework 负责安全、权限、拦截器、统一异常等基础能力;ruoyi-system 承担用户、角色、菜单、字典等通用管理;ruoyi-common 放工具类和公共封装;ruoyi-admin 作为接口入口承载具体业务;ruoyi-quartz 负责定时任务;ruoyi-generator 用于代码生成提效。前端是若依 Vue 体系,走前后端分离,后端只提供标准化 REST 接口。这种设计的核心目标是:基础能力稳定复用、业务模块快速迭代、线上问题可定位可追踪。
我自己主要负责的是 mt 业务域里的交易主链路,重点包括商品下单、购物车结算、微信支付回调、售后流程、订单状态流转和相关日志追踪。落地结果上,我完成并联调了订单/支付/售后相关核心接口链路,覆盖“创建订单-库存校验与扣减-待支付超时控制-支付回调改态-履约/提货-售后申请与审核”等关键环节;仅微信侧聚合接口就沉淀了 50+ 个,后台管理侧对应模块也全部打通,包含订单、子订单、售后、地址、观演人、商品等管理能力。业务稳定性上,我把订单状态和支付状态做了枚举化和分层处理,减少了“魔法值”带来的误改;把待支付订单放进 Redis 做超时控制后,明显减少了脏订单和超时未关闭带来的人工处理成本。项目推进方式上,我是按“接口先行 + 状态机兜底 + 日志可回放”来做,确保每次改动都能回溯。
项目里最难的点主要有三个。第一是交易状态一致性,尤其是“下单扣库存”和“支付回调改状态”之间的时序问题。早期踩过的坑是并发下单或重复回调导致状态覆盖,出现库存与订单不一致。我的处理是把关键状态流转前置校验、幂等判断和锁控制结合起来:库存操作集中收口、支付回调按订单号做幂等、只允许状态单向推进,同时把关键操作写入订单日志,出问题能快速还原现场。第二是金额精度问题,前后端传参和第三方支付对金额单位不一致,容易出现“元/分”混用。我统一采用“数据库存分、展示层转元”的策略,并在下单、回调、退款三条链路做统一转换,避免了对账差异。第三是微信支付和售后退款链路联动复杂,回调报文、验签、异常分支多,稍不注意就会造成“支付成功但本地状态未更新”或“退款结果未落库”。我把回调处理拆成“报文解析-结果校验-业务更新-日志记录”四步,出现异常时保证可重试、可补偿,并通过统一返回和告警日志降低排查成本。