Files
PoJie/ruoyi-modules/ruoyi-member/MODULE_STRUCTURE.md
T
2026-02-22 12:12:02 +08:00

31 KiB
Raw Blame History

会员模块结构说明

模块概述

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 - 控制器层(分为 adminapp 两个子包)
  • domain - 实体类(包含 bo 业务对象和 vo 视图对象子包)
  • mapper - MyBatis Mapper 接口
  • service - 服务接口(实现类放在 impl 子包)
  • config - 配置类(JWT过滤器、Web配置等)
  • exception - 异常处理类
  • utils - 工具类(JWT工具等)

代码规范

  • 统一使用 Lombok 简化代码
  • 统一异常处理,使用 ServiceException 抛出业务异常
  • 统一返回格式,使用 R<T> 封装返回结果
  • 统一分页查询,使用 PageQueryTableDataInfo<T>
  • 统一日志记录,使用 @Log 注解记录操作日志
  • 统一权限控制,管理端接口使用 @SaCheckPermission 注解

数据库设计规范

  • 表名使用 app_ 前缀
  • 字段命名使用下划线命名法(snake_case)
  • 必须包含 create_by, create_time, update_by, update_time 字段
  • 删除标记使用逻辑删除(del_flag 字段)
  • 状态字段统一使用 status0表示启用/正常,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. 用户管理增强

    • 手机号/邮箱登录功能 (已在 ruoyi-server 模块实现)
    • 第三方账号绑定/解绑功能 (已在 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 模块实现(通过 AppSmsAuthStrategyAppEmailAuthStrategy),验证码发送功能通过 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. 权限控制: 管理端接口需要添加权限控制,移动端接口需要添加登录验证