GoWind Shop(风行商城)是一套面向出海场景的企业级多语言电商平台,采用 API 优先、前后端分离架构,提供多语言原生内容分发、多币种商品展示与单一结算币种能力。后端基于 golang + go-kratos 微服务框架,采用 Protobuf-first(契约驱动)工作流;前端后台基于 Vue.js 3 + TypeScript,店铺前台基于 Nuxt + Vue 3。
- 多语言原生支持:基于 i18n 的多语言内容分发,面向出海场景
- 契约驱动(Protobuf-first):接口、数据模型、错误码均以 proto 为单一事实源,自动生成 Go / TypeScript / OpenAPI
- 三服务 BFF 架构:
admin / app 瘦网关 + core 核心实现,业务逻辑与传输层解耦
- 全栈代码生成:Ent Schema → ORM,一键 CRUD 脚手架
- 店铺前台全站重写:20 个页面统一设计基元,亮暗双主题、移动端吸底导航
- 生产就绪:JWT 鉴权、Casbin / OPA 授权、SSE 推送、Asynq 异步任务、OpenTelemetry 链路追踪、Swagger 文档、Docker 一键部署
GoWind Shop 采用三服务 BFF 架构:admin 与 app 为瘦网关,仅做参数校验与 gRPC 转发;core 为核心实现,所有数据访问集中于此。
HTTP/REST 请求
└─ admin-service (后台网关 BFF,REST:10600 / SSE:10601 / gRPC)
└─ gRPC → core-service (核心业务 + 数据落点)
app-service (前台网关 BFF,REST:10700) ──gRPC──→ core-service
core-service (gRPC,业务实现与数据访问)
| 服务 |
角色 |
是否访问 DB |
app/admin/service |
后台网关 BFF(接收 REST,转发 gRPC 到 core) |
❌ |
app/app/service |
前台网关 BFF |
❌ |
app/core/service |
核心业务实现(持久化、真实逻辑) |
✅ |
| 层级 | 技术 |
| 后端框架 | Golang · go-kratos v2 · Protobuf / Buf |
| ORM | entgo.io/ent · PostgreSQL · MySQL |
| 中间件 | Redis · SeaweedFS(S3 兼容对象存储,MinIO 社区版停维护后的替代,容器服务名沿用 minio) · ElasticSearch / OpenSearch · etcd(服务发现) |
| 认证授权 | kratos-authn(JWT HS256) · kratos-authz(Casbin / OPA) |
| 实时通信 | SSE(服务端推送) · Asynq(异步任务) |
| 分布式 | OpenTelemetry + Jaeger(链路追踪) · DTM(分布式事务) |
| 后台前端 | Vue 3 · TypeScript · Vite · Element Plus |
| 店铺前端 | Nuxt · Vue 3 · TypeScript · Tailwind CSS · i18n |
| 部署运维 | Docker · Docker Compose · PM2 · Swagger UI |
| 工具 |
版本 |
| Go |
1.25+ |
| Node.js |
>= 20.10.0 |
| pnpm |
>= 10.0.0 |
| Docker |
20.0+ |
- Linux / macOS 开发环境:
scripts/env/install_unix_dev.sh
- Linux / macOS 生产环境:
scripts/env/install_unix_prod.sh
- Windows 开发环境:
scripts/env/install_windows_dev.ps1
- full_deploy 完整模式:同步启动中间件+后端应用,适用于一键演示、生产部署
- libs_only 依赖模式(推荐开发):仅启动中间件,应用本地 IDE 运行调试
Linux / macOS:
# 赋予脚本执行权限
chmod +x scripts/**/*.sh
# 开发环境(推荐)
./scripts/env/install_unix_dev.sh
./scripts/docker/libs_only.sh
cd backend/app/<admin|app|core>/service
make run
# 生产环境
./scripts/env/install_unix_prod.sh
./scripts/docker/full_deploy.sh
# PM2 进程托管(生产进阶)
./scripts/deploy/pm2_service.sh
Windows(PowerShell 管理员):
# 放行脚本策略(首次仅需执行一次)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# 初始化环境
.\scripts\env\install_windows_dev.ps1
# 本地开发
.\scripts\docker\libs_only.ps1
cd backend/app/<admin|app|core>/service
make run
# 一键完整部署
.\scripts\docker\full_deploy.ps1
前端项目统一存放于 frontend 目录,依赖安装命令一致:
| 前端 |
目录 |
启动命令 |
| 后台管理 |
frontend/admin |
pnpm dev |
| 店铺前台 |
frontend/app |
pnpm dev |
# 安装依赖
pnpm install
# 后台管理(Vue3 + Element Plus)
cd frontend/admin && pnpm dev
# 店铺前台(Nuxt + Vue 3)
cd frontend/app && pnpm dev
具体监听端口见各前端目录下的 .env.development。
| 管理后台 |
店铺前台 |
 |
 |
| 促销活动管理(商品专价 / 店铺满减) |
店铺首页(消息未读徽标 · AI 导购助手) |
 |
 |
| 库存操作流水(append-only 审计) |
消息中心(订单状态通知 · 未读标记) |
 |
 |
| 订单管理(状态机 + 取消/关闭) |
我的订单(全生命周期状态) |
 |
 |
| 商品详情(拼团价划线 · 拼团角标 · 评论区) |
店铺首页 · 暗色主题(一键切换) |
| 功能 |
说明 |
| 商品管理 |
商品与 SKU 的发布、上下架与维护 |
| 商品属性 |
商品属性与属性值管理 |
| 类目管理 |
商品类目管理,支持树形结构 |
| 品牌管理 |
品牌信息管理 |
| SKU 与定价 |
SKU、属性组合与价格管理 |
| 购物车 |
购物车与购物车项管理 |
| 订单管理 |
订单与订单明细管理,含订单状态机(乐观并发推进) |
| 订单自动化 |
超时未支付自动取消(延时任务 + 周期兜底清扫)、发货超期自动确认收货 |
| 订单通知 |
支付/发货/取消/确认收货/退款全链路站内信通知买家 |
| 搜索 |
OpenSearch 全文检索 + 输入联想(商品名前缀短语匹配)+ AI 查询改写(自然语言→检索关键词组),ReindexAll 周期全量重索引双向收敛兜底 |
| 促销活动 |
商品专价、店铺满减、秒杀、拼团——下单事务内统一计价,优先级拼团 > 秒杀 > 专价,与优惠券叠加封顶 |
| 库存操作流水 |
append-only 审计:下单扣减、取消/退款回补、手动调整全留痕 |
| 秒杀 |
SKU 级限时限量抢购,秒杀价最高优先级覆盖结算价,行锁防超卖 + 每人限购 |
| 拼团 |
成团价抢购(group_size 人支付成团),到期未成团自动退款关闭成员订单(groupon_sweep 周期任务) |
| 会员积分 |
消费入账(1 积分/元,等级倍率放大)+ 退款回冲 + 每日签到(+5/天,幂等)+ 积分兑换优惠券,append-only 台账 + 余额快照 |
| 会员等级 |
按累计已支付金额自动分层(level 降序匹配),积分入账按等级倍率放大 |
| 售后退款 |
买家发起 → 管理端审批 → 渠道退款(微信/支付宝 API)+ 流水 REFUNDED + 库存回补 + 站内信 + 积分回冲 |
| 对账自愈 |
周期扫描陈旧 PENDING 流水主动查渠道——回调丢失补确认推进订单,渠道已关闭收敛 FAILED;退款漂移检测告警 |
| 关单联动 |
订单取消/超时后 best-effort 关闭渠道预支付单,让旧二维码/收银台链接失效 |
| 商品评论 |
树形评论 + 点赞 + 商家回复 + AI 反垃圾(可选开关) |
| AI 导购 |
Function Call 工具循环(找商品/查价/查订单/查优惠),C端悬浮助手 |
| 支付与退款 |
微信 Native/H5、支付宝、Mock 三渠道适配器;意图/回调两段式;对账自愈;退款漂移检测;关单联动;退款自动化(渠道退款→库存回补→站内信→积分回冲);部署方自带商户资质,平台不经手资金 |
| 物流发货 |
订单履约与物流发货管理,含发货状态机与订单联动 |
| 优惠券系统 |
优惠券模板与用户优惠券管理,含定价折扣引擎与下单核销/退款返还 |
| 财务导出 |
订单明细服务端 XLSX 导出(对账用,突破客户端聚合上限) |
| 文件传输 |
商品图片与资源上传传输 |
| 功能 |
说明 |
| 用户档案 |
用户档案信息管理 |
| 租户管理 |
多租户管理与初始化 |
| 角色管理 |
角色与角色分组管理 |
| 权限管理 |
权限分组与权限点管理 |
| 菜单管理 |
系统菜单与按钮权限配置 |
| 组织管理 |
组织、部门、职位管理 |
| 接口管理 |
接口注册与同步 |
| 字典与多语言 |
数据字典与多语言内容管理 |
| 任务调度 |
异步任务与调度日志管理 |
| 文件管理 |
文件上传与对象存储管理 |
| 内部消息 |
站内消息与消息分类管理 |
| 审计日志 |
登录、操作、权限与数据访问审计日志 |
| 找回密码 |
邮箱验证码找回密码流程 |
| 登录策略 |
登录策略配置管理 |
go-wind-shop/
├── backend/ # 后端项目
│ ├── api/ # Protobuf API 定义与生成代码
│ │ ├── protos/ # .proto 源文件(按领域分层)
│ │ └── gen/go/ # buf 生成的 Go 代码
│ ├── app/ # 应用实现层(admin / app / core 三个微服务)
│ │ └── <admin|app|core>/service/
│ │ ├── cmd/server/ # 入口 + 手写依赖装配
│ │ ├── configs/ # 运行时配置(YAML)
│ │ └── internal/ # 业务核心(server / service / data)
│ ├── pkg/ # 跨服务公共库
│ ├── scripts/ # 部署与环境脚本(env / docker / deploy)
│ ├── sql/ # 数据库种子 / 演示数据脚本
│ └── Makefile / app.mk # 构建编排
├── frontend/ # 前端项目
│ ├── admin/ # Vue 3 + Element Plus 后台
│ └── app/ # Nuxt + Vue 3 店铺前台
└── README.md
- 微信个人号:
yang_lin_bo(备注:go-wind-shop)