# 会员模块结构说明

## 模块概述

`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. **权限控制**: 管理端接口需要添加权限控制，移动端接口需要添加登录验证
