Lenovo Commerce Stack · 三端一体

面向电商增长的轻量级骨架, 极速搭建 · 稳定迭代 · 易观测

覆盖前台商城、后台运营与服务端 API:Hono + Prisma + MySQL 打造的可观测电商内核,内置 JWT 双令牌、上传、日志钩子与邮件通知,支撑商品、订单、营销、权限、售后全链路。

Runtime Snapshot

Node

18+

Framework

Hono 4

ORM

Prisma 6

DB

MySQL

采用 pnpm + tsx 的快速开发体验,配合 JWT 认证、Multer 上传、Nodemailer 通知,满足电商核心场景。

Client

lenovo-shop · 前台商城

Vite + React + Tailwind 打造移动优先的商品、订单与营销体验,支持闪购、搜索、分期与会员促销位。

Console

lenovo-admin · 运营后台

分角色登录、权限路由与全局消息中心,覆盖商品上架、库存、优惠券、订单售后、用户管理与数据看板。

Server

lenovo-shop-server · API

Hono 4 + Prisma 6 + MySQL 8,双令牌 JWT、Multer 上传、短信/邮件验证码、事务化下单与快照,支持 Node/Bun/Edge 部署。

Full Stack

三项目协同 · 端到端交付

前台体验 · 运营后台 · 服务端 API

lenovo-shop

前台商城

React · Vite

面向消费者的高转化前台,移动优先与秒开体验,内建营销位与搜索/闪购链路。

  • 技术:Vite 5、React 18、TypeScript、Tailwind、React Query。
  • 能力:闪购倒计时、分期与以旧换新标签、商品多配置与对比、全局 LoadingFallback。
  • 体验:ProtectedRoute 鉴权、搜索建议、首页内容化模块、图片懒加载与模态大图。

lenovo-admin

运营后台

React · Vite

面向运营与客服的管理台,聚焦上架、库存、订单、售后、优惠和用户画像,提升日常运营效率。

  • 技术:Vite + React + TypeScript,路由守卫 PrivateRoute,全局消息 GlobalMessageProvider。
  • 能力:商品上新/上下架、库存告警、优惠券与代金券配置、秒杀档期、售后审核流。
  • 安全:基于 token 的鉴权与权限校验,按角色展示菜单,敏感操作提示。

lenovo-shop-server

服务端 API

Hono · Prisma

Hono 4 + Prisma 6 打造的可观测 API 平台,覆盖 admin/client 双路由,事务化保证交易与售后链路。

  • 技术:Hono Router、Prisma Client、MySQL 8、pnpm + tsx 热更新、JWT 双令牌。
  • 能力:Multer 上传、短信/邮件验证码、库存锁定、防超卖、订单与售后快照字段。
  • 运维:APM/OTel 预留、灰度/限流扩展位、可部署 Node/Bun/Edge,迁移与种子脚本化。

Tech Stack

技术底座 · 深入拆解

Hono

API & Runtime

Hono 4 + Node 18+

极简路由 + 中间件流水线,天然低延迟,Edge/Node/Bun 可切换,内置压测友好的无状态接口设计。

  • TypeScript 优先,路由定义即类型提示。
  • 中间件解耦 JWT、Session、IP 识别,方便组合。
  • WebSocket、静态资源、文件上传与缓存头友好支持。
@hono/node-server @hono/node-ws hono/router
Prisma

Data & Schema

Prisma 6.1 + MySQL 8

类型安全的数据访问层,迁移留痕可审计,自动生成客户端减少 SQL 负担;库表覆盖商品、库存、营销、订单、售后与互动。

  • Prisma Client 自动生成,减少 SQL 手写成本。
  • Migrate 管理多环境 schema 演进,稳定回滚。
  • 事务封装下单、售后、库存锁定,避免超卖。
prisma migrate Prisma Client MySQL 8 PlanetScale 兼容
Security

Security & Ops

JWT 9 · Bcrypt 3 · Multer 2

多维安全:双令牌认证、密码哈希、上传校验、邮件验证码 + 告警,账户与资产双保险。

  • Access/Refresh Token 分离,支持前后台角色。
  • bcryptjs 保护密码,避免明文与弱哈希风险。
  • Multer + Nodemailer 覆盖上传、邮件验证码与营销通知。
  • 可扩展黑名单、IP 限流、签名下载等安全策略。
jsonwebtoken bcryptjs multer nodemailer helmet-ready

Frontend Stack

lenovo-shop · lenovo-admin

React 19 · Vite 7
  • UI:TailwindCSS 3.4(shop)+ Ant Design 6(shop/admin),配合 framer-motion、Swiper 营造动效与轮播。
  • 数据与表单:axios、react-hook-form + zod 校验,React Query/ahooks 辅助请求与异步状态。
  • 状态:zustand 管理轻量全局态(用户、购物车、主题等),react-router-dom 7 负责路由与守卫。
  • 体验:react-error-boundary、react-hot-toast、emoji-picker、cropper/图片裁剪与懒加载,保证易用性。

Backend · DevEx

lenovo-shop-server

Hono · Prisma · pnpm
  • 运行:Hono 4.10、Node 18+、Bun/Edge 兼容,@hono/node-server + ws 支持 HTTP/WS。
  • 数据:Prisma 6.1 + MySQL 8,prisma migrate 留痕;faker 造数;uuid 统一主键生成。
  • 安全与媒资:jsonwebtoken 9、bcryptjs 3、multer 2、nodemailer 7,支持上传、验证码、邮件通知。
  • 工程:pnpm 10、tsx 4 热更新、TypeScript 5.9、ESLint 9;dotenv 读取多环境变量。

Highlights

项目特色

Prisma 文档 →

电商域完整度

品牌/品类/商品/配置/货架/库存/营销/订单/售后/互动全链路,涵盖 B2C 典型链路:上新、首页运营位、秒杀、库存锁定、下单与售后仲裁。

  • 商品多配置、多标签、上架专区与轮播营销联动。
  • 库存锁定与秒杀价格快照,防止超卖与价格漂移。
  • 订单状态机 + 物流单号 + 收货/发货快照,售后工单含凭证与时间线可审计。
  • 评价/吐槽/商家回复/点赞形成互动闭环,可用于内容化运营与洞察。

工程体验

TypeScript + pnpm + tsx 热更新,前后端统一 lint/format;路径别名与严格模式、轻量状态管理,让迭代与联调可控。

  • 路由分层(admin / client),中间件解耦 IP、JWT、Session、上传。
  • 迁移文件留痕,便于审计与回溯;.env 模板明确运行参数。
  • 公共 utils(token、verification、db、oss 等)与服务层拆分,易于拓展新域。
  • 前台/后台 React 19 + Vite 7,Tailwind/AntD 组件体系 + zustand 轻量全局态,适合快速做专题/运营位。

数据体量

30+ 表

商品、营销、交易、售后、互动与权限全域覆盖,预留扩展字段。

认证策略

Access / Refresh

前后台双角色 JWT,Refresh Token 滚动刷新 + 黑名单校验。

可运维性

单体可拆分

支持 Node/Bun/Edge 部署;迁移、种子、日志钩子与 APM 接入可脚本化。

Flow

典型请求链路

低延迟 · 可观测 · 可横向扩展

Client

Web / App / Mini Program

Hono Router

JWT / Session / Upload

Prisma ORM

MySQL / Migration

Auth

JWT 双令牌

Access Token 短时保护接口,Refresh Token 刷新长会话,服务端刷新并校验黑名单。

File

Multer 上传

商品主图、宣传图、售后凭证等多场景上传处理,支持多字段分片配置。

Notify

Nodemailer

邮件验证码、订单通知、营销邮件快速对接,SMTP 可切换。

Middlewares

IP 解析、防刷、JWT 宽松/严格模式、中间件链路可按路由组合。

Services

按领域拆分(auth、product、order、coupon 等),复用 utils 与 Prisma client。

Persistence

事务封装关键链路(下单、售后),快照字段保证历史可追溯。

Observability

预留日志钩子,可接入 APM / OpenTelemetry,扩展 tracing 与指标采集。

Flow Map

功能链路 · 端到端拆解

覆盖鉴权、商品、下单、售后、营销、权限

账号与鉴权链

jwtMiddleware

注册/登录/刷新/登出 → 发送验证码 → 账号信息、头像、邮箱/密码修改,均走 JWT 严格模式;部分商品列表用 jwtLooseMiddleware 允许未登录浏览。

  • /api/auth/register | /login | /refresh | /logout
  • /api/send-verification-code 发送邮箱/短信验证码
  • /api/user/login-user-info, /account-info, /change-email, /change-password, /upload-avatar

商品发现与优惠链

jwtLoose + Coupon

分类/首页/上新/秒杀卡片、搜索、评价、点赞、货架详情、秒杀详情、领券中心全链路打通;未登录可浏览,登录后可领券/点赞。

  • /api/products/product-cards/:category-code, /new-product-cards, /index-product-cards
  • /api/products/seckill-product-cards, /search-product-cards
  • /api/products/:productId/evaluations, /evaluations/:id/like
  • /api/products/shelf-products/:id/detail, /seckill-products/:round/:id/detail
  • /api/products/coupon-center/coupons (领券中心)

购物车与优惠链

Coupons · Vouchers

购物车增删查、优惠券/代金券领取与按商品查询、地址簿管理与默认地址;为下单链提供必要上下文。

  • /api/user/add-shopping-card | delete-shop-cards | shopping-cards
  • /api/user/coupon-center/claim, /coupons, /vouchers, /coupons/:product-id
  • /api/user/add-address | update-address/:id | remove-address/:id | address-list | set-default/:id

下单与支付链

Transaction

创建订单、支付(含代金券)、取消、收货、删除订单、订单统计与列表查询,搭配库存锁定与快照字段防超卖、防价格漂移。

  • /api/order/create | cancel | pay/voucher | payment/status
  • /api/order/list | order-detail/:id | stats | list/query | delete-order/:id | confirm-receipt
  • 事务化处理下单与库存锁定(服务层),订单/商品快照字段记录价格与配置。

售后与互动链

Upload + Audit

售后申请/取消、投诉、评价、吐槽、凭证上传、列表/详情查询,支持文件上传与时间线记录,保障仲裁可审计。

  • /api/after-sale/apply | cancel/:id | after-sales | after-sales/:id
  • /api/after-sale/complaint | complaints | complaints/:id
  • /api/after-sale/evaluation | evaluations | evaluation/:id
  • /api/after-sale/comment | comments
  • uploadMiddleware 处理售后凭证/图片,JWT 严格模式保护。

权限与运营链(后台)

authAdmin

Admin 路由统一经过 session.middleware 的 authAdmin 校验;涵盖权限菜单、账号绑定/解绑身份、踢下线、禁用、重置密码;商品/库存/货架/营销/订单/售后/客服全栈运营。

  • /admin/login | logout | permissions | account/profile | account/permissions
  • /admin/system/users | admins | identities | permissions | admins/online + 绑定/解绑/禁用/重置/踢下线
  • 商品与库存:/admin/brands | categories | products | products/stats | configs | stocks | appearances | banners
  • 货架与推送:/admin/shelf/products | shelf/stats | shelf/items | shelf/home-push | shelf/new-push
  • 营销:/admin/marketing/coupons | coupon-center | vouchers | seckill-rounds | seckill-products/configs
  • 订单/售后/投诉:/admin/orders... + after-sales + complaints;客服会话消息读取/撤回。

Capabilities

功能矩阵与项目细节

覆盖用户、交易、营销、售后全域

账号与认证

  • 前台登录注册、短信/邮箱验证码、Access+Refresh token。
  • 后台管理员登录,权限表/角色表可扩展 RBAC。
  • 会话校验中间件与白名单/黑名单策略预留。

商品与内容

  • 品牌、品类、标签、配置、主图/外观图/介绍图多维管理。
  • 货架专区、轮播、上新、首页推送、秒杀货架联动。
  • 库存表与上架数量表分离,支持锁定与预警。

订单与支付

  • 订单状态机(待支付/待发货/待收货/已完成/已取消)。
  • 商品、配置、优惠快照,防止后续价格/信息漂移。
  • 收货/发货快照,物流单号与超时取消策略。

营销与优惠

  • 优惠券/代金券、领券中心、可叠加策略、商品适用范围。
  • 新品推送、首页推送、秒杀轮次与秒杀价直设。
  • 分期、以旧换新、自营/可定制标签,提升转化。

售后与客服

  • 退换修三合一售后单,状态追踪与时间戳记录。
  • 售后图片、物流信息、同意/拒绝原因全量存档。
  • 客服回复、吐槽反馈与点赞计数,形成闭环。

扩展与运维

  • dotenv 配置环境,分离密钥与数据库连接。
  • pnpm + tsx 热更新,tsconfig 支持路径别名与严格模式。
  • 可接入 Redis 缓存、消息队列、APM/Tracing 以提升吞吐与观测。

数据模型速览

核心表族

Prisma Schema

商品与货架

品牌、品类、商品、配置、外观图、介绍图、货架商品、库存与上架数量。

营销与优惠

标签、优惠券、代金券、领券中心、商品-优惠关联、首页/新品/秒杀推送、套餐与组合购。

交易与售后

订单、订单商品、快照字段、物流信息、售后工单与凭证,含发货/收货快照与仲裁时间戳。

互动与反馈

评价、吐槽、商家回复、点赞计数,支持追踪与洞察,便于营销与客服联动。

Dashboard

Admin 控制台

为后台运营、客服、营销与品类团队预留 API 能力,便于接入内部或三方前端界面。

Roadmap

下一步可以做

面向增长与稳定的平衡

短期

接入监控

接入 OpenTelemetry + APM,追踪慢查询与错误告警。

短期

缓存/队列

Redis 旁路缓存与消息队列,提升秒杀与营销场景吞吐。

中期

RBAC/多租户

完善权限维度,支持跨事业部多租隔离与审计。

中期

灰度发布

支持按人群、地域与设备的灰度策略,提升上线安全性。

Get Started

快速跑通

  1. 1. 安装依赖:pnpm install
  2. 2. 配置环境:创建 .env 按模板填入数据库与密钥
  3. 3. 生成客户端:pnpm prisma generate
  4. 4. 迁移数据:pnpm prisma migrate dev --name init
  5. 5. 启动开发:pnpm dev,访问 http://localhost:3003
Team