31 KiB
31 KiB
会员模块结构说明
模块概述
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, h5is_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, iosis_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- 刷新TokenPOST /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}- 获取第三方登录跳转URLPOST /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 进行权限管理
下一步工作
功能完善
-
用户管理增强
- 手机号/邮箱登录功能 ✅(已在 ruoyi-server 模块实现)
- 第三方账号绑定/解绑功能 ✅(已在 ruoyi-server 模块实现)
- 忘记密码功能(通过手机号/邮箱验证码找回密码)
- 独立的手机号/邮箱绑定功能(当前可通过更新用户资料方式修改)
- 用户等级体系
- 用户标签管理
-
角色权限系统
- 权限点管理
- 角色权限配置
- 数据权限管理
-
消息推送集成
- 集成推送服务(极光推送、个推等)
- 消息推送功能完善
- 推送统计功能
-
文件管理增强
- 文件存储服务集成(OSS、COS等)
- 文件预览功能
- 文件分享功能
-
安全增强
- Token黑名单机制
- 多端登录管理
- 异常登录检测
- 登录IP白名单/黑名单
-
日志分析
- 操作日志分析功能
- 登录日志分析功能
- 日志告警功能
性能优化
-
缓存优化
- 用户信息缓存(Redis)
- 角色权限缓存
- 配置信息缓存
-
数据库优化
- 索引优化
- 查询优化
- 分表策略(日志表)
测试验证
-
单元测试
- Service层单元测试
- Controller层单元测试
-
集成测试
- API接口测试
- 业务流程测试
开发指南
新增功能开发步骤
-
数据库设计
- 设计表结构(遵循数据库设计规范)
- 确保字段命名规范,包含必要的索引
- 添加必要的状态字段和逻辑删除字段
-
创建实体类
- 在
domain包下创建实体类 - 创建对应的
Bo(业务对象)和Vo(视图对象) - 使用 Lombok 简化代码
- 在
-
创建 Mapper
- 在
mapper包下创建 Mapper 接口 - 继承
BaseMapper<T>获得基础 CRUD 功能 - 如需复杂查询,在
resources/mapper/member下创建 XML 文件
- 在
-
创建 Service
- 在
service包下创建 Service 接口 - 在
service/impl包下创建 Service 实现类 - 实现业务逻辑,使用事务注解保证数据一致性
- 在
-
创建 Controller
- 管理端接口:在
controller/admin包下创建 - 移动端接口:在
controller/app包下创建 - 添加 Swagger 注解完善接口文档
- 添加权限控制注解(管理端使用
@SaCheckPermission)
- 管理端接口:在
-
测试验证
- 编写单元测试(可选)
- 使用 Swagger UI 测试接口
- 验证业务逻辑正确性
代码迁移指南
如果要将现有代码迁移到新的模块结构:
- 创建新模块结构(如果尚未创建)
- 复制代码到新模块
- 修改包名(如需要)
- 更新导入语句
- 更新 Mapper XML 文件中的命名空间
- 测试验证功能正常
注意事项
- 登录功能: 手机号登录、邮箱登录功能已在
ruoyi-server模块实现(通过AppSmsAuthStrategy和AppEmailAuthStrategy),验证码发送功能通过CaptchaController提供 - 密码安全: 用户密码使用 BCrypt 加密,确保密码安全存储
- Token安全: JWT Token 需要设置合理的过期时间,建议使用 Refresh Token 机制
- 文件上传: 文件上传需要限制文件大小和类型,防止恶意文件上传
- 消息推送: 消息推送需要集成第三方推送服务,注意推送频率限制
- 日志管理: 操作日志和登录日志会随着时间增长,建议定期清理或归档
- 设备管理: 设备绑定需要考虑设备唯一性,避免重复绑定
- 社交登录: 第三方登录需要配置相应的应用ID和密钥
- 数据一致性: 用户删除需要考虑关联数据(设备、文件、消息等)的处理
- 并发安全: 用户注册、登录等操作需要考虑并发安全性
- 异常处理: 需要统一异常处理,避免敏感信息泄露
- 模块集成: 注意与
ruoyi-server模块的集成关系,部分功能(如登录、第三方绑定)在 server 模块实现 - 配置管理: JWT 过滤器配置在
AppJwtWebConfig中,需要正确配置过滤路径 - 权限控制: 管理端接口需要添加权限控制,移动端接口需要添加登录验证