43 Commits

Author SHA1 Message Date
chenpei
8bf309e996 修复 AudioVisualizer 音频可视化组件:解决 'already connected' 错误,使用全局 WeakMap 跟踪初始化状态;修复 Dockerfile 构建依赖问题 2025-12-27 18:54:46 +08:00
chenpei
29115dddb8 反编译恢复源码:阶段1 - 核心API和工具库
- 反编译 app/api/materials/route.ts (素材列表和删除API)
- 反编译 app/api/materials/stats/route.ts (统计API)
- 新增 lib/material-log.ts (素材操作日志工具)
- 新增 lib/utils.ts (URL规范化工具)

这是从生产系统2.2.0版本编译代码反编译恢复的第一批文件
2025-12-20 18:10:47 +08:00
chenpei
134abfc0a3 更新系统功能:新增部门管理、平台管理API,优化上传功能和网络检测,更新数据库架构 2025-11-07 19:05:34 +08:00
chenpei
383772d39f 🛡️ 服务器安全加固和FRP问题修复
主要更新:
1. FRP服务器诊断与修复
   - 发现并修复文件描述符耗尽问题(65,536 → 1,048,576)
   - 分析并解决用户上传失败问题
   - 确认SSH服务器安全未被攻破

2. 安全防护系统部署
   - 部署IP黑名单防火墙(封禁20+攻击者)
   - 设置SSH端口速率限制
   - 配置自动化定时任务(每小时更新)
   - 安装Fail2ban实时防护系统
   - 添加白名单保护机制

3. 内网访问优化
   - 改进内网检测逻辑
   - 添加网络状态API
   - 优化钉钉登录流程
   - 完善信息补充功能

4. 文档完善
   - FRP服务器诊断修复报告
   - SSH安全评估报告
   - Fail2ban使用指南
   - 文件描述符详解
   - 用户上传失败原因分析
   - 防火墙配置说明
   - 内网检测改进报告

修复的问题:
- ✅ 文件描述符耗尽导致的服务异常
- ✅ 用户上传失败(影响9.5小时)
- ✅ SSH暴力破解攻击(91,299+次)
- ✅ 第三方项目攻击影响
- ✅ 127.0.0.1误封禁问题

部署的安全措施:
- 三重防护体系(Fail2ban + 防火墙 + 强密码)
- 自动化监控和封禁
- 实时攻击拦截(秒级响应)
- 完整的管理和监控工具

测试环境:开发环境
影响范围:服务器安全、用户上传、系统稳定性
当前状态:✅ 所有问题已修复,系统运行正常
2025-11-06 13:42:36 +08:00
chenpei
5d171c8e9a 修复部署脚本:排除源码目录避免构建错误 2025-10-28 09:20:45 +08:00
chenpei
ace624ee12 功能优化:1.系统设置-导航栏颜色改为主题颜色 2.首页按钮颜色与主题颜色同步 3.优化AI聊天窗口UI设计(渐变头部、圆角气泡、点阵背景等) 2025-10-27 21:39:00 +08:00
chenpei
8b2fbff098 修复AI聊天窗口:调整尺寸到420x680,添加拖拽功能,确保窗口在视口内 2025-10-27 21:17:56 +08:00
chenpei
720ed40b59 修复用户管理:在用户列表 API 中添加 department 字段返回 2025-10-27 19:09:20 +08:00
chenpei
10c2ea96ed debug: 添加部门更新API的详细日志
- 在update-department API中添加console.log
- 记录请求参数和更新结果
- 方便调试部门更新问题
2025-10-27 18:53:37 +08:00
chenpei
ce3b2f489d feat: AI聊天窗口添加拖拽功能
✨ 新功能:
- 窗口可拖动,用户可自由调整位置
- 智能边界限制,防止窗口超出视口
- 拖拽时视觉反馈(cursor: grabbing)
- 头部添加拖拽提示图标(六点握柄)

🎯 使用方式:
- 鼠标按住窗口头部即可拖动
- 自动限制在视口范围内
- 松开鼠标固定位置

🐛 修复:
- 窗口不再固定在右下角
- 解决窗口顶部超出浏览器视口问题
- 关闭按钮阻止拖拽事件冒泡

💡 UX优化:
- cursor-grab/cursor-grabbing 状态提示
- 头部提示文字改为"可拖动窗口"
- 平滑的拖拽体验
2025-10-27 18:46:09 +08:00
chenpei
e4e998b2a6 feat: 优化AI图片处理加载效果 - 对标业界最佳实践
🎨 参考Midjourney/DALL-E等主流AI工具的UX设计:

1. **动态呼吸效果** (breathe animation):
   - 模糊度从15px→12px周期性变化
   - Scale从1.0→1.02微妙缩放
   - 模拟真实的图片生成过程

2. **双层旋转Spinner**:
   - 外圈顺时针旋转
   - 内圈逆时针旋转
   - 增强视觉反馈

3. **渐变Overlay**:
   - 蓝紫渐变半透明背景
   - 毛玻璃backdrop-blur
   - 更精致的视觉效果

4. **完成后淡入动画**:
   - fade-in + slide-in-from-bottom
   - 每张图片延迟100ms
   - 总时长400ms
   - 平滑的视觉过渡

5. **用户图片尺寸优化**:
   - 限制max-w-[200px]
   - 保持原始比例(object-contain)
   - 不会撑大对话框

与业界对比:
- ✅ Midjourney: 渐进式清晰
- ✅ DALL-E: 扫描线+模糊渐变
- ✅ Stable Diffusion: 降噪过程可视化
- ✅ Adobe Firefly: Shimmer效果

现在用户体验媲美专业AI生图工具!
2025-10-27 18:37:38 +08:00
chenpei
463ade5a00 fix: 使用正确的Gemini API代理地址
- 更新API_BASE_URL为: https://api.huandutech.com/v1
- 修复AI聊天连接超时问题
- 使用国内可访问的API代理服务
2025-10-27 18:29:14 +08:00
chenpei
6d8dbf0274 fix: 使用.env.local中正确的Gemini API KEY 2025-10-27 18:26:45 +08:00
chenpei
5a9aa8e2d4 fix: 添加Gemini AI环境变量配置到docker-compose
🔧 修复AI聊天500错误:
- 添加GEMINI_API_KEY环境变量
- 添加GEMINI_API_BASE_URL环境变量
- 添加GEMINI_MODEL环境变量

这将修复AI聊天功能的API调用错误
2025-10-27 18:23:25 +08:00
chenpei
2bd55963fd fix: 优化AI聊天界面风格和图片布局
🎨 UI优化:
- 调整聊天窗口风格,更简洁,与首页风格匹配
- 移除过度华丽的渐变和毛玻璃效果
- 使用更简洁的白色/灰色配色方案
- 统一圆角大小(rounded-lg)

📐 图片布局修复:
- 4张图片加载占位符改为横向一排(grid-cols-4)
- 4张实际图片也改为横向一排显示
- 优化图片卡片样式

🔧 组件优化:
- 简化头部设计,使用蓝色图标
- 简化按钮样式,移除过度动画
- 优化输入框和发送按钮
- 调整悬浮按钮为简洁风格
2025-10-27 18:16:33 +08:00
chenpei
8b3003756b feat: AI聊天助手重大升级 - 支持4张图片生成和更大窗口
✨ 新功能:
- 默认生成4张不同风格/角度的图片
- 智能检测图片生成需求(关键词:生成、创建、画、图片等)
- 横向2x2网格布局展示4张图片
- 图片加载时同时显示4个占位符(动态模糊效果)

📐 窗口尺寸优化:
- 宽度: 420px → 546px (+30%)
- 高度: 680px → 884px (+30%)
- 提供更大的使用空间

🎨 UI改进:
- 图片网格布局(1张=1列,2张=2列,3张=3列,4张=2x2)
- 图片aspect-square正方形显示
- 优化图片悬停和缩放效果
- 改进下载按钮样式(毛玻璃+圆角)
- 每张图片独立下载(带序号)

💬 上下文对话支持:
- 完整保留对话历史(包括图片)
- 过滤掉正在生成的临时消息
- 支持连续多轮对话
- 图片信息在对话中保持

🐛 修复:
- 修复TypeScript类型错误(volc-sdk)
- 删除yedir目录避免构建冲突
- 优化消息内容构建逻辑

现在用户可以一次获得4张不同风格的AI生成图片!
2025-10-27 18:02:57 +08:00
chenpei
dbc26551f8 feat: AI聊天助手按苹果设计规范全面优化
✨ 新功能:
- 图片生成加载占位符(动态模糊效果+旋转动画)
- 智能检测是否需要显示图片加载状态
- 图片加载完成后平滑切换

🎨 UI优化 - 严格遵循苹果设计规范:

1. 毛玻璃效果 (Frosted Glass)
   - backdrop-blur-2xl 超强毛玻璃
   - 半透明背景 (white/95, gray-900/95)
   - 边框透明度 (border/50)

2. 圆角设计 (Corner Radius)
   - 窗口: rounded-3xl (24px)
   - 消息气泡: rounded-3xl
   - 按钮: rounded-2xl
   - 图片: rounded-2xl

3. 渐变与阴影 (Gradients & Shadows)
   - 多色渐变 (from-purple via-blue to-indigo)
   - 柔和阴影 (shadow-2xl with color/opacity)
   - 3D效果图标背景

4. 动画效果 (Animations)
   - shimmer扫光动画 (图片加载)
   - 消息淡入动画 (fade-in slide-in)
   - 按钮缩放反馈 (hover:scale-110 active:scale-95)
   - 悬浮按钮旋转 (rotate-180)
   - 脉动指示器 (animate-ping)

5. 间距与排版 (Spacing & Typography)
   - 更大的内边距 (px-5 py-4)
   - 更舒适的间距 (gap-3 space-y-3)
   - tracking-tight 字体紧凑
   - font-semibold 字重适中

6. 交互反馈 (Interactions)
   - 悬停状态 (hover:bg-white/20)
   - 激活状态 (active:scale-95)
   - 禁用状态透明度 (disabled:opacity-40)
   - 过渡动画 (transition-all duration-300)

7. 颜色系统 (Color System)
   - 透明度分层 (/80, /50, /30, /20)
   - 渐变叠加 (gradient-to-br)
   - 边框颜色统一

8. 详细改进:
   - 头部加入3D效果图标
   - 消息气泡添加阴影和缩放效果
   - 图片预览圆角+阴影+悬停缩放
   - 输入框毛玻璃+柔和边框
   - 发送按钮加载动画+图标
   - 悬浮按钮光晕效果+脉动指示器
   - 滚动条样式优化

📱 体验提升:
- 更流畅的动画
- 更清晰的视觉层次
- 更舒适的色彩搭配
- 更专业的设计质感

现在整个AI助手界面完全符合苹果Human Interface Guidelines!
2025-10-27 17:56:19 +08:00
chenpei
fc17c73df5 docs: 添加AI聊天助手使用指南 2025-10-27 17:50:46 +08:00
chenpei
b3de06ea39 feat: 增强AI聊天助手 - 完整图片支持
新增功能:
✅ 支持发送图片(点击上传、拖拽、粘贴)
✅ 支持接收AI返回的图片(Base64、inline data)
✅ 图片预览和下载功能
✅ 点击图片新窗口查看
✅ 拖拽上传可视化提示
✅ 支持粘贴剪贴板图片
✅ 最多支持5张图片同时发送
✅ 对话历史保留图片信息

图片处理:
- 自动转换为Base64格式
- 支持多种图片格式(PNG、JPG、GIF等)
- 图片预览带删除按钮
- 图片下载功能
- Hover显示下载按钮

用户体验:
- 拖拽区域高亮提示
- 实时图片预览
- 图片点击放大
- 支持键盘快捷键
- 响应式设计

这是一个功能完整的AI图片编辑助手!
2025-10-27 17:49:50 +08:00
chenpei
d0dc94e36d feat: 将弹幕功能替换为AI聊天助手
新功能:
- 创建AI聊天助手组件(AIChatWidget)
- 支持文字+图片多模态对话
- 集成Gemini AI API
- 支持图片编辑和内容生成
- 实时对话历史管理
- 优雅的UI设计,支持黑夜模式

技术实现:
- 后端API代理Gemini API(/api/ai-chat)
- 支持最多5张图片上传
- 流式响应处理
- 对话历史管理
- Base64图片处理

配置:
- 在.env中添加Gemini API配置
- GEMINI_API_KEY
- GEMINI_API_BASE_URL
- GEMINI_MODEL

替换原弹幕功能,提供更强大的AI助手体验!
2025-10-27 17:45:37 +08:00
chenpei
0c4e61ccfc feat: 系统管理页面完全支持浏览器黑夜模式
- 更新背景色、容器、卡片样式支持dark模式
- 更新所有表格(素材、用户)样式支持dark模式
- 更新标签栏、标题、文本颜色支持dark模式
- 更新分类管理(使用店铺、场景类别)支持dark模式
- 更新部门管理UI支持dark模式
- 更新所有按钮、输入框、模态框支持dark模式
- 更新空状态、加载状态文本颜色

现在系统管理和系统设置页面都完全支持黑夜模式,提升用户体验!
2025-10-27 17:33:13 +08:00
chenpei
52f8b930bb chore: 更新package-lock.json 2025-10-27 17:14:11 +08:00
chenpei
eb92f12e69 feat: 弹幕功能改为匿名模式
- 使用随机匿名用户名(神秘访客、路过的设计师等12种随机名称)
- 标题显示全站弹幕(匿名)
- 输入框提示匿名发送,保护隐私
- 不显示真实用户名,保护用户隐私
2025-10-27 17:13:37 +08:00
chenpei
3fff87cd18 feat: 添加S3存储桶配置、全站实时弹幕功能、LOGO分离上传
新功能:
1. S3存储桶配置管理 - 可在系统设置中配置S3端点、密钥等
2. 全站实时弹幕功能 - 右下角悬浮球,支持实时发送和接收弹幕
3. LOGO分离上传 - 导航栏LOGO和登录页LOGO分开上传

数据库更新:
- SystemSettings表新增s3Endpoint, s3AccessKey, s3SecretKey等6个字段
- 新增Danmaku表用于存储弹幕数据

技术改进:
- 部门管理从系统设置移至系统管理标签页
- 优化了浏览器标题动态更新
- 添加了弹幕轮询机制(2秒)
2025-10-27 17:06:54 +08:00
chenpei
d31a85ce9b feat: 新增功能 - 场景数量父子关系联动 + 用户部门编辑
1. 场景类别数量父子关系联动:
   - 选择店铺后,场景数量只显示该店铺下的数量
   - 修改 /api/scenes API 支持 category 参数
   - 前端动态更新场景数量统计

2. 用户部门编辑功能:
   - 新增 /api/admin/users/update-department API
   - 用户管理页面添加"编辑部门"按钮
   - 支持为用户分配/修改所属部门
   - 部门列表从系统设置的部门管理获取
2025-10-27 15:37:33 +08:00
chenpei
6377ce6d24 feat: Change preview card dimensions from 300x500 to 300x400
- Update card height from 500px to 400px in homepage
- Adjust maxHeight in image processor from 1000px to 800px
- Update all processImage calls to use maxHeight: 800
- Optimized for better display ratio on homepage
2025-10-26 17:45:46 +08:00
chenpei
74936237a1 docs: Add HTTPS deployment success report
- SSL certificate configured with Let's Encrypt
- Forced HTTPS redirect (HTTP 301 → HTTPS)
- HTTP/2 enabled
- Security headers added (HSTS, XSS, Frame, Content-Type)
- Auto-renewal configured
- Certificate valid until 2026-01-24
- Domain: https://3d.yydd.ai
- Status: Production ready
2025-10-26 17:43:01 +08:00
chenpei
3417b5b061 docs: Add HTTPS configuration guide for 3D.YYDD.AI
- Three solutions: Nginx+Certbot, Cloudflare SSL, acme.sh
- Detailed step-by-step instructions
- FRP configuration for HTTPS
- Troubleshooting guide
- Comparison of different approaches
2025-10-26 17:31:57 +08:00
chenpei
3bac4f0e11 fix: Remove thumbnailData reference (TypeScript error)
- ag-psd type definition doesn't include thumbnailData
- Simplified error handling for missing composite image data
- Fixes build error during Docker deployment
2025-10-26 17:30:42 +08:00
chenpei
c6831d2787 docs: Add concurrent upload fix documentation 2025-10-26 17:23:09 +08:00
chenpei
030fb2af0b fix: Prevent concurrent upload conflicts with unique file names
- Add generateUniqueFileName function using crypto.randomBytes
- Replace Date.now() with timestamp + random hex for all file names
- Ensures unique file names even when multiple users upload simultaneously
- Fixes: temp PSD files, temp preview files, S3 preview files, and material files
- Resolves reported issue of upload errors with concurrent users
2025-10-26 17:21:39 +08:00
chenpei
765bdef97c chore: Update package-lock.json for canvas dependency 2025-10-26 17:18:44 +08:00
chenpei
ab66b8cf72 fix: Add canvas support for PSD preview generation
- Add canvas as optional dependency in package.json
- Install canvas system dependencies in Dockerfile (cairo, pango, etc.)
- Initialize canvas in psd-processor with fallback support
- Add detailed logging for PSD processing
- Support both composite image data and thumbnail fallback
- Canvas will be available in Docker environment but optional locally
2025-10-26 16:42:00 +08:00
chenpei
f7d9ebe1ab docs: Update PROJECT_INTRODUCTION.md with PSD auto-preview and dimension updates
- Add v2.6.0 changelog for PSD auto-preview and 300x500 dimensions
- Update upload flow to include PSD auto-preview generation
- Update card display specs to 300x500 vertical format
- Add ag-psd to technology stack
- Update image processing documentation
- Update user guide for PSD file uploads
2025-10-26 16:32:28 +08:00
chenpei
f17f0922a4 docs: Add image dimensions update report (300x500)
- Document PSD long image cropping feature (top 1200px)
- Document image processor maxHeight support
- Document homepage card height change to 500px
- Include technical specifications and best practices
2025-10-26 16:27:50 +08:00
chenpei
0666edc4a8 feat: Update preview image dimensions to 300x500
- Modify PSD processor to crop long images to top 1200px
- Update image processor to support maxHeight parameter (1000px)
- Change homepage card height from 300px to 500px
- Update upload API to use new image processing parameters
- Support vertical/portrait images better with 300x500 display
2025-10-26 16:15:14 +08:00
chenpei
a9a623b36d docs: Add PSD auto-preview deployment report 2025-10-26 16:08:41 +08:00
chenpei
e9a14d9f4f fix: Include ag-psd package and lib directory in Docker container
- Add ag-psd node_modules to Docker image
- Copy lib directory containing psd-processor
- Ensure PSD auto-preview functionality works in production
2025-10-26 16:00:32 +08:00
chenpei
e69f15337d feat: Add automatic PSD preview generation
- Add psd-processor library to auto-generate previews from PSD files
- Update upload API to detect PSD files and generate previews automatically
- Make preview image optional for PSD file uploads
- Update UploadModal UI to show PSD files don't require manual preview upload
- Install ag-psd package for PSD processing
2025-10-26 15:49:33 +08:00
chenpei
d17f6df2c7 feat: 部门管理和文件上传优化
新功能:
1. 部门管理功能
   - 管理员可在系统设置中添加/删除部门
   - 用户注册时从下拉框选择部门
   - 新增Department数据库表和API

2. 文件上传优化
   - 支持直接上传源文件(.max/.psd/.ai/.cad/.dwg/.c4d)
   - 自动识别文件类型并设置素材类型
   - 压缩包需手动选择类型
   - 优化拖拽上传体验

数据库变更:
- 新增departments表
- User表新增department字段
2025-10-26 14:06:19 +08:00
chenpei
69f774aa36 feat: SPU输入框限制中文并自动转大写
- UploadModal: SPU输入框只允许英文、数字和符号(- _ .),自动过滤中文,小写自动转大写
- EditMaterialModal: 同步修改编辑页面的SPU输入框规则
- 确保SPU格式统一规范
2025-10-26 13:46:26 +08:00
chenpei
3b825883bb feat: 添加多类型素材支持和系统外观设置功能 (v2.4.0)
新增功能:
- 素材类型系统:支持3DMAX/PSD/AI/CAD/C4D/其他等多种类型
- 智能表单:渲染器选项仅在3DMAX类型时显示
- 类型标签:首页卡片显示素材类型标签(橙色)
- 系统外观设置:自定义导航栏颜色、LOGO和网站名称

数据库变更:
- 新增materialType字段到materials表
- 新增materialType索引优化查询
- 新增SystemSettings表存储系统设置

技术改进:
- 完整的TypeScript类型支持
- 前后端完整适配
- 修复Next.js配置弃用警告
- 添加完整的部署文档

文件变更:
- 修改: 上传/编辑组件支持素材类型
- 修改: API接口处理新字段
- 新增: 系统设置管理页面
- 新增: 系统设置API路由
- 新增: 数据库迁移文件
- 更新: 项目文档和部署指南
2025-10-26 09:58:40 +08:00
chenpei
caa3d66c0a Initial commit: 共享平台项目 2025-10-26 09:11:04 +08:00