Commit Graph

156 Commits

Author SHA1 Message Date
神码-方晓辉 d6e922cc2f feat: 服务监控接口(OSHI)、菜单删除SQL、前端监控页错误处理
- 新增 /monitor/server 接口:ServerController + ServerVo,OSHI 采集 CPU/内存/JVM/磁盘
- 根 pom 与 pangu-system 增加 oshi-core 依赖
- 前端服务监控页:请求失败时关闭 loading 并提示
- SQL:V1.0.6 应用子菜单、V1.0.7 隐藏系统菜单、V1.0.8 删除系统菜单、V1.0.9 删除租户按钮菜单
- 发布计划与 PROD SQL 变更检查文档、年级/区域等脚本与业务调整

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 10:17:21 +08:00
神码-方晓辉 a9bbb30f99 fix: 业务功能按钮权限统一(v-hasPermi) 2026-02-05 15:48:07 +08:00
神码-方晓辉 e04cf47bdf feat: 会员区域字段、管理后台区域编辑与列表展示;分公司账号密码重置脚本;业务按钮权限修复方案 2026-02-05 15:11:24 +08:00
神码-方晓辉 add00c9992 feat: 新增学校自动添加年级 + 修复区域层级查询 + 清理区域数据
1. 新增学校时根据学段自动添加对应年级
2. 修复选择省/市时无法显示学校的bug(支持区域层级查询)
3. 区域树默认展开湖北省,平行显示市级
4. 新增区域数据清理SQL脚本(仅保留湖北省)
2026-02-05 11:21:58 +08:00
神码-方晓辉 72cb6668f3 年级管理增加学段字段(小学/初中/高中/中专/大学) 2026-02-05 10:16:30 +08:00
神码-方晓辉 80dd406f8c feat: 新增OpenApi基础数据接口 + 学生完整数据接口 + UI文案优化
1. OpenApi新增接口:
   - /open/api/student/listFull: 学生列表完整数据(不脱敏)
   - /open/api/base/school/*: 学校查询接口(直接调用内部Service)
   - /open/api/base/grade/*: 年级查询接口
   - /open/api/base/class/*: 班级查询接口

2. 新增OpenApi专用VO:
   - OpenSchoolVo, OpenGradeVo, OpenClassVo

3. 数据库脚本:
   - V1.0.3__open_api_dict.sql: 接口字典数据

4. 前端文案优化:
   - 将"教育身份"统一改为"任教信息"
2026-02-05 09:55:04 +08:00
神码-方晓辉 1a0b75e437 docs: 同步需求与技术方案文档 2026-02-04 10:32:02 +08:00
神码-方晓辉 6027a8c5df refactor: 修改后端欢迎语为盘古后台管理系统 2026-02-03 22:36:52 +08:00
神码-方晓辉 1d30e82a2d fix: 修复H5添加学生数据权限和学校树节点ID冲突问题
1. H5添加/编辑学生时同步设置 dept_id
2. 学校树节点ID添加类型前缀防止冲突
3. 前端使用正确的ID字段进行查询
2026-02-03 22:23:38 +08:00
神码-方晓辉 998d9aee35 fix: 修复学生管理数据权限问题
使用带 @DataPermission 注解的查询方法
2026-02-03 22:11:54 +08:00
神码-方晓辉 730f27c55e fix: 修复数据权限和操作日志IP记录问题
1. 学校管理使用带数据权限的查询方法
2. 修复操作日志IP地址无法记录的问题(异步线程获取不到请求上下文)
2026-02-03 22:07:11 +08:00
神码-方晓辉 6f47adf86e feat: 数据权限功能实现 - 学校作为部门节点
1. 学校/年级/班级/学生表增加 dept_id 字段
2. 添加 @DataPermission 数据权限注解
3. 学校创建时自动创建对应部门
4. 学校编辑对话框增加上级部门选择
5. 修复用户管理部门列显示问题
2026-02-03 21:45:14 +08:00
神码-方晓辉 57b171503d refactor: 前端目录重命名 pangu-ui -> frontend
- 统一前端目录命名规范
- 更新相关文档引用
2026-02-03 20:56:15 +08:00
神码-方晓辉 ad434b8414 refactor: 作者信息统一改为 pangu
- 替换"湖北新华业务中台研发团队"为"pangu"
- 更新相关文档中的团队和规范名称
2026-02-03 20:50:11 +08:00
神码-方晓辉 c2a3997e89 refactor: 品牌名称 若依 -> 盘古
- 更新文档、注释、配置中的"若依"为"盘古"
- 涉及文件:规则文件、运维文档、代码注释、package.json等
2026-02-03 20:48:55 +08:00
神码-方晓辉 9128118cbf refactor: 后端目录重命名 ruoyi -> pangu
- ruoyi-admin -> pangu-admin
- ruoyi-common -> pangu-common (含所有子模块)
- ruoyi-extend -> pangu-extend (含所有子模块)
- ruoyi-modules -> pangu-modules (含所有子模块)
- 更新所有 pom.xml 中的 artifactId 和依赖引用
- 更新 build.sh 和相关文档
2026-02-03 20:47:45 +08:00
神码-方晓辉 086c0a0988 refactor: 前端目录重命名及配置优化
- frontend/ruoyi-ui 重命名为 frontend/pangu-ui
- 修改系统标题为"盘古用户认证中心"
- 开启验证码功能
- 移除登录页默认账号密码
2026-02-03 20:37:48 +08:00
神码-方晓辉 0c607378e9 chore: 统一 author 为 pangu 2026-02-03 20:26:45 +08:00
神码-方晓辉 6b56c831cb fix: 优化教育身份操作日志描述
日志描述改为:学校 / 年级 / 班级 / 学科
2026-02-03 20:18:22 +08:00
神码-方晓辉 14f42f6b69 feat: 新增会员操作日志功能
1. 新增 pg_member_log 表记录会员操作
2. 新增操作类型枚举 MemberOperType
3. 新增 PgMemberLogService 记录和查询日志
4. 在以下操作位置添加日志记录:
   - 用户登录
   - 修改密码
   - 修改用户信息
   - 新增/修改/删除教育身份
   - 切换教育身份
   - 新增/修改/解绑亲子关系
5. 新增 H5 查询操作日志 API
2026-02-03 20:10:04 +08:00
神码-方晓辉 5de0f3ed50 fix: 短信登录不再校验图形验证码
发送短信时已经验证过图形验证码,登录时无需再次验证。
避免用户输入两次图形验证码,提升体验。
2026-02-03 19:01:04 +08:00
神码-方晓辉 d543b868b1 docs: 添加H5前端同步变更记录(附录C)
- 注册流程简化
- 教育身份改为数组
- 基础数据前端缓存策略
2026-02-03 17:56:38 +08:00
神码-方晓辉 8ba5e3e174 perf: 学校管理页面区域树默认折叠
移除 default-expand-all,减少首次渲染节点数量
2026-02-03 17:43:29 +08:00
神码-方晓辉 d0d0f0ee6d perf: 所有基础数据下拉统一使用 Store 缓存
修改以下组件使用 baseDataStore:
- business/school/components/GradeDialog.vue (年级)
- business/school/components/ClassDialog.vue (班级)
- school/index.vue (区域树)
- school/components/GradeDialog.vue (年级)
- school/components/ClassDialog.vue (年级+班级)
- member/components/MemberDialog.vue (区域树)

登录后预加载数据,后续全部命中缓存
2026-02-03 17:40:59 +08:00
神码-方晓辉 e8489536d6 fix: 每次登录后强制刷新基础数据
fetchXxx(true) 传入 force=true,确保登录后拉取最新数据
2026-02-03 17:36:31 +08:00
神码-方晓辉 81b1d5327b perf: 其他页面使用 Store 缓存基础数据
- EducationDialog.vue: 区域树、学科列表使用 Store
- school/index.vue: 区域树使用 Store

所有基础数据调用统一使用 Store,命中缓存后秒加载
2026-02-03 17:25:10 +08:00
神码-方晓辉 4243f6581d perf: 登录后预加载基础数据,区域管理使用 Store 缓存
- permission.js: 登录后并行预加载年级/学科/区域/班级数据
- region/index.vue: 使用 Store 缓存,避免每次请求 1MB 数据
- 第二次进入页面秒开,无需重复请求
2026-02-03 17:23:27 +08:00
神码-方晓辉 24625133e3 perf: 优化区域管理页面性能
- 使用后端 /region/tree 接口,避免前端递归构建树
- 默认折叠树节点,减少 DOM 渲染
2026-02-03 17:17:28 +08:00
神码-方晓辉 124013703f feat: 基础数据前端缓存 - 使用 Pinia Store 实现
- 新建 baseData Store,缓存年级/学科/区域/班级数据
- 支持 localStorage 持久化,24小时过期
- 编辑/删除操作自动清除对应缓存
- 修改四个管理页面(grade/subject/region/class)使用 Store
2026-02-03 17:14:58 +08:00
神码-方晓辉 bf67282825 feat: 学生管理页面展示多会员绑定信息
- 列表页"归属用户"列:单人显示昵称/手机号,多人显示"N人绑定"并用tooltip展示详情
- 编辑弹窗:使用Tag组件展示所有绑定的会员信息
2026-02-03 17:04:07 +08:00
神码-方晓辉 df1f2932c4 feat: 学生多会员绑定重构 - 支持一个学生被多个会员绑定
主要变更:
1. 新建 pg_member_student 关联表,实现学生与会员的多对多关系
2. 移除 pg_student.member_id 字段
3. 后端服务层全部改用关联表查询和操作
4. H5 接口支持 relation 字段(父亲/母亲/其他)
5. 前端学生选择弹窗显示已绑定会员数量
6. 更新需求文档
2026-02-03 16:56:18 +08:00
神码-方晓辉 729f2c71f1 feat: 会员教育信息重构 - 支持多教育身份管理
主要变更:
1. 去掉身份类型字段,会员与教育信息改为一对多关系
2. 新增 pg_education 表及相关实体、服务
3. 管理后台支持添加、编辑、删除多个教育身份
4. 新增会员时支持一次性保存会员信息、教育身份、亲子关系
5. 修复学生选择弹窗学校年级班级不显示问题
6. 添加区域路径接口用于级联选择器回显
2026-02-03 16:35:57 +08:00
神码-方晓辉 acdade6725 feat: 添加微信登录接口和技术方案文档 2026-02-03 15:31:56 +08:00
神码-方晓辉 f0d8a6c571 feat: H5教育身份接口增加省市区信息返回
- 修改 H5EducationVo 添加省市区字段
- 修改 H5MemberServiceImpl 的 buildEducationVo 方法,从学校的regionId解析省市区信息
- 保存教育身份时自动从学校获取regionId保存到会员表
- 添加日志记录省市区信息便于调试
- 更新 pangu-project.mdc 文档,添加 build.sh 工具使用说明
- 优化管理后台会员和学生相关组件
2026-02-03 11:53:55 +08:00
神码-方晓辉 e35b4098e6 v1.0.1 2026-02-03 09:45:55 +08:00
神码-方晓辉 dab220d0a2 feat: 添加Swagger UI支持
- pom.xml: 添加springdoc-openapi-starter-webmvc-ui依赖
- application.yml: 添加swagger-ui路径排除配置
- application.yml: 添加H5模块到API分组
- vite.config.js: 添加Swagger代理配置
2026-02-03 09:25:37 +08:00
神码-方晓辉 dcadd41e2b fix: 修复H5登录Token校验问题,添加测试报告
问题修复:
- H5AuthServiceImpl: 登录时设置extra信息(tenantId,userId,userName,clientid)
- SecurityConfig: H5设备跳过clientId校验,避免NPE

测试文档:
- 新增 docs/03-测试文档/H5接口测试报告.md
- 覆盖基础数据、认证、会员模块共16个测试用例
- 测试手机号: 15889762069
- 真实短信发送测试通过
2026-02-02 22:11:15 +08:00
神码-方晓辉 1ae754e56c docs: 补充短信模板内容
- 登录模板: 【湖北新华教育服务平台】您正在申请登录,验证码为:${code}
- 注册模板: 【湖北新华教育服务平台】您正在申请注册,验证码为:${code}
2026-02-02 21:56:19 +08:00
神码-方晓辉 e98fe86124 feat: 配置阿里云短信服务参数
从192.168.71.56服务器nacos获取阿里云短信配置:
- AccessKey: LTAI5tQLorTxf9Fzzh93pfGN
- 签名: 湖北新华教育服务平台
- 登录模板: SMS_461020580
- 注册模板: SMS_473140005

更新文件:
- application-dev.yml: 写入阿里云AccessKey和签名
- application.yml: 配置短信模板ID
- 技术方案文档: 更新阿里云账号和模板信息
2026-02-02 21:54:05 +08:00
神码-方晓辉 e13c9a7de3 docs: 完善阿里云短信配置说明
配置文件更新:
- application-dev.yml: 优化阿里云短信配置,添加环境变量支持
- application.yml: 完善H5短信配置注释,分组显示

文档更新:
- 添加阿里云准备工作步骤
- 添加短信模板示例
- 添加环境变量配置说明(推荐生产环境使用)
2026-02-02 21:51:07 +08:00
神码-方晓辉 0b35da7f85 docs: 添加H5接口Swagger文档注解
Controller层:
- H5AuthController: 添加详细的接口说明、参数说明、返回值说明
- H5MemberController: 添加认证要求、操作说明
- H5BaseDataController: 添加数据获取流程说明

DTO/VO层:
- 所有字段添加@Schema注解,包含描述、示例值、枚举值等
- 标注必填/选填、数据格式要求

其他:
- 统一作者为pangu
2026-02-02 21:48:36 +08:00
神码-方晓辉 a47536315b docs: 更新H5接口文档,添加短信防刷配置说明 2026-02-02 21:44:46 +08:00
神码-方晓辉 5fe9d1117f feat: 增强H5短信接口防刷机制
新增配置类 H5SmsProperties,支持以下配置项:
- enabled: 是否启用短信发送(测试模式)
- code-length: 验证码长度
- code-expire-minutes: 验证码有效期
- send-interval-seconds: 同手机号发送间隔
- daily-limit-per-phone: 手机号每日上限
- minute-limit-per-ip: IP每分钟上限
- daily-limit-per-ip: IP每日上限
- blacklist-minutes: 黑名单封禁时长
- blacklist-trigger-count: 触发黑名单的失败次数
- sms-config-name: 短信配置名称
- login/register-template-id: 短信模板ID

防刷策略:
1. 图形验证码校验
2. 手机号黑名单检查
3. IP黑名单检查
4. 发送间隔限制
5. 手机号每日上限
6. IP每分钟上限
7. IP每日上限
8. 验证码连续失败自动封禁
2026-02-02 21:43:38 +08:00
神码-方晓辉 905e263ca8 feat: 新增H5会员管理接口模块
需求文档:
- 新增H5会员接口需求与技术方案文档

认证模块(/h5/auth):
- 图形验证码获取
- 阿里云短信验证码发送
- 密码登录
- 短信验证码登录
- 会员注册
- Token刷新
- 退出登录

会员模块(/h5/member):
- 获取会员信息
- 修改会员信息(昵称/性别/生日)
- 修改密码
- 教育身份管理(教师)
- 学生绑定管理(家长/教师均可)

基础数据模块(/h5/base):
- 区域树查询
- 学校列表查询
- 年级列表查询
- 班级列表查询
- 学科列表查询

安全配置:
- 放行H5公开接口(/h5/auth/**、/h5/base/**)
2026-02-02 21:39:12 +08:00
神码-方晓辉 e8c4f3f568 style: 学生弹窗归属用户改为只读红色标签
- 归属用户字段改为只读展示
- 展示格式:会员昵称(手机号)
- 红色字体显示
- 移除选择/清除按钮
2026-02-02 21:12:20 +08:00
神码-方晓辉 43ee2dbf87 refactor: 删除学生管理中的学科字段
前端:
- 列表页删除学科列
- 编辑弹窗删除学科下拉框

后端:
- PgStudent 实体删除 subjectId 字段
- StudentVo 删除 subjectId 和 subjectName 字段
- Service 层删除学科关联查询

需求文档:
- 删除学生数据项中的学科字段
- 删除表格列定义中的学科列

数据库需执行:ALTER TABLE pg_student DROP COLUMN subject_id;
2026-02-02 21:11:37 +08:00
神码-方晓辉 b5c2692aab feat: 学生导入重新选择文件时自动覆盖之前的记录
在 beforeUpload 中调用 clearFiles() 清空文件列表,
实现"选择即覆盖"效果,无需手动删除再重新选择

同步更新需求文档
2026-02-02 21:04:40 +08:00
神码-方晓辉 e1ea099a38 fix: 修复学生管理左侧树筛选条件未正确传递的问题
问题:点击年级/班级节点时,只传了当前节点ID,未带上父级条件
修复:
1. 参数名改为与后端一致(schoolGradeId、schoolClassId)
2. 点击年级节点时,同时传递 schoolId + schoolGradeId
3. 点击班级节点时,同时传递 schoolId + schoolGradeId + schoolClassId

同步更新需求文档
2026-02-02 21:00:57 +08:00
神码-方晓辉 904c7c9500 feat: 学生导入增加教师身份校验
当会员手机号对应的会员身份为"教师"时,校验规则:
1. 教师必须已设置学校信息,否则提示"未设置学校信息,无法绑定学生"
2. 教师所属区域必须与学生所属区域一致
3. 教师所属学校必须与学生所属学校一致
4. 教师所属年级必须与学生所属年级一致
5. 教师所属班级必须与学生所属班级一致
不一致则导入失败并返回具体原因

同步更新需求文档
2026-02-02 20:53:44 +08:00
神码-方晓辉 18b9a09348 fix: 会员列表昵称列自适应宽度填充表格 2026-02-02 20:43:24 +08:00