神码-方晓辉
|
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 |
神码-方晓辉
|
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 |
神码-方晓辉
|
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 |
神码-方晓辉
|
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 |
神码-方晓辉
|
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 |
神码-方晓辉
|
43ee2dbf87
|
refactor: 删除学生管理中的学科字段
前端:
- 列表页删除学科列
- 编辑弹窗删除学科下拉框
后端:
- PgStudent 实体删除 subjectId 字段
- StudentVo 删除 subjectId 和 subjectName 字段
- Service 层删除学科关联查询
需求文档:
- 删除学生数据项中的学科字段
- 删除表格列定义中的学科列
数据库需执行:ALTER TABLE pg_student DROP COLUMN subject_id;
|
2026-02-02 21:11:37 +08:00 |
神码-方晓辉
|
904c7c9500
|
feat: 学生导入增加教师身份校验
当会员手机号对应的会员身份为"教师"时,校验规则:
1. 教师必须已设置学校信息,否则提示"未设置学校信息,无法绑定学生"
2. 教师所属区域必须与学生所属区域一致
3. 教师所属学校必须与学生所属学校一致
4. 教师所属年级必须与学生所属年级一致
5. 教师所属班级必须与学生所属班级一致
不一致则导入失败并返回具体原因
同步更新需求文档
|
2026-02-02 20:53:44 +08:00 |
神码-方晓辉
|
3d70bd0356
|
fix: 会员管理编辑页绑定学生显示学校、年级、班级
修改 selectByMemberId 接口返回 StudentVo 而非 PgStudent,
包含学校名称、年级名称、班级名称等关联数据
|
2026-02-02 20:40:09 +08:00 |
神码-方晓辉
|
c18970ee98
|
fix: 修复学生导入时创建会员缺少member_code的问题
创建会员时自动生成会员编码(M+时间戳+4位随机数)
同时设置注册时间
|
2026-02-02 20:25:45 +08:00 |
神码-方晓辉
|
ea1524ea67
|
feat: 实现学生批量导入功能
1. 新增 POST /business/student/import 接口
2. 实现导入业务逻辑:
- 校验必填字段(姓名、学号、会员手机号、学校、年级、班级)
- 根据名称匹配学校、年级、班级
- 根据手机号查找或创建会员(不存在则自动创建家长账号)
- 检查学号唯一性
- 返回导入结果(成功数、失败数、失败明细)
|
2026-02-02 20:11:56 +08:00 |
神码-方晓辉
|
eb7ef037f0
|
fix: 学生导入模板出生年月改为出生日期(YYYY-MM-DD)
|
2026-02-02 20:06:43 +08:00 |
神码-方晓辉
|
ca433d6ab9
|
feat: 完善学生导入模板下载功能
1. 后端新增接口 /business/student/template
- 使用 ExcelUtil 导出模板
- 包含示例数据方便用户参考
2. 前端修复模板下载:
- 使用 fetch 下载文件
- 文字"用户手机号"改为"会员手机号"
3. 新增 StudentImportDto 导入数据对象
- 字段:姓名、学号、会员手机号、区域、学校、年级、班级、性别、出生年月
|
2026-02-02 20:02:41 +08:00 |
神码-方晓辉
|
6784e32e1e
|
fix: 修复学生管理模块问题
1. 后端修复:
- 添加 StudentVo 视图类,包含学校名、年级名、班级名、学科名、会员昵称等关联数据
- Service 返回 StudentVo,关联查询各表数据
2. 前端修复:
- StudentDialog 改为自获取 schoolTree 和 subjectList
- 修复字段名适配(studentId/studentName)
- 编辑时完整回显学校/年级/班级三级路径
- 添加 MemberSelectDialog 会员选择弹窗
3. ImportDialog 完善:
- 修复 token 获取方式适配 RuoYi 框架
- 完善上传进度显示
4. index.vue 修复:
- 表格列字段名适配后端返回数据
- 添加日期格式化函数
|
2026-02-02 19:57:14 +08:00 |
神码-方晓辉
|
a9f57646fa
|
fix: 添加学生管理学校树接口
前端调用 /business/student/schoolTree 接口获取学校树结构,
但后端缺失此接口导致路径匹配到 /{studentId} 引发类型转换错误。
|
2026-02-02 19:44:41 +08:00 |
神码-方晓辉
|
2baf792159
|
feat: 会员管理-添加学生绑定功能
1. 后端新增接口:
- GET /business/student/available - 查询可绑定的学生列表
- GET /business/student/byMember/{memberId} - 查询会员已绑定的学生
- GET /business/member/{memberId}/students - 获取会员已绑定的学生列表
- POST /business/member/{memberId}/bindStudents - 批量绑定学生到会员
- POST /business/member/unbindStudent/{studentId} - 解绑学生
- GET /business/school/grade/{schoolGradeId}/classes - 获取年级下的班级列表
2. 业务规则实现:
- 教师身份只能绑定同校学生(schoolId相同)
- 家长身份可绑定任意学生
- 一个学生只能归属一个会员
3. 前端功能:
- 新增StudentSelectDialog学生选择器组件
- 支持按姓名、学号搜索
- 支持多选绑定
- MemberDialog集成学生选择器
4. 修复问题:
- 修复会员编辑时学校信息(区域/年级/班级)回显问题
- 修复班级列表接口404问题
|
2026-02-02 19:41:24 +08:00 |
神码-方晓辉
|
9820899ef7
|
docs: 完善 build.sh 使用说明注释
|
2026-02-02 19:14:49 +08:00 |
神码-方晓辉
|
5497e47b25
|
feat: 添加快速编译脚本 build.sh
优化策略:
- 多线程编译(-T 1C 使用全部CPU核心)
- 增量编译(不clean,复用已编译的class)
- 模块化编译(-pl -am 仅编译指定模块及其依赖)
- 静默模式(-q 减少日志输出)
使用方式:
- ./build.sh -q 快速编译(4秒,仅检查语法)
- ./build.sh -p 增量打包(4秒)
- ./build.sh -f 全量编译
- ./build.sh -m xxx -r 编译模块并重启(27秒)
|
2026-02-02 19:14:07 +08:00 |
神码-方晓辉
|
c4b4bf410d
|
fix: 删除操作改为级联删除,有子级时给出提示
根据原型说明:删除时提示是否有子级,确认后级联删除
- 删除学校:提示有N个年级、N个班级,确认后级联删除
- 删除年级:提示有N个班级,确认后级联删除
- 前端改为 confirm 提示,后端支持级联删除
- 修复会员模块 BCrypt 依赖问题(改用 Hutool)
|
2026-02-02 19:11:30 +08:00 |
神码-方晓辉
|
5ef8420ace
|
fix: 学校管理列表树优化
1. 默认折叠:移除 default-expand-all
2. 修复折叠展开联动问题:row-key 改为 type_id 组合,保证唯一性
3. 删除提示优化:
- 有子级时显示具体数量(如"3个年级、5个班级")
- 有子级时弹出 alert 提示"请先删除子级",而不是直接删除
|
2026-02-02 19:04:17 +08:00 |
神码-方晓辉
|
ee33a26e57
|
fix: 学校列表创建人显示昵称而不是ID
注入 UserService,批量查询创建人昵称并映射到树形节点
|
2026-02-02 17:56:44 +08:00 |
神码-方晓辉
|
3cad9fa79a
|
fix: 修复新增年级/班级时Integer转Long类型错误
JSON解析时数值会被解析为Integer,直接强制转换为List<Long>会报错
改为逐个元素转换:id -> Long.valueOf(id.toString())
|
2026-02-02 17:51:06 +08:00 |
神码-方晓辉
|
f0f94e552d
|
fix: 完善学校管理删除逻辑 - 参照旧版本修复
根据旧版本代码修复删除逻辑:
- 删除学校前检查是否有年级,有则提示"请先删除年级"
- 删除年级前检查是否有班级,有则提示"请先删除班级"
- 树形数据添加 gradeId、classId 字段
- TODO: 学生管理模块完成后添加学生引用检查
|
2026-02-02 17:44:43 +08:00 |
神码-方晓辉
|
b42aab4a8f
|
feat: 重构学校管理模块 - 按需求文档实现树形展示
根据需求文档完全重构学校管理页面:
- 按区域树形展示学校、年级、班级结构
- 新增后端接口 /business/school/tree 返回树形数据
- 新增后端接口删除年级/班级
- 前端使用树形表格展示层级结构
- 弹窗标题按需求文档:编辑-学校、新增-年级、新增-班级
- 操作按钮:学校(编辑/新增年级/删除)、年级(新增班级/删除)、班级(删除)
- 删除时提示是否有子级
|
2026-02-02 17:41:22 +08:00 |
神码-方晓辉
|
bb14acd923
|
feat: 完善学校管理模块
- 后端:学校新增时自动生成学校编码(格式:SCH + 年份后两位 + 6位序号)
- 前端:列表页显示学校编码列
- 前端:编辑弹窗显示学校编码(只读)
- 前端:优化年级/班级选项数据格式转换
|
2026-02-02 17:31:27 +08:00 |
神码-方晓辉
|
50e291d2b4
|
fix: 完善学校管理模块
- 后端:学校列表查询时填充区域名称
- 前端:学校类型显示转换(数字转文字)
- 前端:学校类型选项值修正为数字
|
2026-02-02 17:27:00 +08:00 |
神码-方晓辉
|
31322a9ecc
|
fix: 修复角色管理菜单权限树加载问题
- 前端:修复菜单树和部门树数据路径(response.data.menus)
- 后端:角色菜单树只返回可见菜单(visible='0')
|
2026-02-02 17:20:01 +08:00 |
神码-方晓辉
|
7e327e2131
|
fix: 新增应用时自动生成编码和密钥
- 自动生成应用编码:YY + 6位序号
- 自动生成32位应用密钥
|
2026-02-02 17:14:24 +08:00 |
神码-方晓辉
|
ec2d69a09f
|
feat: 完善应用管理模块前后端
- 后端:添加重置密钥接口和API列表接口
- 后端:新增 IPgApiDictService 服务
- 前端:修复API路径(/api -> /business)
- 前端:修复字段名映射(contactName -> contactPerson)
- 前端:添加 SecretDialog 密钥弹窗组件
- 数据:初始化应用数据和API字典数据
|
2026-02-02 17:11:06 +08:00 |
神码-方晓辉
|
bd14bb36c4
|
feat: 完善学校管理模块(根据需求文档)
后端修改:
1. PgRegionController: 新增 /tree 接口用于获取区域树
2. PgRegion: 添加 children 字段支持树形结构
3. PgRegionService: 实现 selectTree 方法构建树形数据
4. PgSchoolController: 新增学校年级/班级管理接口
- GET /{schoolId}/grades: 获取学校的年级列表
- POST /grade: 为学校批量添加年级
- POST /class: 为年级批量添加班级
5. PgSchoolService: 实现年级班级挂载逻辑
6. PgSchoolGrade: 添加 gradeName 字段用于显示
前端修改:
1. school.js API: 修正路径 /api → /business
2. index.vue: 修正删除接口的 ID 字段(id → schoolId)
3. SchoolDialog.vue: 修正表单字段名
4. GradeDialog.vue: 修正 API 调用和数据格式
5. ClassDialog.vue: 重写支持选择学校已挂载的年级
@author pangu
|
2026-02-02 16:32:33 +08:00 |
神码-方晓辉
|
82a0cb7f07
|
feat: 根据需求文档初始化系统管理数据
根据需求文档 3.1/3.2 角色层级和权限矩阵初始化:
1. 角色:
- 超级管理员(管理全部数据)
- 分公司用户(管理所属区域)
- 学校用户(管理本校数据)
2. 部门(组织架构):
- 湖北新华书店
- 武汉分公司
- 武汉市第一中学
- 武汉市第三中学
- 武汉市水果湖小学
- 黄冈分公司
- 黄冈中学
- 红安县第一中学
3. 示例用户:
- admin(超级管理员)
- wuhan(分公司用户,密码:admin123)
- whyz(学校用户,密码:admin123)
@author pangu
|
2026-02-02 16:25:24 +08:00 |
神码-方晓辉
|
fa722945c4
|
fix: 根据需求文档完善系统管理和系统监控菜单
系统管理(需求文档 4.6):
- 显示:用户管理、角色管理、菜单管理、部门管理、字典管理、参数设置
- 隐藏:岗位管理、通知公告、文件管理、客户端管理
系统监控(需求文档 4.7):
- 在线用户
- 登录日志(从日志管理移入)
- 操作日志(从日志管理移入)
- 服务监控(新增)
- 缓存监控
- 隐藏:Admin监控、任务调度中心
@author pangu
|
2026-02-02 16:22:32 +08:00 |
神码-方晓辉
|
2a2321a403
|
fix: 按需求文档8.2节调整菜单排序
根据需求规格说明书8.2节页面清单顺序:
1. 学校管理 (order_num=1)
2. 会员管理 (order_num=2)
3. 学生管理 (order_num=3)
4. 应用管理 (order_num=4)
5. 基础数据 (order_num=5)
6. 系统管理 (order_num=6)
7. 系统监控 (order_num=7)
隐藏菜单:系统工具、租户管理、PLUS官网、测试菜单
@author pangu
|
2026-02-02 16:15:14 +08:00 |