公司:晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心
负责人:吴赐虹
版本:v1.0.0
状态:开发中(核心功能已完成,待联调部署)
物次元是面向二次元爱好者的可视化实物 DIY 定制小程序平台,核心能力是「自主自由设计」——空白画布从零原创,一键适配多品类实物下单。
- 自主设计画布:基于 Fabric.js 的可视化编辑器,支持自由绘图、文字添加、图片上传、图层管理
- 一键多品类适配:设计稿自动适配 T 恤、帆布袋、鼠标垫、手机壳、徽章等 6 大品类
- 报价系统:多维度定价算法(品类 × 尺寸 × 工艺 × 数量 × 会员折扣)
- 订单支付:微信小程序原生支付集成
- 作品分享与分成:创作者发布设计作品,获得销售分成
- 内容审核:设计作品提交审核机制(RBAC 权限控制)
物次元/
├── miniprogram/ # 微信小程序端(微信原生 + Fabric.js)
│ ├── app.js/json/wxss # 应用入口与全局配置
│ ├── pages/
│ │ ├── home/ # 首页(品类、模板、自主设计入口)
│ │ ├── design-editor/ # 设计编辑器(核心·Fabric.js)
│ │ ├── works/ # 作品中心
│ │ ├── order/ # 订单支付流程
│ │ └── mine/ # 个人中心
│ ├── components/
│ │ └── fabric-engine/ # Fabric.js 封装组件
│ ├── utils/
│ │ ├── api.js # API 请求封装(JWT 自动注入)
│ │ ├── utils.js # 工具函数(报价算法/适配算法/时间格式化)
│ │ └── filters.wxs # WXS 过滤器
│ └── assets/ # 静态资源(图标、轮播图、商品封面)
│
├── server/ # NestJS 后端服务
│ ├── prisma/schema.prisma # 数据库模型(11张表)
│ ├── src/
│ │ ├── modules/
│ │ │ ├── auth/ # 认证模块(微信登录 + JWT 双 token)
│ │ │ ├── user/ # 用户模块
│ │ │ ├── design/ # 设计模块(核心)
│ │ │ ├── goods/ # 商品模块(适配算法)
│ │ │ ├── order/ # 订单模块(微信支付)
│ │ │ ├── review/ # 审核模块(RBAC)
│ │ │ └── wallet/ # 钱包分成模块
│ │ └── shared/
│ │ ├── config/ # 配置管理(环境变量)
│ │ ├── database/ # Prisma 数据库服务
│ │ └── middleware/ # 守卫/异常过滤
│ ├── migrations/ # Prisma 迁移文件
│ ├── .env.example # 环境变量模板
│ └── tsconfig.json # TypeScript 配置
│
├── 物次元DIY定制小程序产品开发文档.md # 产品需求文档
├── 物次元市场调研与报价系统说明书.md # 市场调研与报价说明
├── README.md # 本文件
├── DEPLOY.md # 部署指南
├── .gitignore # Git 忽略配置
└── LICENSE # MIT 开源协议
- Node.js >= 18
- MySQL >= 8.0 或 PostgreSQL >= 14
- 微信小程序开发者工具
- 腾讯云 COS 账号(用于图片存储)
- 微信小程序 AppID(用于登录授权)
cd server
# 安装依赖
npm install
# 复制环境变量配置
cp .env.example .env
# 编辑 .env 填入实际值(见下方配置说明)
# 初始化数据库
npx prisma migrate deploy
# 启动开发服务器
npm run start:dev- 用微信开发者工具打开
miniprogram/目录 - 修改
project.config.json中的appid - 修改
miniprogram/app.js中的baseUrl为后端地址 - 点击编译运行
复制 server/.env.example 为 .env 并填写:
| 变量名 | 说明 | 示例 |
|---|---|---|
DATABASE_URL |
数据库连接字符串 | mysql://user:pass@host:3306/wuciyuan |
JWT_SECRET |
JWT 访问令牌密钥 | 随机生成的 64 位字符串 |
REFRESH_TOKEN_SECRET |
Refresh token 密钥 | 随机生成的 64 位字符串 |
WECHAT_APP_ID |
微信小程序 AppID | wx1234567890abcdef |
WECHAT_APP_SECRET |
微信小程序 AppSecret | abc123... |
COS_SECRET_ID |
腾讯云 COS 密钥 ID | AKIDxxxxxxxxxx |
COS_SECRET_KEY |
腾讯云 COS 密钥 Key | xxxxxxxxxxxxxxxxxx |
COS_REGION |
COS 地域 | ap-guangzhou |
COS_BUCKET |
COS 存储桶名称 | wuciyuan-1234567890 |
| 变量名 | 说明 |
|---|---|
CONTENT_SECURITY_APPID |
微信内容安全 API AppID |
CONTENT_SECURITY_APPKEY |
微信内容安全 API Key |
AI_MATTING_API_KEY |
AI 抠图 API 密钥 |
AI_MATTING_API_URL |
AI 抠图 API 地址 |
ALLOWED_ORIGINS |
允许的前端域名(逗号分隔) |
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| POST | /api/v1/auth/login |
微信登录获取 token | 无 |
| POST | /api/v1/auth/refresh |
刷新 access token | 无 |
| POST | /api/v1/auth/logout |
登出 | ✓ |
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| GET | /api/v1/users/me |
获取当前用户信息 | ✓ |
| PUT | /api/v1/users/me |
更新用户信息 | ✓ |
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| POST | /api/v1/designs/canvas |
创建空白画布 | ✓ |
| GET | /api/v1/designs/:id |
获取设计稿详情 | ✓ |
| PUT | /api/v1/designs/:id |
保存设计稿 | ✓ |
| POST | /api/v1/designs/:id/export |
导出设计图 | ✓ |
| POST | /api/v1/designs/:id/submit-review |
提交审核 | ✓ |
| GET | /api/v1/designs/mine |
我的设计列表(分页) | ✓ |
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| GET | /api/v1/goods/categories |
商品品类列表 | 无 |
| GET | /api/v1/goods/templates |
模板列表(分页) | 无 |
| GET | /api/v1/goods/templates/:id |
模板详情 | 无 |
| POST | /api/v1/goods/:goodsId/adapt |
设计适配计算 | 无 |
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| POST | /api/v1/orders |
创建订单 | ✓ |
| POST | /api/v1/orders/:id/pay |
发起支付 | ✓ |
| GET | /api/v1/orders/mine |
我的订单列表 | ✓ |
| GET | /api/v1/orders/:id |
订单详情 | ✓ |
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| GET | /api/v1/admin/reviews |
待审核列表 | ✓ (reviewer/admin) |
| POST | /api/v1/admin/reviews/:id/approve |
审核通过 | ✓ (reviewer/admin) |
| POST | /api/v1/admin/reviews/:id/reject |
审核驳回 | ✓ (reviewer/admin) |
| POST | /api/v1/admin/reviews/:id/offline |
下线作品 | ✓ (admin) |
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| GET | /api/v1/wallet/summary |
收益概览 | ✓ |
| GET | /api/v1/wallet/bills |
分成账单列表 | ✓ |
| 表名 | 说明 | 关键字段 |
|---|---|---|
users |
用户表 | openid, nickname, avatar, role, membership_status |
membership_plans |
会员套餐 | name, price, duration_days, benefits |
user_original_designs |
用户自主设计 | user_id, canvas_data, status, adaptation_params |
goods_categories |
商品品类 | name, icon, sort_order |
goods |
商品 | category_id, name, base_price, print_area |
templates |
设计模板 | category_id, image_url, cover_image |
materials |
素材库 | type, url, tags |
orders |
订单 | order_no, user_id, goods_id, status, total_amount |
wallet_accounts |
分成账户 | user_id, balance, total_earned |
royalty_bills |
分成账单 | user_id, order_id, amount, status |
review_records |
审核记录 | design_id, reviewer_id, status, comment |
admin_users |
后台管理员 | username, password_hash, role |
- 框架:微信原生小程序
- 画布引擎:Fabric.js(通过 WXML Canvas API 桥接)
- 状态管理:App globalData + 本地存储
- 构建工具:微信开发者工具
- 框架:NestJS 10(TypeScript)
- ORM:Prisma 5.9
- 数据库:MySQL 8.0+
- 认证:JWT(access 15min + refresh 7d httpOnly cookie)
- 安全:Helmet + express-rate-limit + Zod 校验
- 日志:Winston(结构化 JSON 日志)
- 存储:腾讯云 COS
// 位置:miniprogram/utils/utils.js
calculatePrice(category, size, printMethod, quantity, isMember, isUrgent)定价维度:
- 品类基础价:T 恤 59-129元 / 帆布袋 45-79元 / 鼠标垫 29-59元
- 尺寸系数:S/M/L/XL 对应不同倍率
- 工艺加价:DTG 直喷 / 热转印 / 丝印
- 数量折扣:批量订单阶梯定价
- 会员折扣:月卡 19.9元 / 年卡 179元
- 加急费用:48h 发货加收 20%
// 位置:miniprogram/utils/utils.js
getAdaptParams(canvasWidth, canvasHeight, productWidth, productHeight, strategy)适配策略:
- contain:完整显示设计稿,可能留白
- cover:填满产品区域,可能裁剪边缘
- JWT 双 token:access token 15分钟有效期,refresh token 7天 httpOnly cookie
- RBAC 权限控制:user/member/reviewer/admin 四级角色
- 微信内容安全:设计作品提交前自动审核
- 请求限流:100 次/分钟 IP 限流
- HTTP 安全头:Helmet 中间件防护 XSS/点击劫持等
| 指标 | 数据 |
|---|---|
| 2024 谷子经济市场规模 | 1689 亿元 |
| 2025 预计市场规模 | 突破 2000 亿元 |
| 泛二次元用户 | 5.03 亿 |
| 核心用户 | 1.2 亿 |
| Z 世代占比 | 95% |
| 女性用户占比 | 61% |
| 痛包年销量(闲鱼) | 25 万只 |
| 痛文化新发商品同比增长 | 268% |
总周期:40 天(四阶段 WBS)
| 阶段 | 周期 | 主要内容 |
|---|---|---|
| 第一阶段 | Day 1-7 | 基础搭建:项目初始化、数据库设计、认证模块 |
| 第二阶段 | Day 8-22 | 核心编辑器:Fabric.js 集成、图层管理、导出功能 |
| 第三阶段 | Day 23-32 | 业务闭环:订单流程、支付集成、作品审核 |
| 第四阶段 | Day 33-40 | 测试优化:性能优化、Bug 修复、上线准备 |
- 所有敏感信息已从代码中移除(API Key、密码等)
-
.env文件已加入.gitignore - TODO/FIXME 标记已清理或记录为 Issue
- TypeScript 无编译错误
- 所有 API 接口已完成单元测试
- JWT 密钥已更换为强随机值
- 数据库密码已更换为强随机值
- COS 密钥已限制最小权限
- 微信 AppSecret 已保密
- 内容安全 API 已启用
- 服务器已配置防火墙规则
- 数据库已创建并配置访问权限
- COS 存储桶已创建并配置跨域
- 微信小程序后台已配置服务器域名
- SSL 证书已部署
- 微信登录流程正常
- 设计编辑器可正常使用
- 订单创建与支付流程正常
- 作品审核流程正常
- 会员权益正常
main:生产分支(受保护,需 Code Review)develop:开发分支feature/*:功能分支fix/*:修复分支
feat: 新增功能
fix: 修复 bug
docs: 文档更新
style: 代码格式调整
refactor: 重构
test: 测试相关
chore: 构建/工具相关
本项目采用 MIT License 开源协议。
版权所有:晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'feat: Add AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- 公司:晋江市飞虹智科技企业管理有限公司
- 中心:飞扬企源研发中心
- 负责人:吴赐虹
最后更新:2026-08-13
公司:晋江市飞虹智科技企业管理有限公司 中心:飞扬企源研发中心 负责人:吴赐虹
- 官网:https://www.klai.top
- 知识库:https://kb.klai.top
- 开源矩阵:https://github.com/wch887292
- 实体权威声明(机器可读):https://www.klai.top/entity.jsonld
本项目版权归 晋江市飞虹智科技企业管理有限公司 所有,由 飞扬企源研发中心 研发交付。 Entity:
https://www.klai.top/#organization· Author:https://www.klai.top/#person-wuchihong