Commit Graph

68 Commits

Author SHA1 Message Date
zhonghua
764f6eec4b fix:公告添加租户隔离 2026-04-03 14:49:32 +08:00
zhonghua
7afb57c9bf fix:添加活动 2026-04-03 14:18:38 +08:00
zhonghua
78cd956ab5 fix:修复创建活动失败 2026-04-03 13:49:19 +08:00
zhonghua
f223e9bd41 清理文件 2026-04-03 10:17:36 +08:00
zhonghua
c5fad30849 fix: 修复用户管理页面所属机构字段显示及列表过滤逻辑
1. 前端所属机构字段改为使用后端返回的平铺 tenantName 字段
   - users.ts: 添加 tenantName, tenantCode, tenantType, tenantIsSuper 平铺字段
   - Index.vue: 表格列和详情 Drawer 使用 record.tenantName/detailData.tenantName

2. 后端修复机构用户 (org) 过滤逻辑
   - SysUserServiceImpl: case "org" 分支增加 getOrgTenantIds() 调用,传递 orgTenantIdsFilter 参数
   - SysUserMapper.xml: 增加 orgTenantIdsFilter 参数处理,使用 IN 查询过滤

3. 后端修复公众 (public) 和评委 (judge) 用户过滤逻辑
   - 数据库中 public 租户的 tenant_type='platform',judge 租户的 tenant_type='other'
   - case "public"/"judge" 改为传递 tenantCodeFilter 参数,按租户 code 过滤
   - SysUserMapper.xml: 增加 tenantCodeFilter 参数处理

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 20:06:09 +08:00
zhonghua
d19d7d9a2c Merge branch 'develop' of http://8.148.151.56:3000/tonytech/library-picturebook-activity into master_develop 2026-04-02 18:49:12 +08:00
zhonghua
dcaa7e1779 调整样式 2026-04-02 18:49:01 +08:00
aid
3c4100c231 feat: 创建租户时自动生成管理员账号、角色和权限
创建租户改为事务化一站式操作:自动复制 gdlib 权限模板 + 补充基础管理权限,
创建 tenant_admin 角色和管理员用户,支持自定义账号密码。
前端表单增加管理员输入区块,成功弹窗展示凭据并支持一键复制。
同步实现 menuIds 菜单分配(消除原 TODO)。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 18:48:34 +08:00
zhonghua
8154628d3d Merge branch 'master_develop' of http://8.148.151.56:3000/tonytech/library-picturebook-activity into develop 2026-04-02 18:31:51 +08:00
zhonghua
ea65b55332 fix: 补齐作品租户隔离与租户菜单树
- 作品列表/统计补齐 validState 与租户条件,关键字支持报名/队伍信息匹配
- 新增租户菜单树接口与服务实现,结构对齐用户菜单树
- t_biz_contest_work 增加 deleted 字段,补充 flyway 迁移与启动时轻量修复

Made-with: Cursor
2026-04-02 18:30:45 +08:00
aid
c99738fc46 新增 Java 转写开发日志 Day1
记录完整开发过程:模块剥离→转写(8个Phase)→数据库适配→写操作测试→
前端联调→端到端验证→权限检查→菜单修复→文档输出,含明日待续清单

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 17:16:15 +08:00
zhonghua
ab5bd36cec 移除node后端 2026-04-02 17:14:11 +08:00
aid
0b989b047a 完善菜单配置规范文档:补充全量菜单ID表+各端登录信息+权限码+调试指南
- 新增各端登录信息速查表(URL/用户名/密码/角色)
- 新增完整菜单ID对照表(54条菜单,标注所属端和废弃状态)
- 补充评委端权限码列表(10个)
- 补充公众端导航结构+无需认证接口列表
- 补充租户端各子菜单功能说明
- 补充浏览器缓存切换端的注意事项
- 补充新建租户时的菜单分配说明

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:39:59 +08:00
aid
e9676ea924 新增菜单配置规范文档 + 修正超管端移除数据统计模块
- 新增 docs/design/menu-config.md:各端菜单完整配置规范
  - 超管端 5个一级21条(活动监管/内容管理/机构管理/用户中心/系统设置)
  - 租户端 4个一级18条(工作台/数据统计/活动管理/系统设置)
  - 评委端 1个一级3条(我的评审)
  - 含排除清单、技术实现要点、权威来源说明
- 修正超管端 tenant_menus:移除数据统计(52/53/54),数据统计是租户端专属

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:31:22 +08:00
aid
fd9c739cf5 修复租户端登录和菜单:支持 tenantCode 登录 + gdlib 菜单修正
问题1: 前端登录传 body.tenantCode(如 gdlib),但 Java 后端只从 X-Tenant-Id header 取租户ID
修复: AuthController/AuthService 支持从 tenantCode 查找租户,兼容两种方式

问题2: gdlib 租户菜单错乱(包含了超管端的活动监管/内容管理等)
修复: 重置 gdlib tenant_menus 为正确的18条:
  工作台(50) + 活动管理(9+8子) + 数据统计(52+2子) + 系统设置(14+4子:机构信息/用户/角色/日志)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:26:58 +08:00
aid
5b5af63f58 修复超管端菜单错乱 + Knife4j版本兼容
- SysMenuServiceImpl: 超管也按 tenant_menus 过滤菜单(之前返回全部52个菜单导致错乱)
- 远程数据库: 超管端 tenant_menus 补全至27条(活动监管8子+数据统计2子+内容管理3子+机构管理+用户中心2子+系统设置5子)
- Knife4j 版本 4.5.0→4.4.0(修复 SpringDocConfigProperties bean 找不到)
- Flyway 禁用(同事已删除迁移脚本)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:08:40 +08:00
zhonghua
483740f10b 调整密码 2026-04-02 15:51:53 +08:00
zhonghua
249e73d252 环境更变 2026-04-02 15:49:40 +08:00
aid
5c0d87d4a6 替换数据库导出为干净的初始化脚本 init.sql
- 去掉所有外键约束(按Java规范:关联通过代码控制)
- 去掉GTID设置(兼容不同MySQL版本)
- 41张表全部使用新规范表名(t_sys_/t_biz_/t_ugc_/t_user_)
- 含新审计字段(create_by/update_by/deleted)
- 已在空库验证导入成功
- 位置: backend-java/src/main/resources/db/init.sql

使用方法: mysql -u root < backend-java/src/main/resources/db/init.sql

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 15:41:46 +08:00
aid
58c232dadc Java后端正式版:表名规范化 + Flyway启用 + 数据库导出
- 所有实体 @TableName 改为规范格式(t_sys_/t_biz_/t_ugc_/t_user_)
- Flyway 启用(V1重命名+V2新审计字段)
- BaseEntity 启用新审计字段(create_by/update_by/deleted)
- 逻辑删除启用(deleted字段)
- SysUserMapper.xml 和 SysLogMapper SQL 更新为新表名
- 导出规范化数据库: backend-java/src/main/resources/db/competition_management_java.sql
  - 41张表,全部 t_{module}_ 前缀
  - 含完整数据(用户/租户/权限/活动/作品/评分等)
  - admin 密码统一为 admin123

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:57:26 +08:00
aid
a6b056520d 更新数据库导出:含权限补全 + modify_time 默认值修复
- gdlib 租户补全全套权限码(97个),分配给 tenant_admin
- 所有表 modify_time 列添加 DEFAULT CURRENT_TIMESTAMP(3)
- configs 表添加 valid_state 列
- t_contest_registration 表添加 valid_state 列
- 所有 admin 账号密码重置为 admin123

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:47:53 +08:00
aid
096d06af3d Java 后端完整转写:NestJS/Prisma → Spring Boot/MyBatis-Plus
## 技术栈
- Spring Boot 3.2 + Java 17 + MyBatis-Plus 3.5
- Spring Security + JWT 认证(与 NestJS 兼容)
- MapStruct + Knife4j + Druid + Hutool + FastJSON2
- 腾讯云 COS 文件上传

## 项目规模
- 239 个 Java 文件,246 个文件总计
- 39 个实体类映射到现有数据库
- ~256 个 API 端点,与 NestJS 完全兼容

## 模块清单
- Phase 0: 脚手架 + 基础框架(BaseEntity, Result, JWT, Security, AOP权限)
- Phase 1: 认证/用户/角色/权限/租户(~35 接口)
- Phase 2: 菜单/字典/配置/日志(~25 接口)
- Phase 3: 赛事核心 — 赛事/报名/作品/团队/附件/公告(~46 接口)
- Phase 4: 评审/计分/成果 — 评审规则/评委/分配/评分/排名/奖项/发布(~52 接口)
- Phase 5: 作业 — 作业/提交/评分/评审规则(~20 接口)
- Phase 6: 公众端 — 注册/登录/画廊/活动/作品库/子女/互动/内容审核(~55 接口)
- Phase 7: UGC — 作品/绘本页/标签/点赞/收藏/评论/举报/审核日志(~15 接口)
- Phase 8: 文件上传/OSS(1 接口)

## 验证结果
- mvn compile 零错误,1.8秒启动
- 62 个 API 端点手动测试通过(GET + POST/PATCH/DELETE)
- 20 个前端页面 Playwright 自动化测试通过,69+ API 调用零错误
- 核心业务全流程验证:登录→赛事→报名→作品→评审→计分→排名→奖项→发布

## 数据库适配
- 使用现有表名(Flyway 暂禁用,待正式切换时启用)
- Flyway V1/V2 迁移脚本已准备(表重命名+新审计字段)
- 修复:configs/t_contest_registration 添加 valid_state 列
- 修复:所有表 modify_time 添加 DEFAULT CURRENT_TIMESTAMP

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:05:41 +08:00
aid
bead1cf4dc 剥离学校端/教师端/学生端/3D建模模块,清理跨模块引用
- 移除 backend: school/ (schools, departments, grades, classes, teachers, students)
- 移除 backend: ai-3d/ (controller, service, providers, utils)
- 移除 frontend: views/school/, views/workbench/ai-3d/, views/model/
- 移除 prisma schema: School, Grade, Department, Class, Teacher, Student, StudentInterestClass, AI3DTask 共8个模型
- 移除 app.module.ts: SchoolModule, AI3DModule 导入
- 移除 router/index.ts: 3D建模4条路由
- 移除 menu.ts: componentMap 中学校/3D映射
- 修复 registrations.service.ts: 教师判断从 Teacher 模型改为角色判断
- 修复 results.service.ts: 移除 student include
- 修复 homework services: 移除 student/class/grade 相关 Prisma 查询
- 保留 students.ts/teachers.ts/ai-3d.ts 最小类型存根供赛事组件引用
- 原始代码备份至 competition-management-system-stripped-modules/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:04:40 +08:00
aid
9215465bd5 Day5: 租户端全面优化 + 数据统计看板 + 成果发布完善
租户端基础设施:
- 新增工作台首页(欢迎信息/统计/待办/快捷操作/新手引导)
- 新增机构信息管理页(自助查看编辑机构信息)
- 修复403报错(fetchTenants加超管守卫)
- 修复权限(log:read/notice:update/notice:delete/contest:work:read)
- 修复评审规则组件映射

活动管理全模块优化(机构端视角):
- 活动列表:加统计概览+精简列+筛选自动查询+发布弹窗修复+操作逻辑优化
- 创建/编辑活动:重构布局(去card嵌套+栅格响应式+分区卡片)
- 评委管理:统一主色调+冻结确认+导入导出disabled
- 报名管理:去Tab+统计+审核状态列+批量审核接口
- 报名记录:统计概览+去机构列+撤销审核+返回按钮+去参与方式列
- 作品管理:去Tab+统计+递交进度彩色+筛选修复(assignStatus/submitTime)
- 评审进度:去Tab+统计+实际完成率状态+筛选修复
- 评审规则:表格加评委数/计算方式+描述列修复+删除保护
- 成果发布:去Tab+统计+操作文案优化
- 通知公告:统一主色调+发布确认+操作逻辑+状态筛选+时间范围

成果发布详情功能补全:
- 计算得分/排名/设置奖项三步操作流程
- 排名列(金银铜徽章)+奖项列+奖项筛选
- 自定义奖项(动态添加行替代硬编码一二三等奖)
- 后端AutoSetAwardsDto改为awards数组格式

数据统计看板(新模块):
- 后端analytics module(overview+review两个接口)
- 运营概览:6指标卡片+报名转化漏斗+ECharts月度趋势+活动对比表
- 评审分析:4效率卡片+评委工作量表+ECharts奖项分布饼图
- 菜单注册:数据统计→运营概览+评审分析

Bug修复:
- 超管重置其他租户用户密码报"用户不存在"
- gdlib登录快捷标签密码不一致
- 分配评委去掉评审时间限制

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 20:02:24 +08:00
aid
83f007d20e Day5: 机构管理模块优化 — 隐藏内部租户+后端搜索+快捷操作+新建引导
- 后端过滤系统内部租户(super/public/school等),列表只展示真实机构
- 搜索改为后端分页查询(keyword+tenantType参数),去掉前端过滤
- 表格新增登录地址列,一键复制完整URL
- 新增停用/启用快捷按钮(PATCH /tenants/:id/status)
- 新建机构成功后弹出引导,可直接跳转创建管理员账号
- 修复编辑弹窗因模板访问window导致的渲染崩溃

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:39:14 +08:00
aid
f246b38fc1 Day5: 超管端内容管理模块全面优化 + 广场推荐作品展示
作品审核:
- 批量通过/批量拒绝 + 撤销审核机制
- 默认筛选待审核,表格加描述预览+审核时间列
- 详情Drawer加上一个/下一个导航,审核后自动跳下一个
- 操作日志时间线展示,筛选下拉自动查询

作品管理:
- 修复筛选/排序失效,新增推荐中筛选
- 下架改为弹窗选择原因,取消推荐二次确认
- 详情Drawer补全描述/标签/操作按钮/操作日志
- 统计卡片可点击筛选,下架自动取消推荐

标签管理:
- 按分类分组卡片式展示,分类改为下拉选择
- 新增标签颜色字段(预设色+自定义)
- 上移/下移排序按钮,使用次数可点击跳转作品管理
- 新增/编辑时实时预览用户端标签效果

广场推荐:
- 新增推荐作品列表接口 GET /public/gallery/recommended
- 广场顶部新增「编辑推荐」横向滚动栏

文档更新:内容管理设计文档补充实施记录,UGC开发计划P1-1标记已完成

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:21:21 +08:00
aid
66827c0199 Day5: 公众端响应式修复 + 点赞收藏功能 + 报名作品合并 + 菜单同步
- 公众端桌面端新增顶部导航菜单,修复横屏模式菜单消失问题
- 实现点赞/收藏 toggle API(含批量状态查询、我的收藏列表)
- 作品详情页新增互动栏(点赞/收藏按钮,乐观更新+动效)
- 广场卡片支持点赞交互
- 报名列表合并展示参赛作品,移除独立的「我的作品」页面
- 个人中心新增「我的收藏」入口
- menus.json 与数据库完整同步,更新初始化脚本租户分配逻辑
- Vite 开启局域网访问

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 13:56:20 +08:00
aid
4466e28b3b 超管端用户管理:「平台」更名为「运营团队」+ 子女信息适配独立账号模型
- 统计卡片和用户类型Tag从「平台」改为「运营团队」,避免命名歧义
- 公众用户详情从旧版Child模型(姓名/年级/学校)改为UserParentChild关系,展示子女独立账号信息
- 后端详情接口和列表_count同步从children切换到parentRelations
- 更新统一用户管理设计文档,补充实施记录

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 18:03:44 +08:00
aid
418aa57ea8 Day4: 超管端设计优化 + UGC绘本创作社区P0实现
一、超管端设计优化
- 文档管理SOP体系建立,docs目录重组
- 统一用户管理:跨租户全局视角,合并用户管理+公众用户
- 活动监管全模块重构:全部活动(统计卡片+阶段筛选+SuperDetail详情页)、报名数据/作品数据/评审进度(两层合一扁平列表)、成果发布(去Tab+统计+隐藏写操作)
- 菜单精简:移除评委管理/评审规则/通知管理
- Bug修复:租户编辑丢失隐藏菜单、pageSize限制、主色统一

二、UGC绘本创作社区P0
- 数据库:10张新表(user_works/user_work_pages/work_tags等)
- 子女账号独立化:Child升级为独立User,家长切换+独立登录
- 用户作品库:CRUD+发布审核,8个API
- AI创作流程:提交→生成→保存到作品库,4个API
- 作品广场:首页改造为推荐流,标签+搜索+排序
- 内容审核(超管端):作品审核+作品管理+标签管理
- 活动联动:WorkSelector作品选择器
- 布局改造:底部5Tab(发现/创作/活动/作品库/我的)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 22:20:25 +08:00
zhangxiaohua
435df2bf16 添加@types/multer类型依赖
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:04:43 +08:00
zhangxiaohua
00491c7ac4 修复backend的gitignore规则并添加日志模块
- 修复.gitignore中logs规则匹配范围过大的问题
- 添加后端日志管理模块源代码

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 16:58:50 +08:00
zhangxiaohua
fe91f88350 修复gitignore规则并添加系统日志页面
- 修复.gitignore中logs规则匹配范围过大的问题
- 添加系统日志管理页面

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:56:25 +08:00
zhangxiaohua
f6b292bebf 新增预设评语功能及评审相关优化
- 新增预设评语表(PresetComment)及相关API
- 新增预设评语管理页面
- 优化评审作品弹框,支持预设评语选择
- 优化赛果发布列表页面
- 更新路由和菜单配置

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 14:46:25 +08:00
zhangxiaohua
2981449353 修复评审相关数据显示问题
- 修复作品详情弹框评审记录字段名(score->totalScore, comment->comments)
- 修复评审详情弹框评分字段名(score->totalScore)
- 修复赛果发布详情评委评分不显示问题(添加judgeScore计算)
- 修复赛事列表已递交数统计(添加status in条件和覆盖_count.works)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 14:44:27 +08:00
zhangxiaohua
c1f8ac072a 修复管理端作品详情3D模型预览失败问题
1. 添加 parsedFiles 计算属性正确解析 files 字段(可能是 JSON 字符串)
2. 修改 hasModelFile 和 modelFileUrl 使用解析后的数组
3. 修改跳转方式使用 sessionStorage + router.push(与学生端一致)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 15:54:25 +08:00
zhangxiaohua
9f22a20a2a 修复作品附件上传和显示功能
1. 后端 DTO 添加 attachments 字段
2. 后端 submit 方法使用事务创建作品和附件记录
3. 前端 SubmitWorkForm 添加 attachments 类型
4. 前端上传时将附件信息单独传递(不再合并到 files 中)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 15:43:10 +08:00
zhangxiaohua
1010c764cc 修复管理端团队成员列表不包含指导老师
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 15:33:51 +08:00
zhangxiaohua
f96b59e25e 修复我的队伍成员列表不包含指导老师
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 15:32:32 +08:00
zhangxiaohua
ac0c38c04a 修复团队赛事相关功能
1. 修复团队成员无法在"我参与的赛事"中看到团队赛事的问题
2. 修复教师作为指导老师无法看到团队赛事的问题
3. 修复上传作品/参赛作品/我的队伍按钮500错误(userId获取方式错误)
4. 修复管理端成员弹框队长名称和成员数显示问题
5. 新增getMyRegistration接口支持团队成员查询报名状态
6. 优化赛事卡片按钮布局

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 15:27:06 +08:00
zhangxiaohua
0cdc5d1ceb 修改样式 2026-01-19 17:08:25 +08:00
zhangxiaohua
61599117dc 修改并发限制逻辑 2026-01-19 16:33:27 +08:00
zhangxiaohua
7ec72d865a 修改样式 2026-01-19 16:09:22 +08:00
zhangxiaohua
daaed56dbe 修改样式 2026-01-19 16:08:55 +08:00
zhangxiaohua
7f8e28a4af 修改图生3D,支持多图上传 2026-01-19 14:10:43 +08:00
zhangxiaohua
a8b9f658a0 修改侧边栏样式 2026-01-19 11:29:37 +08:00
zhangxiaohua
a79b24b463 修改代码,部署测试 2026-01-18 17:58:38 +08:00
zhangxiaohua
e7819fc1c2 修改样式,删除无用的代码 2026-01-16 16:35:43 +08:00
zhangxiaohua
8411df8ad6 修改样式 2026-01-16 14:48:14 +08:00
zhangxiaohua
b002e3ca1c 修改样式 2026-01-16 14:18:32 +08:00
zhangxiaohua
ffd1d6bbe5 修改3D模型页面 2026-01-16 11:07:56 +08:00