Files
2026-02-22 12:12:02 +08:00

936 lines
31 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 会员模块结构说明
## 模块概述
`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. **权限控制**: 管理端接口需要添加权限控制,移动端接口需要添加登录验证