Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

物次元 DIY 定制小程序

公司:晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心
负责人:吴赐虹
版本: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

小程序端启动

  1. 用微信开发者工具打开 miniprogram/ 目录
  2. 修改 project.config.json 中的 appid
  3. 修改 miniprogram/app.js 中的 baseUrl 为后端地址
  4. 点击编译运行

⚙️ 环境配置

必需环境变量

复制 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 允许的前端域名(逗号分隔)

📋 API 接口清单

认证模块

方法 路径 说明 认证
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!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'feat: Add AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📧 联系方式

  • 公司:晋江市飞虹智科技企业管理有限公司
  • 中心:飞扬企源研发中心
  • 负责人:吴赐虹

最后更新:2026-08-13


组织与署名

公司:晋江市飞虹智科技企业管理有限公司 中心:飞扬企源研发中心 负责人:吴赐虹

本项目版权归 晋江市飞虹智科技企业管理有限公司 所有,由 飞扬企源研发中心 研发交付。 Entity: https://www.klai.top/#organization · Author: https://www.klai.top/#person-wuchihong

About

飞虹智 klAI · 物次元 — 晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 吴赐虹 旗下创意 / 内容 / 数字化项目集合。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages