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
三项目协同 · 端到端交付
lenovo-shop
前台商城
面向消费者的高转化前台,移动优先与秒开体验,内建营销位与搜索/闪购链路。
- 技术:Vite 5、React 18、TypeScript、Tailwind、React Query。
- 能力:闪购倒计时、分期与以旧换新标签、商品多配置与对比、全局 LoadingFallback。
- 体验:ProtectedRoute 鉴权、搜索建议、首页内容化模块、图片懒加载与模态大图。
lenovo-admin
运营后台
面向运营与客服的管理台,聚焦上架、库存、订单、售后、优惠和用户画像,提升日常运营效率。
- 技术:Vite + React + TypeScript,路由守卫 PrivateRoute,全局消息 GlobalMessageProvider。
- 能力:商品上新/上下架、库存告警、优惠券与代金券配置、秒杀档期、售后审核流。
- 安全:基于 token 的鉴权与权限校验,按角色展示菜单,敏感操作提示。
lenovo-shop-server
服务端 API
Hono 4 + Prisma 6 打造的可观测 API 平台,覆盖 admin/client 双路由,事务化保证交易与售后链路。
- 技术:Hono Router、Prisma Client、MySQL 8、pnpm + tsx 热更新、JWT 双令牌。
- 能力:Multer 上传、短信/邮件验证码、库存锁定、防超卖、订单与售后快照字段。
- 运维:APM/OTel 预留、灰度/限流扩展位、可部署 Node/Bun/Edge,迁移与种子脚本化。
Tech Stack
技术底座 · 深入拆解
API & Runtime
Hono 4 + Node 18+
极简路由 + 中间件流水线,天然低延迟,Edge/Node/Bun 可切换,内置压测友好的无状态接口设计。
- TypeScript 优先,路由定义即类型提示。
- 中间件解耦 JWT、Session、IP 识别,方便组合。
- WebSocket、静态资源、文件上传与缓存头友好支持。
Data & Schema
Prisma 6.1 + MySQL 8
类型安全的数据访问层,迁移留痕可审计,自动生成客户端减少 SQL 负担;库表覆盖商品、库存、营销、订单、售后与互动。
- Prisma Client 自动生成,减少 SQL 手写成本。
- Migrate 管理多环境 schema 演进,稳定回滚。
- 事务封装下单、售后、库存锁定,避免超卖。
Security & Ops
JWT 9 · Bcrypt 3 · Multer 2
多维安全:双令牌认证、密码哈希、上传校验、邮件验证码 + 告警,账户与资产双保险。
- Access/Refresh Token 分离,支持前后台角色。
- bcryptjs 保护密码,避免明文与弱哈希风险。
- Multer + Nodemailer 覆盖上传、邮件验证码与营销通知。
- 可扩展黑名单、IP 限流、签名下载等安全策略。
Frontend Stack
lenovo-shop · lenovo-admin
- 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 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
项目特色
电商域完整度
品牌/品类/商品/配置/货架/库存/营销/订单/售后/互动全链路,涵盖 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 严格模式保护。
权限与运营链(后台)
authAdminAdmin 路由统一经过 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 以提升吞吐与观测。
数据模型速览
核心表族
商品与货架
品牌、品类、商品、配置、外观图、介绍图、货架商品、库存与上架数量。
营销与优惠
标签、优惠券、代金券、领券中心、商品-优惠关联、首页/新品/秒杀推送、套餐与组合购。
交易与售后
订单、订单商品、快照字段、物流信息、售后工单与凭证,含发货/收货快照与仲裁时间戳。
互动与反馈
评价、吐槽、商家回复、点赞计数,支持追踪与洞察,便于营销与客服联动。
Admin 控制台
为后台运营、客服、营销与品类团队预留 API 能力,便于接入内部或三方前端界面。
Roadmap
下一步可以做
短期
接入监控
接入 OpenTelemetry + APM,追踪慢查询与错误告警。
短期
缓存/队列
Redis 旁路缓存与消息队列,提升秒杀与营销场景吞吐。
中期
RBAC/多租户
完善权限维度,支持跨事业部多租隔离与审计。
中期
灰度发布
支持按人群、地域与设备的灰度策略,提升上线安全性。