# 智能家庭数字记忆管理系统(服务端) **Repository Path**: FamilyMemoryAI/family-memory-server ## Basic Information - **Project Name**: 智能家庭数字记忆管理系统(服务端) - **Description**: 智能家庭数字记忆管理系统的后端服务,提供统一 API、用户与权限管理、家庭记忆数据管理、多媒体资源存储、AI 图像理解服务集成及物联网设备通信能力。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-20 - **Last Updated**: 2026-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Memory Platform 前后端分离的后台管理骨架,风格接近若依:RBAC、系统管理、系统工具(接口文档 / 代码生成 / 数据库导出 / 页面搭建)。 ## 技术栈 | 端 | 技术 | |----|------| | 后端 | Java 8、Spring Boot 2.7.18、MyBatis-Plus、Druid、Oracle、Redis、JWT(可配置密钥)、验证码/风控/IP 黑名单/OAuth、springdoc | | 前端 | Vue 3、Vite、TypeScript、Element Plus、Pinia、Vue Router | | 数据库 | Oracle / MySQL / PostgreSQL(脚本见 `sql/`);Redis 用于缓存与登录会话 | ## 模块结构 ``` memory-platform ├── memory-admin # 启动入口 + Controller ├── memory-system # 用户、角色、菜单、部门、字典、参数、登录/注册、页面搭建、库导出 ├── memory-framework # 异常、MP 分页、CORS、Swagger、Redis 缓存 ├── memory-security # JWT、Redis 会话、拦截器、XSS、限流、方法权限 ├── memory-common # Result / 异常 / 注解 / 工具 ├── memory-generator # 代码生成(库模块,非独立启动) ├── memory-core # 业务扩展预留 ├── memory-ui # 前端 └── sql/ ├── oracle.sql ├── mysql.sql ├── postgresql.sql └── README.md ``` 依赖关系:`admin → system / generator → framework → security → common`。 ## 功能一览 **系统管理** - 用户、角色、菜单、部门、岗位 - 字典类型 / 字典数据 - 参数配置 **系统监控** - 在线用户:Redis 会话列表,支持强退 - 定时任务:`SYS_JOB` / `SYS_JOB_LOG`(Spring cron,调用目标限 `*Task.method`) - 数据监控:Druid 控制台(`/druid/*`,开发账号见 `application-druid.yml`) - 服务监控:本机 JVM / CPU / 磁盘 - 缓存监控:Redis 信息与 `memory:` 前缀 key - 登录日志、操作日志(含地点 / 浏览器 / OS;表 `SYS_LOGIN_LOG` / `SYS_OPER_LOG`) **系统工具** | 菜单 | 说明 | |------|------| | 接口文档 | iframe 嵌入 springdoc Swagger UI | | 代码生成 | 读当前库表 → 配置字段/字典 → 预览 / 下载 zip | | 数据库导出 | 选表导出 DDL / INSERT 为 SQL 文件 | | 页面搭建 | 可视化画布,schema 存 `SYS_PAGE`,可被代码生成「自定义前端」引用 | 当前版本:**0.1.0**(变更见 [CHANGELOG.md](CHANGELOG.md),建议 Tag `v0.1.0`)。 新人上手见 [doc/快速开始.md](doc/快速开始.md);Docker 见 [doc/部署手册.md](doc/部署手册.md)。 ## 快速开始 ### 1. 数据库 1. 创建 Oracle 用户(示例与 `application-dev.yml` 一致):`MEMORY_PLATFORM` / `memory123` 2. 按库执行对应脚本(均会删旧表后重建,含注释与菜单种子;三库内容对齐,见 [`sql/README.md`](sql/README.md)): - Oracle:[`sql/oracle.sql`](sql/oracle/oracle.sql) - MySQL:[`sql/mysql.sql`](sql/mysql/mysql.sql) - PostgreSQL:[`sql/postgresql.sql`](sql/postgresql/postgresql.sql) 默认账号: | 用户名 | 密码 | |--------|------| | admin | 123456 | | user | 123456 | | guest | 123456 | ### 2. 后端 修改数据源:[`memory-admin/src/main/resources/application-dev.yml`](memory-admin/src/main/resources/application-dev.yml) ```bash # 在仓库根目录 mvn -pl memory-admin -am spring-boot:run ``` 默认端口:`8081` Swagger:`http://localhost:8081/swagger-ui.html` ### 3. 前端 ```bash cd memory-ui npm install npm run dev ``` 开发地址一般为 `http://localhost:5173`,接口基址见 [`memory-ui/.env.development`](memory-ui/.env.development)。 ## 代码生成说明 1. 打开 **系统工具 → 代码生成**,列表为当前连接库用户下的表 2. 勾选表后可「默认生成下载」,或进入单表配置(包名、字段、字典、前端模板) 3. 前端模板: - **默认 CRUD**:Domain / Mapper / Service / Controller + Vue 四件套 + API - **自定义**:后端同样生成,前端出带 `pageKey` 的草稿页(对接页面搭建) 4. 产物为 zip,**不写回工程目录**,按需拷贝 生成物路径约定(示例): ``` java/com/ansys/system/... vue/api/{module}/{business}.ts vue/views/{module}/{business}/index|add|edit|delete.vue ``` 业务名会去掉 `SYS_` 前缀再转驼峰(如 `SYS_USER_ROLE` → `userRole`),避免路径撞名。 ## 配置要点 | 项 | 位置 | |----|--------------------------------------------------------------------------------------| | 服务端口 / 激活环境 | `memory-admin/.../application.yml`(`server.port=8081`,`spring.profiles.active=dev`) | | 数据源 | `application-dev.yml` | | Redis | `application-dev.yml` 的 `spring.redis`(默认 `localhost:6379`) | | 安全参数 | `application.yml` → `memory.security`(Token 滑动 TTL、登录限流、防重复提交) | | 前端 API | `memory-ui/.env.development` → `VITE_API_BASE_URL` | | JWT / XSS / 限流 | `memory-security`:`AuthInterceptor` + `TokenStore` + `SecurityRequestFilter` + 防重复/登录限流 + `@RequiresPermission` AOP | ### 安全能力(非完整 Spring Security) - **双 Token**:Access(短)+ Refresh(长);`/auth/refresh` 旋转续期;前端 401 自动刷新 - **多设备会话**:`memory:session:{jti}` + 用户会话集合;在线用户可按会话 / 按用户强退 - **登录锁定**:账号失败 N 次锁定 M 分钟(Redis);IP 登录限流仍保留 - **数据权限**:`@DataPermission` + `DataPermissionHelper`(本部门 / 及以下 / 本人) - **密码策略**:长度 + 复杂度;最近 N 次密码不可复用 - **其它**:`@RateLimit` / `@ApiSign` / `@Sensitive` 脱敏 / `@OperationLog` / `@RepeatSubmit`;XSS;可选工作时间 ABAC - **会话 fail-closed**:Redis 不可用时拒绝登录与鉴权 ## 开发约定 - Controller 放在 `memory-admin`;领域与 Service 放在 `memory-system`(或对应业务模块) - 代码生成逻辑只放在 `memory-generator`,命名前缀 `Gen*` - 前端系统页:`views/system/**`;监控页:`views/monitor/**`;工具页:`views/tool/**` - 业务菜单路由由后端 `SYS_MENU` 的 path/component 动态注册(`component` 对应 `views/` 下文件,如 `system/user/index`)。生成配置、画布设计等隐藏页仍写在 `router/index.ts` - 字典前端统一用 `@/utils/dict` 的 `loadDict` / `loadDicts` ## 相关文档 - 文档目录:[doc/README.md](doc/README.md) - 操作手册:[doc/操作手册.md](doc/操作手册.md) - 部署手册:[doc/部署手册.md](doc/部署手册.md) - 开发手册:[doc/开发手册.md](doc/开发手册.md) - 前端说明:[memory-ui/README.md](memory-ui/README.md) - 英文简介:[README.en.md](README.en.md)