Skip to content

About

Cross-border e-commerce platform on go-kratos: catalog, SKU, coupon, and order/fulfillment engines, REST/SSE BFF gateways over a gRPC core, native i18n with multi-currency display, Ent on PostgreSQL/MySQL, Elasticsearch/OpenSearch search, JWT + Casbin/OPA authorization, Vue3 admin and Nuxt storefront frontends.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Repository files navigation

GoWind Shop|风行商城

GoWind Shop|风行商城

Go Version Vue Docker

English | 中文 | 日本語


项目简介

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
ORMentgo.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

在线演示

站点 地址
店铺前台 https://shop.gowind.cloud
管理后台 https://admin.shop.gowind.cloud

快速开始

环境要求

工具 版本
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

Docker 两种部署模式

  • 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)

About

Cross-border e-commerce platform on go-kratos: catalog, SKU, coupon, and order/fulfillment engines, REST/SSE BFF gateways over a gRPC core, native i18n with multi-currency display, Ent on PostgreSQL/MySQL, Elasticsearch/OpenSearch search, JWT + Casbin/OPA authorization, Vue3 admin and Nuxt storefront frontends.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages