返回项目列表
项目案例#Go#go-zero#MySQL#Redis#RabbitMQ#React#Next.js#微信小程序#Docker

多租户 SaaS 收银系统

基于 go-zero 的多商户收银系统,覆盖租户、门店、商品、库存、会员、交易、支付与对账边界。

多租户 SaaS 收银系统 项目截图

项目背景

这是一套仍在持续建设的多商户 SaaS 收银系统。目标不是堆叠管理页面,而是先把租户、门店、库存、交易和支付之间的责任边界建立清楚。项目包含 8 个服务、React 管理端和微信小程序端,代码与架构文档均保存在本地工程中。

我的工作

  • 设计 Gateway、认证、商户、商品、库存、会员、交易和支付服务的接口边界

  • 建立租户、门店两级数据上下文,并在公共中间件统一校验

  • 实现幂等键、Outbox、支付回调验签和服务端最终状态确认

  • 维护数据库迁移、OpenAPI、Proto、Docker 与 CI 检查流程

关键设计

所有业务请求先在网关完成身份解析,再把可信的租户与门店上下文传给下游。服务不会接受客户端随意指定的数据归属。交易和支付拆分后,通过幂等键防止重复下单,通过事件与主动查单修正异步结果。

客户端展示的是交互状态,服务端确认的才是交易最终状态。

工程取舍

当前阶段优先保证服务边界、契约和测试可以稳定演进,没有把微服务数量当成目标。对于仍能在单服务内完成的流程,保持同步调用;只有支付通知、库存流水等需要解耦和追溯的链路才引入消息与 Outbox。

验证方式

  • API 与 Proto 生成差异检查

  • Go race test、vet、lint 和多服务构建

  • MySQL migration 记录与可重复种子数据

  • 支付回调、幂等冲突和租户越权测试

当前状态

私有工程案例,仍在持续开发。页面不提供虚假的在线地址或公开仓库链接;这里展示的是已经落到代码、迁移和测试中的架构能力。