first commit

This commit is contained in:
dev
2026-02-22 12:12:02 +08:00
commit b236048a24
1467 changed files with 160403 additions and 0 deletions
@@ -0,0 +1,935 @@
# 会员模块结构说明
## 模块概述
`ruoyi-member` 模块是系统会员中心模块,负责 App 端用户管理、认证授权、设备管理、消息推送等核心功能。
- **包名**: `org.dromara.member`
- **状态**: ✅ 核心功能已实现
## 已完成工作
### 1. 模块结构
- ✅ 创建了完整的模块目录结构
- ✅ 创建了 `pom.xml` 配置文件
- ✅ 配置了模块依赖关系
### 2. 配置类
- ✅ 创建了 JWT 过滤器配置 (`AppJwtFilter`)
- ✅ 创建了 JWT Web 配置 (`AppJwtWebConfig`)
- ✅ 配置了组件扫描和过滤器注册
### 3. 数据库
- ✅ 创建了所有业务表的实体类和 Mapper
- ✅ 实现了数据库表的 CRUD 操作
- ✅ 配置了逻辑删除和字段自动填充
### 4. 核心功能
- ✅ 用户管理(注册、登录、信息管理)
- ✅ 角色管理(角色CRUD、用户角色关联)
- ✅ 设备管理(设备绑定、推送令牌管理)
- ✅ 文件管理(文件上传、下载、管理)
- ✅ 消息管理(消息推送、通知管理)
- ✅ 操作日志(日志记录、查询、统计)
- ✅ 登录日志(登录日志记录、查询)
- ✅ 版本管理(App版本管理、更新检查)
- ✅ 社交认证(第三方登录、绑定)
- ✅ JWT认证(令牌生成、刷新、验证)
### 5. 异常处理
- ✅ 创建了统一的异常处理类 (`AppExceptionHandler`)
- ✅ 定义了业务异常类(`DeviceException`, `FileException`, `VersionException`
### 6. API接口
- ✅ 实现了管理端接口(用户、角色、配置管理)
- ✅ 实现了移动端接口(用户、角色、设备、文件、消息、日志、版本管理)
- ✅ 实现了认证接口(JWT登录、注册、刷新)
## 核心功能模块
### 1. 用户管理 (AppUser)
- **职责**: 用户注册、登录、信息管理、密码管理
- **状态**: ✅ 核心功能已实现
- **数据库表**: `app_user`, `app_user_role`
### 2. 角色管理 (AppRole)
- **职责**: 角色管理、用户角色关联
- **状态**: ✅ 核心功能已实现
- **数据库表**: `app_role`, `app_user_role`
### 3. 设备管理 (AppDevice)
- **职责**: 用户设备绑定、推送令牌管理、设备状态管理
- **状态**: ✅ 核心功能已实现
- **数据库表**: `app_device`
### 4. 文件管理 (AppFile)
- **职责**: 文件上传、下载、管理(头像、文档、图片等)
- **状态**: ✅ 核心功能已实现
- **数据库表**: `app_file`
### 5. 消息管理 (AppMessage)
- **职责**: 消息推送、通知管理、用户消息关联
- **状态**: ✅ 核心功能已实现
- **数据库表**: `app_message`, `app_user_message`
### 6. 操作日志 (AppOperLog)
- **职责**: 用户操作日志记录、查询、统计分析
- **状态**: ✅ 核心功能已实现
- **数据库表**: `app_oper_log`
### 7. 登录日志 (AppLoginLog)
- **职责**: 用户登录日志记录、查询
- **状态**: ✅ 核心功能已实现
- **数据库表**: `app_login_log`
### 8. 版本管理 (AppVersion)
- **职责**: App 版本管理、更新检查、强制更新
- **状态**: ✅ 核心功能已实现
- **数据库表**: `app_version`
### 9. 社交认证 (AppSocialAuth)
- **职责**: 第三方登录(微信、QQ、微博等)
- **状态**: ✅ 核心功能已实现
- **数据库表**: `app_social_auth`
### 10. JWT认证 (JwtUtil)
- **职责**: JWT 令牌生成、刷新、验证
- **状态**: ✅ 核心功能已实现
- **配置文件**: `AppJwtFilter`, `AppJwtWebConfig`
## 数据库表结构说明
### 1. 用户表 (app_user)
- **功能**: 存储 App 端用户基本信息
- **关键字段**: `user_id`, `user_name`, `nick_name`, `phone`, `email`, `password`, `status`, `avatar`, `sex`, `login_ip`, `login_date`, `register_time`
- **索引**: `user_name` (唯一), `phone`, `email`
- **状态说明**:
- `status`: 0-正常, 1-停用
- `sex`: 0-男, 1-女, 2-未知
- `del_flag`: 0-存在, 1-删除
### 2. 角色表 (app_role)
- **功能**: 存储 App 端角色信息
- **关键字段**: `role_id`, `role_name`, `role_key`, `role_sort`, `status`
- **索引**: `role_key` (唯一), `status`
- **状态说明**:
- `status`: 0-正常, 1-停用
- `del_flag`: 0-存在, 1-删除
### 3. 用户角色关联表 (app_user_role)
- **功能**: 存储用户和角色的关联关系
- **关键字段**: `user_id`, `role_id`
- **索引**: `user_id`, `role_id`, `uk_user_role` (唯一索引)
- **说明**: 多对多关系,一个用户可以有多个角色,一个角色可以分配给多个用户
### 4. 设备表 (app_device)
- **功能**: 存储用户绑定的设备信息
- **关键字段**: `device_id`, `user_id`, `device_type`, `device_name`, `device_model`, `device_brand`, `os_version`, `app_version`, `push_token`, `is_active`, `last_active_time`
- **索引**: `user_id`, `device_type`, `push_token`
- **状态说明**:
- `device_type`: ios, android, h5
- `is_active`: 0-否, 1-是
- `del_flag`: 0-存在, 2-删除
### 5. 文件表 (app_file)
- **功能**: 存储用户上传的文件信息
- **关键字段**: `file_id`, `user_id`, `file_name`, `original_name`, `file_path`, `file_url`, `file_size`, `file_type`, `file_suffix`, `file_category`, `storage_service`, `status`, `download_count`, `is_public`, `file_md5`
- **索引**: `user_id`, `file_category`, `file_md5`, `status`
- **状态说明**:
- `file_category`: 1-头像, 2-文档, 3-图片, 4-视频, 5-音频, 6-其他
- `status`: 0-正常, 1-删除
- `is_public`: 0-私有, 1-公开
- `del_flag`: 0-存在, 2-删除
### 6. 消息表 (app_message)
- **功能**: 存储系统消息和通知
- **关键字段**: `message_id`, `title`, `content`, `message_type`, `target_type`, `target_ids`, `send_time`, `status`
- **索引**: `message_type`, `target_type`, `status`, `send_time`
- **状态说明**:
- `message_type`: system-系统消息, notice-通知, activity-活动
- `target_type`: all-全部用户, user-指定用户, role-指定角色
- `status`: 0-待发送, 1-已发送, 2-发送失败
- `del_flag`: 0-存在, 2-删除
### 7. 用户消息关联表 (app_user_message)
- **功能**: 存储用户消息的读取记录
- **关键字段**: `id`, `user_id`, `message_id`, `is_read`, `read_time`
- **索引**: `user_id`, `message_id`, `is_read`
- **状态说明**:
- `is_read`: 0-未读, 1-已读
- `del_flag`: 0-存在, 2-删除
### 8. 操作日志表 (app_oper_log)
- **功能**: 存储用户操作日志
- **关键字段**: `oper_id`, `title`, `business_type`, `method`, `request_method`, `oper_name`, `oper_url`, `oper_ip`, `oper_location`, `oper_param`, `json_result`, `status`, `error_msg`, `oper_time`, `cost_time`
- **索引**: `oper_name`, `status`, `oper_time`, `business_type`
- **状态说明**:
- `business_type`: 0-其它, 1-新增, 2-修改, 3-删除
- `status`: 0-正常, 1-异常
### 9. 登录日志表 (app_login_log)
- **功能**: 存储用户登录日志
- **关键字段**: `info_id`, `user_name`, `status`, `ipaddr`, `login_location`, `browser`, `os`, `msg`, `login_time`
- **索引**: `user_name`, `status`, `login_time`, `ipaddr`
- **状态说明**:
- `status`: 0-成功, 1-失败
### 10. 版本表 (app_version)
- **功能**: 存储 App 版本信息
- **关键字段**: `version_id`, `version_code`, `version_name`, `update_content`, `download_url`, `is_force`, `platform`
- **索引**: `platform`, `version_code`
- **状态说明**:
- `platform`: android, ios
- `is_force`: 0-否, 1-是
- `del_flag`: 0-存在, 2-删除
### 11. 社交认证表 (app_social_auth)
- **功能**: 存储第三方登录授权信息
- **关键字段**: `id`, `user_id`, `platform`, `platform_uid`, `open_id`, `union_id`, `access_token`, `expire_in`, `refresh_token`, `scope`
- **索引**: `user_id`, `platform`, `platform_uid`, `open_id`, `union_id`
- **状态说明**:
- `platform`: wechat_mp-微信小程序, wechat_open-微信开放平台, qq-QQ, weibo-微博
- `del_flag`: 0-存在, 2-删除
## 功能清单
### 1. 用户管理
#### 已实现功能 ✅
##### 用户基础功能
- ✅ 用户注册
- 账号注册(支持用户名、手机号、邮箱注册)
- 账号唯一性校验
- 手机号唯一性校验
- 邮箱唯一性校验
- 注册时自动分配默认角色
- ✅ 用户登录
- 账号密码登录
- 手机号验证码登录 ✅(在 ruoyi-server 模块实现)
- 邮箱验证码登录 ✅(在 ruoyi-server 模块实现)
- 验证码发送(短信/邮箱)✅(在 ruoyi-server 模块实现)
- JWT 令牌生成
- 登录日志记录
- ✅ 用户信息管理
- 用户列表查询(分页、条件筛选)
- 用户详情查询
- 用户新增/修改/删除
- 用户状态管理(启用/停用)
- 用户信息导出
- ✅ 用户资料管理
- 用户资料查询
- 用户资料修改
- 头像管理(关联文件表)
- ✅ 密码管理
- 修改密码(需验证旧密码)
- 重置密码(管理员操作)
- 密码加密(BCrypt
- ✅ 第三方账号绑定
- 第三方账号绑定/解绑 ✅(在 ruoyi-server 模块实现)
- 查询绑定列表 ✅
#### 待实现功能 ⏳
- [ ] 忘记密码(通过手机号/邮箱验证码找回密码)
- [ ] 独立的手机号/邮箱绑定功能(当前可通过更新用户资料方式修改)
- [ ] 用户等级体系
- 用户等级定义
- 用户等级升级规则
- 用户积分/经验值管理
- [ ] 用户标签
- 用户标签管理
- 用户标签关联
- 标签筛选用户
### 2. 角色管理
#### 已实现功能 ✅
- ✅ 角色CRUD操作
- 角色列表查询(分页、条件筛选)
- 角色详情查询
- 角色新增/修改/删除
- 角色导出功能
- ✅ 角色状态管理
- 启用/禁用角色
- ✅ 用户角色关联
- 查询用户已分配角色
- 查询用户未分配角色
- 分配角色给用户
- 取消用户角色关联
- 批量分配/取消角色
#### 待实现功能 ⏳
- [ ] 角色权限管理
- 角色权限配置
- 权限点管理
- 权限验证(需集成权限框架)
- [ ] 角色数据权限
- 数据权限范围配置
- 数据权限过滤
### 3. 设备管理
#### 已实现功能 ✅
- ✅ 设备绑定
- 设备信息绑定
- 设备信息更新
- ✅ 设备查询
- 设备列表查询
- 设备详情查询
- 我的设备列表查询
- 活跃设备查询
- ✅ 设备状态管理
- 设备活跃状态更新
- 推送令牌管理
- 设备心跳检测
- ✅ 设备解绑
- 设备解绑功能
#### 待实现功能 ⏳
- [ ] 设备推送管理
- 消息推送(需集成推送服务)
- 推送记录查询
- 推送统计
- [ ] 设备安全
- 设备指纹识别
- 异常设备检测
- 设备黑名单管理
### 4. 文件管理
#### 已实现功能 ✅
- ✅ 文件上传
- 单文件上传
- 批量文件上传
- 头像上传
- ✅ 文件查询
- 文件列表查询(分页)
- 文件详情查询
- 按分类查询文件
- 公开文件查询
- ✅ 文件下载
- 文件下载
- 下载次数统计
- ✅ 文件管理
- 文件信息修改
- 文件状态管理
- 文件公开/私有设置
- 文件删除
- ✅ 文件校验
- 文件MD5校验(秒传功能)
- 文件统计
#### 待实现功能 ⏳
- [ ] 文件存储优化
- 文件存储服务商集成(OSS、COS等)
- 文件CDN加速
- 文件压缩处理
- [ ] 文件预览
- 图片预览
- 文档预览(PDF、Office等)
- 视频播放
- [ ] 文件分享
- 文件分享链接生成
- 分享链接访问控制
- 分享统计
### 5. 消息管理
#### 已实现功能 ✅
- ✅ 消息管理
- 消息列表查询(分页)
- 消息详情查询
- 消息新增/修改/删除
- 消息导出
- ✅ 用户消息
- 我的消息列表查询
- 未读消息数量查询
- 消息标记已读
- 批量标记已读
- 全部标记已读
- ✅ 消息推送
- 系统消息发送
- 个人消息发送
- 消息推送(需集成推送服务)
- 消息广播
#### 待实现功能 ⏳
- [ ] 消息推送集成
- 推送服务集成(极光推送、个推等)
- 推送消息发送
- 推送结果回调
- 推送统计
- [ ] 消息模板
- 消息模板管理
- 模板变量替换
- [ ] 消息分类
- 消息分类管理
- 消息分类筛选
- [ ] 消息设置
- 用户消息推送设置
- 消息免打扰时段
- 消息接收方式设置
### 6. 操作日志
#### 已实现功能 ✅
- ✅ 日志记录
- 操作日志记录
- 批量操作日志记录
- ✅ 日志查询
- 日志列表查询(分页、条件筛选)
- 我的操作日志查询
- 日志详情查询
- 日志导出
- ✅ 日志统计
- 操作日志统计
- 行为分析
- 热门操作统计
- 错误操作统计
- ✅ 日志清理
- 日志清理
- 按时间清理日志
#### 待实现功能 ⏳
- [ ] 日志分析
- 操作趋势分析
- 用户行为分析
- 异常操作分析
- [ ] 日志告警
- 异常操作告警
- 告警规则配置
### 7. 登录日志
#### 已实现功能 ✅
- ✅ 登录日志记录
- 登录成功/失败日志记录
- 登录IP、地点、浏览器等信息记录
- ✅ 登录日志查询
- 登录日志列表查询(分页、条件筛选)
- 登录日志详情查询
- 登录日志导出
#### 待实现功能 ⏳
- [ ] 登录安全
- 异常登录检测
- 异地登录提醒
- 登录IP白名单/黑名单
- [ ] 登录统计
- 登录统计报表
- 登录趋势分析
- 登录设备分析
### 8. 版本管理
#### 已实现功能 ✅
- ✅ 版本管理
- 版本列表查询(分页)
- 版本详情查询
- 版本新增/修改/删除
- 版本导出
- ✅ 版本检查
- 检查更新
- 获取最新版本
- 版本历史查询
- 强制更新检查
- 更新信息查询
- 版本对比
- ✅ 版本统计
- 版本下载记录
- 版本安装记录
#### 待实现功能 ⏳
- [ ] 版本发布流程
- 版本发布审核
- 版本发布通知
- [ ] 版本回退
- 版本回退功能
- 回退记录
### 9. 社交认证
#### 已实现功能 ✅
- ✅ 第三方登录
- 微信小程序登录
- 微信开放平台登录
- QQ登录
- 微博登录
- ✅ 授权管理
- 授权信息存储
- 授权信息查询
- 授权绑定/解绑 ✅(在 ruoyi-server 模块实现)
#### 待实现功能 ⏳
- [ ] 更多第三方登录
- 支付宝登录
- 抖音登录
- 苹果登录(Apple ID
- [ ] 授权管理增强
- 授权过期处理
- 授权刷新
- 授权撤销
### 10. JWT认证
#### 已实现功能 ✅
- ✅ JWT令牌生成
- Access Token生成
- Refresh Token生成
- ✅ JWT令牌验证
- Token验证过滤器
- Token有效性校验
- ✅ JWT令牌刷新
- Token刷新接口
- ✅ 用户登录/登出
- 登录接口(生成Token
- 登出接口(Token失效)
- ✅ 验证码
- 图形验证码生成
#### 待实现功能 ⏳
- [ ] Token安全增强
- Token黑名单(Redis存储)
- Token刷新策略优化
- Token过期时间配置
- [ ] 多端登录管理
- 多设备登录控制
- 登录设备列表查询
- 强制下线功能
## API接口详细说明
### 管理端接口
#### 用户管理 (`/admin/member/user`)
- `GET /admin/member/user/list` - 查询用户列表(分页)
- `GET /admin/member/user/{userId}` - 获取用户详情
- `POST /admin/member/user` - 新增用户
- `PUT /admin/member/user` - 修改用户
- `DELETE /admin/member/user/{userIds}` - 删除用户
- `POST /admin/member/user/export` - 导出用户列表
- `GET /admin/member/user/profile` - 获取当前用户资料
- `PUT /admin/member/user/profile` - 修改当前用户资料
- `PUT /admin/member/user/resetPwd` - 重置用户密码
- `PUT /admin/member/user/changeStatus` - 修改用户状态
- `GET /admin/member/user/authRole/{userId}` - 查询用户角色
- `GET /admin/member/user/deptTree` - 查询部门树(预留)
#### 角色管理 (`/admin/member/role`)
- `GET /admin/member/role/list` - 查询角色列表(分页)
- `GET /admin/member/role/{roleId}` - 获取角色详情
- `POST /admin/member/role` - 新增角色
- `PUT /admin/member/role` - 修改角色
- `DELETE /admin/member/role/{roleIds}` - 删除角色
- `POST /admin/member/role/export` - 导出角色列表
- `GET /admin/member/role/optionselect` - 查询角色选项列表
- `GET /admin/member/role/authUser/allocatedList` - 查询已分配用户角色列表
- `GET /admin/member/role/authUser/unallocatedList` - 查询未分配用户角色列表
- `PUT /admin/member/role/authUser/cancelAll` - 取消授权用户所有角色
- `PUT /admin/member/role/authUser/selectAll` - 批量选择授权用户角色
#### 配置管理 (`/admin/member/config`)
- `GET /admin/member/config/list` - 查询配置列表
- `GET /admin/member/config/{configId}` - 获取配置详情
- `POST /admin/member/config` - 新增配置
- `PUT /admin/member/config` - 修改配置
- `DELETE /admin/member/config/{configIds}` - 删除配置
- `POST /admin/member/config/export` - 导出配置列表
- `DELETE /admin/member/config/refreshCache` - 刷新配置缓存
- `GET /admin/member/config/configKey/{configKey}` - 根据配置键查询配置值
- `GET /admin/member/config/systemInfo` - 获取系统信息
- `GET /admin/member/config/statistics` - 获取统计数据
### 移动端接口
#### 用户管理 (`/app/member/user`)
- `GET /app/member/user/list` - 查询用户列表
- `GET /app/member/user/{userId}` - 获取用户详情
- `POST /app/member/user` - 新增用户
- `PUT /app/member/user` - 修改用户
- `DELETE /app/member/user/{userIds}` - 删除用户
- `POST /app/member/user/export` - 导出用户列表
- `PUT /app/member/user/resetPwd` - 重置密码
- `PUT /app/member/user/changeStatus` - 修改状态
- `GET /app/member/user/profile/{userId}` - 获取用户资料
- `GET /app/member/user/getInfo` - 获取当前用户信息
- `GET /app/member/user/profile` - 获取当前用户资料
- `PUT /app/member/user/profile` - 修改用户资料
- `PUT /app/member/user/profile/updatePwd` - 修改密码
#### 角色管理 (`/app/member/role`)
- `GET /app/member/role/list` - 查询角色列表
- `GET /app/member/role/{roleId}` - 获取角色详情
- `POST /app/member/role` - 新增角色
- `PUT /app/member/role` - 修改角色
- `DELETE /app/member/role/{roleIds}` - 删除角色
- `POST /app/member/role/export` - 导出角色列表
- `GET /app/member/role/optionselect` - 查询角色选项列表
- `GET /app/member/role/authUser/allocatedList` - 查询已分配用户角色列表
- `GET /app/member/role/authUser/unallocatedList` - 查询未分配用户角色列表
- `PUT /app/member/role/authUser/cancel` - 取消授权用户角色
- `PUT /app/member/role/authUser/cancelAll` - 取消授权用户所有角色
- `PUT /app/member/role/authUser/selectAll` - 批量选择授权用户角色
#### 设备管理 (`/app/member/device`)
- `GET /app/member/device/list` - 查询设备列表
- `GET /app/member/device/{deviceId}` - 获取设备详情
- `POST /app/member/device/bind` - 绑定设备
- `PUT /app/member/device` - 修改设备信息
- `DELETE /app/member/device/{deviceId}` - 解绑设备
- `GET /app/member/device/my` - 查询我的设备列表
- `GET /app/member/device/active` - 查询活跃设备列表
- `PUT /app/member/device/{deviceId}/status` - 更新设备状态
- `PUT /app/member/device/{deviceId}/push-token` - 更新推送令牌
- `POST /app/member/device/{deviceId}/heartbeat` - 设备心跳
- `GET /app/member/device/by-push-token` - 根据推送令牌查询设备
#### 文件管理 (`/app/member/file`)
- `GET /app/member/file/list` - 查询文件列表
- `GET /app/member/file/{fileId}` - 获取文件详情
- `POST /app/member/file` - 新增文件记录
- `PUT /app/member/file` - 修改文件信息
- `DELETE /app/member/file/{fileIds}` - 删除文件
- `POST /app/member/file/upload` - 上传文件
- `POST /app/member/file/upload/avatar` - 上传头像
- `POST /app/member/file/upload/batch` - 批量上传文件
- `GET /app/member/file/category/{fileCategory}` - 按分类查询文件
- `GET /app/member/file/download/{fileId}` - 下载文件
- `PUT /app/member/file/status/{fileId}` - 更新文件状态
- `PUT /app/member/file/public/{fileId}` - 更新文件公开状态
- `GET /app/member/file/statistics` - 获取文件统计
- `GET /app/member/file/check/{fileMd5}` - 检查文件是否存在
- `GET /app/member/file/public/category/{fileCategory}` - 查询公开文件
#### 消息管理 (`/app/member/message`)
- `GET /app/member/message/list` - 查询消息列表
- `GET /app/member/message/myMessages` - 查询我的消息列表
- `GET /app/member/message/unreadCount` - 查询未读消息数量
- `GET /app/member/message/{messageId}` - 获取消息详情
- `POST /app/member/message` - 新增消息
- `PUT /app/member/message` - 修改消息
- `DELETE /app/member/message/{messageIds}` - 删除消息
- `POST /app/member/message/export` - 导出消息列表
- `PUT /app/member/message/markRead/{messageId}` - 标记消息已读
- `PUT /app/member/message/markReadBatch` - 批量标记消息已读
- `PUT /app/member/message/markAllRead` - 全部标记已读
- `POST /app/member/message/sendSystem` - 发送系统消息
- `POST /app/member/message/sendPersonal` - 发送个人消息
- `POST /app/member/message/push` - 推送消息
- `POST /app/member/message/broadcast` - 广播消息
#### 操作日志 (`/app/member/operlog`)
- `GET /app/member/operlog/list` - 查询操作日志列表
- `GET /app/member/operlog/my` - 查询我的操作日志
- `GET /app/member/operlog/{operId}` - 获取操作日志详情
- `POST /app/member/operlog` - 新增操作日志
- `PUT /app/member/operlog` - 修改操作日志
- `DELETE /app/member/operlog/{operIds}` - 删除操作日志
- `POST /app/member/operlog/export` - 导出操作日志列表
- `DELETE /app/member/operlog/clean` - 清理操作日志
- `DELETE /app/member/operlog/cleanByTime` - 按时间清理操作日志
- `GET /app/member/operlog/statistics` - 获取操作日志统计
- `GET /app/member/operlog/behavior` - 获取行为分析
- `GET /app/member/operlog/popular` - 获取热门操作
- `GET /app/member/operlog/errors` - 获取错误操作
- `POST /app/member/operlog/record` - 记录操作
- `POST /app/member/operlog/batchRecord` - 批量记录操作
#### 版本管理 (`/app/member/version`)
- `GET /app/member/version/list` - 查询版本列表
- `GET /app/member/version/{versionId}` - 获取版本详情
- `GET /app/member/version/checkUpdate` - 检查更新
- `GET /app/member/version/latest` - 获取最新版本
- `GET /app/member/version/history` - 获取版本历史
- `GET /app/member/version/checkForceUpdate` - 检查强制更新
- `GET /app/member/version/updateInfo` - 获取更新信息
- `GET /app/member/version/compare` - 版本对比
- `POST /app/member/version/download/{versionId}` - 记录下载
- `POST /app/member/version/install/{versionId}` - 记录安装
### 认证接口
#### JWT认证 (`/app/jwt`)
- `GET /app/jwt/captcha` - 获取验证码
- `POST /app/jwt/register` - 用户注册
- `POST /app/jwt/login` - 用户登录
- `POST /app/jwt/refresh` - 刷新Token
- `POST /app/jwt/logout` - 用户登出
#### 第三方账号绑定 (`/app/auth`) - 在 ruoyi-server 模块
- `POST /app/auth/bind/social` - 绑定第三方账号
- `POST /app/auth/unbind/social` - 解绑第三方账号
- `GET /app/auth/social/list` - 获取用户绑定的第三方账号列表
- `GET /app/auth/binding/{source}` - 获取第三方登录跳转URL
- `POST /app/auth/social/binding` - 社交账号绑定回调
## 技术栈与开发规范
### 技术栈
- **框架**: Spring Boot 3.x
- **ORM**: MyBatis-Plus
- **数据库**: MySQL 8.0+
- **认证**: Sa-Token + JWT
- **API文档**: Swagger/OpenAPI 3.0
- **构建工具**: Maven
- **安全**: Spring Security Crypto (BCrypt)
### 开发规范
#### 包结构规范
- `controller` - 控制器层(分为 `admin``app` 两个子包)
- `domain` - 实体类(包含 `bo` 业务对象和 `vo` 视图对象子包)
- `mapper` - MyBatis Mapper 接口
- `service` - 服务接口(实现类放在 `impl` 子包)
- `config` - 配置类(JWT过滤器、Web配置等)
- `exception` - 异常处理类
- `utils` - 工具类(JWT工具等)
#### 代码规范
- 统一使用 Lombok 简化代码
- 统一异常处理,使用 `ServiceException` 抛出业务异常
- 统一返回格式,使用 `R<T>` 封装返回结果
- 统一分页查询,使用 `PageQuery``TableDataInfo<T>`
- 统一日志记录,使用 `@Log` 注解记录操作日志
- 统一权限控制,管理端接口使用 `@SaCheckPermission` 注解
#### 数据库设计规范
- 表名使用 `app_` 前缀
- 字段命名使用下划线命名法(snake_case)
- 必须包含 `create_by`, `create_time`, `update_by`, `update_time` 字段
- 删除标记使用逻辑删除(`del_flag` 字段)
- 状态字段统一使用 `status`0表示启用/正常,1表示禁用/异常
#### API设计规范
- RESTful 风格设计
- 管理端接口路径:`/admin/member/{module}/{resource}`
- 移动端接口路径:`/app/member/{module}/{resource}`
- 使用 HTTP 标准方法:GET(查询)、POST(新增)、PUT(修改)、DELETE(删除)
- 统一使用 JSON 格式进行数据交互
- 使用 Swagger 注解完善接口文档
## 模块依赖关系
```
ruoyi-member (会员中心模块)
├── 依赖: ruoyi-common-* (通用工具模块)
│ ├── ruoyi-common-core (核心工具)
│ ├── ruoyi-common-doc (API文档)
│ ├── ruoyi-common-log (日志)
│ ├── ruoyi-common-mybatis (MyBatis)
│ ├── ruoyi-common-security (安全)
│ ├── ruoyi-common-web (Web)
│ ├── ruoyi-common-excel (Excel)
│ ├── ruoyi-common-translation (翻译)
│ ├── ruoyi-common-social (社交登录)
│ ├── ruoyi-common-satoken (权限认证)
│ └── ruoyi-common-oss (对象存储)
├── 依赖: sa-token-spring-boot3-starter (Sa-Token)
├── 依赖: sa-token-jwt (JWT支持)
└── 依赖: spring-security-crypto (密码加密)
```
## 模块集成说明
### 与 ruoyi-server 模块的集成
- **登录功能集成**: 手机号登录、邮箱登录功能在 `ruoyi-server` 模块实现
- `AppSmsAuthStrategy` - 手机号登录策略
- `AppEmailAuthStrategy` - 邮箱登录策略
- `CaptchaController` - 验证码发送接口
- **第三方账号绑定集成**: 第三方账号绑定/解绑功能在 `ruoyi-server` 模块实现
- `AppAuthController` - 提供绑定/解绑接口
- **用户服务集成**: `ruoyi-server` 模块通过依赖 `ruoyi-member` 模块使用用户服务
### 与其他模块的集成
- **文件存储**: 依赖 `ruoyi-common-oss` 模块,支持对象存储服务集成(OSS、COS等)
- **社交登录**: 依赖 `ruoyi-common-social` 模块,支持第三方登录(微信、QQ、微博等)
- **权限认证**: 依赖 `ruoyi-common-satoken` 模块,使用 Sa-Token 进行权限管理
## 下一步工作
### 功能完善
1. **用户管理增强**
- [x] 手机号/邮箱登录功能 ✅(已在 ruoyi-server 模块实现)
- [x] 第三方账号绑定/解绑功能 ✅(已在 ruoyi-server 模块实现)
- [ ] 忘记密码功能(通过手机号/邮箱验证码找回密码)
- [ ] 独立的手机号/邮箱绑定功能(当前可通过更新用户资料方式修改)
- [ ] 用户等级体系
- [ ] 用户标签管理
2. **角色权限系统**
- [ ] 权限点管理
- [ ] 角色权限配置
- [ ] 数据权限管理
3. **消息推送集成**
- [ ] 集成推送服务(极光推送、个推等)
- [ ] 消息推送功能完善
- [ ] 推送统计功能
4. **文件管理增强**
- [ ] 文件存储服务集成(OSS、COS等)
- [ ] 文件预览功能
- [ ] 文件分享功能
5. **安全增强**
- [ ] Token黑名单机制
- [ ] 多端登录管理
- [ ] 异常登录检测
- [ ] 登录IP白名单/黑名单
6. **日志分析**
- [ ] 操作日志分析功能
- [ ] 登录日志分析功能
- [ ] 日志告警功能
### 性能优化
1. **缓存优化**
- [ ] 用户信息缓存(Redis
- [ ] 角色权限缓存
- [ ] 配置信息缓存
2. **数据库优化**
- [ ] 索引优化
- [ ] 查询优化
- [ ] 分表策略(日志表)
### 测试验证
1. **单元测试**
- [ ] Service层单元测试
- [ ] Controller层单元测试
2. **集成测试**
- [ ] API接口测试
- [ ] 业务流程测试
## 开发指南
### 新增功能开发步骤
1. **数据库设计**
- 设计表结构(遵循数据库设计规范)
- 确保字段命名规范,包含必要的索引
- 添加必要的状态字段和逻辑删除字段
2. **创建实体类**
-`domain` 包下创建实体类
- 创建对应的 `Bo`(业务对象)和 `Vo`(视图对象)
- 使用 Lombok 简化代码
3. **创建 Mapper**
-`mapper` 包下创建 Mapper 接口
- 继承 `BaseMapper<T>` 获得基础 CRUD 功能
- 如需复杂查询,在 `resources/mapper/member` 下创建 XML 文件
4. **创建 Service**
-`service` 包下创建 Service 接口
-`service/impl` 包下创建 Service 实现类
- 实现业务逻辑,使用事务注解保证数据一致性
5. **创建 Controller**
- 管理端接口:在 `controller/admin` 包下创建
- 移动端接口:在 `controller/app` 包下创建
- 添加 Swagger 注解完善接口文档
- 添加权限控制注解(管理端使用 `@SaCheckPermission`
6. **测试验证**
- 编写单元测试(可选)
- 使用 Swagger UI 测试接口
- 验证业务逻辑正确性
### 代码迁移指南
如果要将现有代码迁移到新的模块结构:
1. **创建新模块结构**(如果尚未创建)
2. **复制代码到新模块**
3. **修改包名**(如需要)
4. **更新导入语句**
5. **更新 Mapper XML 文件中的命名空间**
6. **测试验证功能正常**
## 注意事项
1. **登录功能**: 手机号登录、邮箱登录功能已在 `ruoyi-server` 模块实现(通过 `AppSmsAuthStrategy``AppEmailAuthStrategy`),验证码发送功能通过 `CaptchaController` 提供
2. **密码安全**: 用户密码使用 BCrypt 加密,确保密码安全存储
3. **Token安全**: JWT Token 需要设置合理的过期时间,建议使用 Refresh Token 机制
4. **文件上传**: 文件上传需要限制文件大小和类型,防止恶意文件上传
5. **消息推送**: 消息推送需要集成第三方推送服务,注意推送频率限制
6. **日志管理**: 操作日志和登录日志会随着时间增长,建议定期清理或归档
7. **设备管理**: 设备绑定需要考虑设备唯一性,避免重复绑定
8. **社交登录**: 第三方登录需要配置相应的应用ID和密钥
9. **数据一致性**: 用户删除需要考虑关联数据(设备、文件、消息等)的处理
10. **并发安全**: 用户注册、登录等操作需要考虑并发安全性
11. **异常处理**: 需要统一异常处理,避免敏感信息泄露
12. **模块集成**: 注意与 `ruoyi-server` 模块的集成关系,部分功能(如登录、第三方绑定)在 server 模块实现
13. **配置管理**: JWT 过滤器配置在 `AppJwtWebConfig` 中,需要正确配置过滤路径
14. **权限控制**: 管理端接口需要添加权限控制,移动端接口需要添加登录验证