Commit Graph

139 Commits

Author SHA1 Message Date
神码-方晓辉 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
神码-方晓辉 10469f6517 fix: 修复编辑学校时所属区域不回显问题
原 getRegionIdPath 函数假设区域ID按层级编码,实际不是
改为递归遍历区域树查找目标节点,返回从根到目标的完整路径
2026-02-02 17:54:24 +08:00
神码-方晓辉 3cad9fa79a fix: 修复新增年级/班级时Integer转Long类型错误
JSON解析时数值会被解析为Integer,直接强制转换为List<Long>会报错
改为逐个元素转换:id -> Long.valueOf(id.toString())
2026-02-02 17:51:06 +08:00
神码-方晓辉 40fe55b42a feat: 新增年级/班级时已添加的选项禁用显示
- 新增年级弹窗:已挂载的年级显示为灰色不可选(已添加)
- 新增班级弹窗:已挂载的班级显示为灰色不可选(已添加)
- 从树形数据中获取已有年级/班级的ID列表传递给弹窗
2026-02-02 17:48:59 +08:00
神码-方晓辉 20d9fd24d1 feat: 学校管理列表"学校类型"列改为"类型"列
- 用于区分树形层级节点类型:学校/年级/班级
- 使用不同颜色的 el-tag 标签区分显示
- 同步更新需求文档中的字段说明
2026-02-02 17:45:44 +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
神码-方晓辉 5ae8cf726c fix: 修复基础数据页面API路径和字段名
1. 修复所有页面的删除API路径:/api/xxx → /business/xxx
2. 修复年级管理页面字段名:
   - name → gradeName
   - code → gradeCode
   - sort → orderNum
   - id → gradeId
3. 修复班级管理页面字段名:className, classCode, classId
4. 修复学科管理页面字段名:subjectName, subjectCode, subjectId
5. 修复区域管理页面字段名:regionName, regionCode, regionId

@author pangu
2026-02-02 16:18:27 +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
神码-方晓辉 127d396995 fix: 按需求文档调整菜单布局
根据需求规格说明书调整菜单结构:
- 学校管理:一级菜单(order_num=4)
- 会员管理:一级菜单(order_num=5)
- 学生管理:一级菜单(order_num=6)
- 应用管理:一级菜单(order_num=7)
- 基础数据:一级目录(order_num=8)
  - 年级管理
  - 班级管理
  - 学科管理
  - 区域管理

隐藏不需要的菜单:租户管理、PLUS官网、测试菜单

@author pangu
2026-02-02 16:07:52 +08:00
神码-方晓辉 0e75c175b5 feat: 从 git 历史迁移业务管理前端页面
从 commit 0b7d625 恢复并迁移以下页面:

基础数据管理:
- 年级管理 (business/base/grade)
- 班级管理 (business/base/class)
- 学科管理 (business/base/subject)
- 区域管理 (business/base/region)

业务功能:
- 学校管理 (business/school) + 3个组件
- 会员管理 (business/member) + 1个组件
- 学生管理 (business/student) + 2个组件
- 应用管理 (business/application) + 1个组件

API 路径修改:/api/xxx → /business/xxx

@author pangu
2026-02-02 16:04:47 +08:00
神码-方晓辉 1939180830 docs: 强化作者规范说明,明确必须使用 pangu 2026-02-02 16:00:07 +08:00
神码-方晓辉 38eba2812a fix: 修正 @author 为 pangu
按照项目规范,所有代码的作者统一使用 pangu
2026-02-02 15:59:52 +08:00
神码-方晓辉 aa5d5b125e feat: 创建 pangu-business 业务模块并完成迁移
主要变更:
1. 创建 pangu-business 模块,适配 RuoYi-Vue-Plus 5.5.3 架构
2. 迁移业务实体类:PgGrade, PgClass, PgSubject, PgRegion, PgSchool, PgMember, PgStudent, PgApplication 等
3. 创建对应的 Mapper 接口(继承 BaseMapperPlus)
4. 创建 Service 层(接口 + 实现)
5. 创建 Controller(使用 R<T> 响应格式、Sa-Token 权限控制)
6. 添加业务表 SQL 脚本(适配租户字段)
7. 添加业务菜单数据

技术适配:
- Entity 继承 BaseEntity,添加 tenantId 字段
- Mapper 继承 BaseMapperPlus<T, V>
- Controller 使用 @SaCheckPermission 权限注解
- API 路径:/business/grade, /business/class, /business/school 等
2026-02-02 15:59:10 +08:00
神码-方晓辉 91a62b00d4 fix: 修复前端路由接口路径适配 RuoYi-Vue-Plus
- 更新 getRouters 接口路径: /getRouters -> /system/menu/getRouters
- 适配 RuoYi-Vue-Plus 5.5.3 的 API 规范
2026-02-02 15:43:04 +08:00
神码-方晓辉 d99646c00d refactor: 升级后端至 RuoYi-Vue-Plus 5.5.3
主要变更:
- Spring Boot 2.7.18 → 3.5.9
- 认证框架: Spring Security → Sa-Token
- 缓存: 新增 Redisson 支持
- 数据访问: JdbcTemplate → MyBatis-Plus
- 新增工作流引擎 Warm-Flow
- 新增 API 文档 SpringDoc
- 新增多租户、OSS、定时任务等功能

前端适配:
- 更新 API 路径 (/auth/login, /auth/code 等)
- 添加 clientid header
- 适配新的响应数据结构

注意:数据库已使用 RuoYi-Vue-Plus 的 SQL 重建
2026-02-02 15:36:13 +08:00
神码-方晓辉 8591cebee0 feat: 新增参数设置和通知公告功能
- 新增 SysConfigController 参数配置管理
- 新增 SysNoticeController 通知公告管理
- 系统管理模块功能完整
2026-02-02 15:09:31 +08:00
神码-方晓辉 c577c74b3e fix: 修复字典管理中文乱码问题
- 配置 HTTP 响应编码为 UTF-8
- 修复数据库中字典类型 remark 字段乱码数据
2026-02-02 14:53:20 +08:00
神码-方晓辉 7753ddbfbd fix: 优化部门管理页面表格布局
- 部门名称列使用 min-width 自动扩展填充
- 调整排序列和操作列宽度
- 消除右侧空白区域
2026-02-02 14:49:34 +08:00
神码-方晓辉 a5c380c90f fix: 修复系统管理模块字段显示问题
- 修复菜单管理:返回树形结构,权限标识和组件路径正常显示
- 修复部门管理:字段名转换为驼峰格式
- 修复岗位管理:字段名转换为驼峰格式
- 修复字典管理:字典类型和字典数据字段名转换
- 修复角色管理:字段名转换为驼峰格式
- 更新项目规则:添加前后端命名规范文档
2026-02-02 14:46:23 +08:00
神码-方晓辉 b85f332e44 fix: 修复用户管理列表字段显示问题
将后端返回的下划线命名字段转换为驼峰格式:
- user_id → userId
- user_name → userName
- nick_name → nickName
- dept_name → dept.deptName

用户管理功能正常
2026-02-02 14:38:39 +08:00
神码-方晓辉 4e43376ef9 refactor: 项目目录重构,登录和验证码功能正常
1. 重构目录结构
   - 后端代码移至 backend/ 目录
   - 前端代码移至 frontend/ 目录
   - 删除根目录旧模块(pangu-admin, pangu-common 等)

2. 统一 API 规范(若依做法)
   - 前端 /dev-api 代理去掉前缀
   - 后端 Controller 无 /api 前缀
   - 添加 API 接口规范到项目规则

3. 功能验证
   - 登录功能正常
   - 验证码生成和校验正常
   - 系统管理模块正常
2026-02-02 14:32:22 +08:00
神码-方晓辉 5790865dba fix: 禁用 Spring Security 默认 logout 处理
- 在 SecurityConfig 中添加 .logout().disable()
- 解决自定义 /logout 接口被 Security 拦截导致 302 重定向问题
- 现在可以正常调用 LoginController.logout() 返回 JSON
2026-02-02 09:22:55 +08:00
神码-方晓辉 4e45d2fe11 fix: 修复 List 类型歧义导致的编译错误
- 移除 import java.awt.* 通配符
- 明确导入 Color, Font, Graphics2D
- 解决与 java.util.List 的冲突
2026-02-02 09:20:55 +08:00
神码-方晓辉 aaf3b0e88f fix: 启用验证码并生成图片
- captchaEnabled 改为 true
- 使用 Java AWT 生成验证码图片(4位随机字符)
- 登录时校验验证码并从内存 Map 移除
- 验证码图片为 PNG 格式 Base64 编码
2026-02-02 09:13:59 +08:00
神码-方晓辉 91676531b8 fix: 测试使用远程 MySQL,取消跳过
- 测试 application.yml 改为连接远程 pguser-db
- 移除 surefire skipTests,移除 H2 依赖,增加 mysql-connector-j(test)
2026-02-02 07:52:00 +08:00
神码-方晓辉 e57dd9df2f fix: 完成开放API与删除引用检查,修复测试配置
- 开放API: 学生/学校/会员列表接入真实 Service,去除占位返回空列表
- 年级删除前检查是否被学校引用 (SchoolGradeMapper.countByGradeId)
- 区域删除前检查是否被学校引用 (SchoolMapper.countByRegionId)
- 测试: 新增 TestApplication、H2 与 test application.yml,指定 @SpringBootTest(classes)
- 测试: pangu-system 集成测试依赖 MySQL,surefire 默认 skipTests;完整测试请从 pangu-admin 连接 MySQL 执行
2026-02-02 07:39:52 +08:00
神码-方晓辉 ab084a1913 fix: 修复循环依赖问题
- StudentServiceImpl改用@Lazy注入IMemberService
- 解决MemberService和StudentService循环依赖
2026-02-01 23:55:47 +08:00
神码-方晓辉 5ff4e34667 feat: 完成所有模块测试和集成,模块完成度100%
- 完善数据权限控制(DataScopeAspect)
- 添加DTO params字段支持动态SQL过滤
- 更新SchoolMapper/MemberMapper/StudentMapper XML支持数据权限
- 添加学生服务集成测试(会员绑定、解绑等)
- 添加会员服务测试(绑定学生、自动创建等)
- 新增模块集成测试类(13个跨模块测试场景)
- 更新模块完成度统计文档
- 更新最终交付报告
2026-02-01 23:54:58 +08:00
神码-方晓辉 ebd49f8a71 fix: 修复学校管理区域路径显示错误
- 修正江岸区学校 region_id (112→113)
- 修正江汉区学校 region_id (113→114)
- 修正硚口区学校 region_id (114→117)
- 新增硚口区区域数据 (region_id=117)
- 更新测试文档和交付报告
2026-02-01 23:20:45 +08:00
神码-方晓辉 0b7d625543 feat: 实现完整的系统管理功能
后端实现:
1. SysUserController - 用户管理(列表、新增/编辑/删除、角色分配、密码重置)
2. SysRoleController - 角色管理(列表、权限分配、菜单权限配置)
3. SysMenuController - 菜单管理(树形列表、新增/编辑/删除)
4. SysDeptController - 部门管理(树形结构、新增/编辑/删除)
5. SysPostController - 岗位管理(列表、新增/编辑/删除)
6. SysDictController - 字典管理(字典类型和字典数据CRUD)
7. SysLogController - 日志管理(操作日志和登录日志查询)

前端实现:
- 完成所有系统管理页面的功能实现
- 用户管理:部门树筛选、用户表格、表单编辑
- 角色管理:菜单权限树形选择
- 菜单管理:树形展示和编辑
- 部门管理:树形结构管理
- 岗位管理:标准表格管理
- 字典管理:类型+数据两级管理
- 日志管理:Tab切换操作日志和登录日志

测试验证:
- 后端API全部通过curl测试
- 前端用户管理页面在浏览器中验证通过
2026-02-01 22:23:31 +08:00
神码-方晓辉 e0fe5014f2 feat: 配置组织权限和角色管理
根据需求规格说明书3.2角色权限矩阵配置:

1. 创建三级角色体系:
   - 超级管理员(admin): 全部数据权限,118个菜单
   - 分公司用户(branch): 本部门及以下数据权限,23个菜单
   - 学校用户(school): 仅本人数据权限,7个菜单

2. 配置部门/组织结构:
   - 湖北新华书店(总部)
   - 武汉/黄冈分公司
   - 各分公司下属学校

3. 创建示例用户:
   - wuhan_admin/huanggang_admin: 分公司管理员
   - school_wuchang: 学校管理员

4. 新增初始化脚本: sql/init_roles_permissions.sql
2026-02-01 13:56:44 +08:00
神码-方晓辉 b67187f5ab feat: 修复登录页面验证码功能
后端修复:
- 启用验证码功能(captchaEnabled: true)
- 实现验证码图片生成(Java Graphics2D绘制)
- 实现验证码存储和验证逻辑(内存ConcurrentHashMap)
- 验证码包含干扰线、噪点、随机颜色和角度

前端修复:
- 正确获取登录响应中的token(res.data.token)
- 登录失败时显示错误消息并刷新验证码
2026-02-01 13:54:36 +08:00
神码-方晓辉 20a7ebfd0b fix: 修复页面内容被侧边栏遮挡的问题
- 给main-container添加margin-left与固定定位的侧边栏宽度对应
- 侧边栏展开时margin-left: 200px,折叠时margin-left: 64px
- 添加过渡动画使切换更平滑
- 新增UI自动化测试报告v3.0
2026-02-01 13:51:06 +08:00
神码-方晓辉 9a9be3247d docs: 添加RuoYi系统菜单恢复指南
## 文档内容

### 问题描述
用户重新登录后缺少RuoYi系统管理菜单(系统管理、系统监控、系统工具)

### 根本原因
1. 前端菜单硬编码,只包含盘古业务菜单
2. pangu项目缺少RuoYi菜单管理服务
3. 数据库权限正常(admin有118个菜单权限)

### 解决方案
在前端直接添加RuoYi系统菜单配置(Commit 885f578)

### 文档包含
-  详细问题分析
-  完整修改步骤
-  验证方法(重启服务、清缓存)
-  常见问题排查(4个Q&A)
-  后续规划(短中长期)
-  技术架构对比(硬编码 vs 动态菜单)
-  相关文件清单

### 关键操作指引
1. 重启前后端服务(必须!)
2. 清除浏览器缓存
3. 验证27个菜单显示
4. 测试占位页面

---
作者:pangu
2026-02-01 13:35:04 +08:00
神码-方晓辉 885f578082 feat: 添加RuoYi系统管理菜单和占位页面
## 新增功能

### 1. 前端菜单扩展(Sidebar.vue)

**新增菜单模块**:
-  系统管理(9个子菜单)
  - 用户管理、角色管理、菜单管理
  - 部门管理、岗位管理、字典管理
  - 参数设置、通知公告、日志管理

-  系统监控(6个子菜单)
  - 在线用户、定时任务、数据监控
  - 服务监控、缓存监控、缓存列表

-  系统工具(3个子菜单)
  - 表单构建、代码生成、系统接口

**图标导入**:
```javascript
import { Monitor, Operation, Tools } from '@element-plus/icons-vue'
```

### 2. 路由配置(router/index.js)

**新增27个路由**:
- 系统管理路由:9个(/system/*)
- 系统监控路由:6个(/monitor/*)
- 系统工具路由:3个(/tool/*)
- 盘古业务路由:9个(已有)
- **总计**:27个路由 

### 3. 占位页面(18个)

**创建目录结构**:
```
pangu-ui/src/views/
├── system/          # 系统管理(9个页面)
│   ├── user/
│   ├── role/
│   ├── menu/
│   ├── dept/
│   ├── post/
│   ├── dict/
│   ├── config/
│   ├── notice/
│   └── log/
├── monitor/         # 系统监控(6个页面)
│   ├── online/
│   ├── job/
│   ├── druid/
│   ├── server/
│   ├── cache/
│   └── cacheList/
└── tool/            # 系统工具(3个页面)
    ├── build/
    ├── gen/
    └── swagger/
```

**占位页面特性**:
- 统一的UI风格(el-result组件)
- 功能说明列表
- 返回首页按钮
- 响应式布局

### 4. 批量生成工具

**新增脚本**:`scripts/create_placeholder_pages.sh`

**功能**:
- 批量生成Vue占位页面
- 自动配置页面标题和功能说明
- 支持跳过已存在的文件
- 生成统计报告

**使用方法**:
```bash
cd /path/to/pangu-user-platform
./scripts/create_placeholder_pages.sh
```

## 问题修复

### 问题描述
用户重新登录后,左侧菜单只显示盘古业务菜单(首页、学校管理、会员管理、学生管理、应用管理、基础数据),缺少RuoYi系统管理菜单(系统管理、系统监控、系统工具)。

### 根本原因
1. **前端菜单硬编码**:Sidebar.vue中菜单是硬编码的,没有从后端动态获取
2. **缺少后端菜单服务**:pangu项目没有包含RuoYi的菜单管理功能
3. **数据库权限正常**:admin角色已有118个菜单权限(验证通过)

### 解决方案
在前端直接添加RuoYi系统菜单的硬编码配置,快速恢复菜单显示。

## 验证方法

### 1. 刷新前端页面
```bash
# 前端会自动热更新,或手动刷新浏览器
Cmd + Shift + R(Mac)强制刷新
```

### 2. 检查菜单显示
左侧菜单应显示:
-  首页
-  学校管理
-  会员管理
-  学生管理
-  应用管理
-  基础数据(4个子菜单)
- 🆕 系统管理(9个子菜单)
- 🆕 系统监控(6个子菜单)
- 🆕 系统工具(3个子菜单)

### 3. 点击菜单测试
点击任意RuoYi系统菜单,应显示"功能开发中"占位页面,而不是404错误。

## 后续规划

### 短期(1-2周)
- 实现用户管理功能
- 实现角色管理功能
- 实现菜单管理功能

### 中期(1个月)
- 完成系统管理所有功能
- 实现部分系统监控功能

### 长期(2-3个月)
- 完成所有RuoYi系统功能
- 实现动态菜单加载
- 集成后端菜单管理服务

## 文件变更

### 修改文件(2个)
- pangu-ui/src/layout/components/Sidebar.vue - 添加RuoYi菜单
- pangu-ui/src/router/index.js - 添加27个路由

### 新增文件(19个)
- scripts/create_placeholder_pages.sh - 批量生成工具
- pangu-ui/src/views/system/* - 9个占位页面
- pangu-ui/src/views/monitor/* - 6个占位页面
- pangu-ui/src/views/tool/* - 3个占位页面

---
作者:pangu
2026-02-01 13:31:58 +08:00
神码-方晓辉 c6a51a7993 chore: 统一所有文件作者为pangu
## 修改范围

### 受影响文件(9个)

#### 1. Java文件(1个)
- pangu-system/src/main/java/com/pangu/web/controller/system/SysLoginController.java
  - @author 湖北新华业务中台研发团队 → @author pangu

#### 2. SQL脚本(5个)
- sql/fix_admin_permissions.sh - 角色权限修复脚本
- sql/fix_charset.sh - 字符集修复脚本
- sql/import_menu.sh - 菜单导入脚本
- sql/fix_ruoyi_charset.sql - RuoYi乱码修复SQL
- sql/sys_menu_complete.sql - 完整菜单数据SQL

#### 3. SQL数据文件(3个)
- sql/pangu_menu.sql - 盘古菜单数据
- sql/pangu_base_data.sql - 基础数据
- sql/pangu_school.sql - 学校数据

### 修改内容

所有文件中的作者信息统一为:
- 作者:湖北新华业务中台研发团队 → 作者:pangu
- @author 湖北新华业务中台研发团队 → @author pangu

### 未修改的文件

其他文件中的作者字段已经是 `pangu` 或未设置作者,无需修改:
- Java文件(80+):已经是 @author pangu 
- Vue文件(30+):无作者注释或已是正确格式 
- JS文件(20+):无作者注释或已是正确格式 
- Markdown文档:无需修改 

### 工具脚本

新增批量修改工具:`scripts/change_author_to_pangu.sh`

**功能**:
- 自动扫描Java、Vue、JS、SQL、Markdown文件
- 批量替换作者为pangu
- 生成详细修改日志
- 支持多种作者格式(@author、作者:、Author:)

**使用方法**:
```bash
cd /path/to/pangu-user-platform
./scripts/change_author_to_pangu.sh
```

### 统计信息

-  扫描文件:210个
-  修改文件:9个
-  跳过文件:201个(已是pangu或无作者)

---
作者:pangu
2026-02-01 13:27:32 +08:00
神码-方晓辉 99657d804b fix: 修复RuoYi系统表中文乱码问题
## 问题描述
用户反馈:RuoYi原SQL导入后,多个系统表中的中文内容显示为乱码

## 乱码表统计

### 受影响的表
1. **sys_role** - 角色表
   - role_name: 超级管ç†å'˜ → 超级管理员 
   - remark: 普通è§'色 → 普通角色 

2. **sys_dept** - 部门表
   - dept_name: è‹¥ä¾ç§'技 → 若依科技 
   - leader: è‹¥ä¾ → 若依 

3. **sys_user** - 用户表
   - nick_name: 乱码 → 管理员/若依 

4. **sys_post** - 岗位表
   - post_name: 乱码 → 董事长/项目经理等 

5. **sys_dict_type** - 字典类型表
   - dict_name: 乱码 → 用户性别/菜单状态等 

6. **sys_dict_data** - 字典数据表
   - dict_label: 乱码 → 男/女/正常/停用等 

7. **sys_config** - 配置表
   - config_name: 乱码 → 主框架页配置等 

## 问题原因

### 字符集转换错误
原RuoYi SQL文件在导入时,UTF-8编码的中文被错误地按照Latin1解码,导致:
- UTF-8字节序列被拆分成多个Latin1字符
- 显示为类似"超级管ç†å'˜"的乱码

### 受影响数据范围
-  系统管理相关表:角色、部门、用户、岗位
-  字典管理表:字典类型、字典数据
-  系统配置表:参数配置
-  菜单表:正常(已正确导入)

## 解决方案

### 创建修复SQL文件
**新增**:`sql/fix_ruoyi_charset.sql`

**修复内容**:
```sql
-- 1. 角色表(2条记录)
UPDATE sys_role SET role_name = '超级管理员' WHERE role_id = 1;
UPDATE sys_role SET role_name = '普通角色' WHERE role_id = 2;

-- 2. 部门表(10条记录)
UPDATE sys_dept SET dept_name = '若依科技' WHERE dept_id = 100;
UPDATE sys_dept SET dept_name = '深圳总公司' WHERE dept_id = 101;
...

-- 3. 用户表(2条记录)
UPDATE sys_user SET nick_name = '管理员' WHERE user_id = 1;
UPDATE sys_user SET nick_name = '若依' WHERE user_id = 2;

-- 4. 岗位表(4条记录)
UPDATE sys_post SET post_name = '董事长' WHERE post_id = 1;
...

-- 5. 字典类型表(10条记录)
UPDATE sys_dict_type SET dict_name = '用户性别' WHERE dict_type = 'sys_user_sex';
...

-- 6. 字典数据表(29条记录)
UPDATE sys_dict_data SET dict_label = '男' WHERE dict_code = 1;
UPDATE sys_dict_data SET dict_label = '女' WHERE dict_code = 2;
...

-- 7. 配置表(6条记录)
UPDATE sys_config SET config_name = '主框架页-默认皮肤样式名称' WHERE config_id = 1;
...
```

**使用方法**:
```bash
cd sql
mysql -h8.148.25.55 -P3306 -uroot -p --default-character-set=utf8mb4 pguser-db < fix_ruoyi_charset.sql
```

## 修复结果

### 执行统计
-  角色表:2条记录修复
-  部门表:10条记录修复
-  用户表:2条记录修复
-  岗位表:4条记录修复
-  字典类型表:10条记录修复
-  字典数据表:29条记录修复
-  配置表:6条记录修复
- **合计**:63条记录修复 

### 验证方法
```sql
-- 角色表验证
SELECT role_id, role_name FROM sys_role;
-- 预期:超级管理员、普通角色

-- 部门表验证
SELECT dept_id, dept_name FROM sys_dept;
-- 预期:若依科技、深圳总公司、研发部门等

-- 字典表验证
SELECT dict_name FROM sys_dict_type;
-- 预期:用户性别、菜单状态、系统开关等
```

## 预防措施

### 1. 导入SQL时指定字符集
```bash
mysql --default-character-set=utf8mb4 -h... < file.sql
```

### 2. 检查SQL文件编码
```bash
file -I file.sql
# 确保输出:charset=utf-8
```

### 3. 使用修复后的完整SQL
今后建议使用:
- `sql/sys_menu_complete.sql` - 完整菜单数据(已修复字符集)
- `sql/fix_ruoyi_charset.sql` - RuoYi系统表乱码修复

## 相关文件
- sql/fix_ruoyi_charset.sql - RuoYi乱码修复SQL(新增)
- sql/fix_charset.sh - 字符集检查修复工具
- sql/import_menu.sh - 菜单导入脚本(已修复字符集)

---
作者:湖北新华业务中台研发团队
2026-02-01 13:25:14 +08:00