feat:新增健康业务模块与身份模型

This commit is contained in:
AXR\Administrator 2026-10-06 21:29:53 +08:00
parent f619802853
commit d99ab5e1e4
15 changed files with 81 additions and 24 deletions

View File

@ -1,5 +1,7 @@
# elder-yudao # elder-yudao
健康业务实施说明:[健康业务模块与身份模型](docs/健康业务模块与身份模型.md)。完整文档入口:[项目文档](docs/README.md)。
文档验证码: jiankan 文档验证码: jiankan

View File

@ -2,6 +2,7 @@
目录:deploy/local 目录:deploy/local
用途:prepare-ui.ps1 安装前端依赖;start/stop/check 脚本管理本机服务;prepare-idea.ps1 生成后端 IDEA 启动配置。 用途:prepare-ui.ps1 安装前端依赖;start/stop/check 脚本管理本机服务;prepare-idea.ps1 生成后端 IDEA 启动配置。
健康业务:initialize-health.ps1 增量初始化会员表、健康身份与基础档案表及后台菜单,不导入旧系统数据。
当前状态:运行日志和旧前端缓存放在 .runtime,已忽略;本地连接设置来自 secrets.psd1。 当前状态:运行日志和旧前端缓存放在 .runtime,已忽略;本地连接设置来自 secrets.psd1。
迁移与维护:实际前端源码在 ../../yudao-ui-admin-vue3,.runtime/ui-src 是历史运行缓存。 迁移与维护:实际前端源码在 ../../yudao-ui-admin-vue3,.runtime/ui-src 是历史运行缓存。

View File

@ -1,5 +1,8 @@
# 项目文档 # 项目文档
- [健康业务模块与身份模型](健康业务模块与身份模型.md):单一业务身份、手机号账号、管理员建档、志愿者审核、家属授权与运行步骤。
- [老年健康系统扩展需求与设计草案](老年健康系统扩展需求与设计草案.md):已确认的运动预约、志愿服务、智能体和摄像头愿景;实施进度以健康模块文档为准。
- [项目目录说明](项目目录说明.md):各目录用途、当前启用状态和迁移定位;IDEA 中可直接阅读各目录的“目录说明.txt”。 - [项目目录说明](项目目录说明.md):各目录用途、当前启用状态和迁移定位;IDEA 中可直接阅读各目录的“目录说明.txt”。
- [管理端界面定制](管理端界面定制.md):Olive 视觉参考、前端源码目录、产品配置、菜单处理与验证结果。 - [管理端界面定制](管理端界面定制.md):Olive 视觉参考、前端源码目录、产品配置、菜单处理与验证结果。

View File

@ -1,14 +1,14 @@
# 项目目录说明 # 项目目录说明
更新日期:2026-10-05。项目:`elder-yudao-pro`。本次只添加目录说明,不删除、移动或重命名目录,也不修改构建和运行配置。 更新日期:2026-10-05。项目:`elder-yudao-pro`。保留原目录,并随业务模块实施更新目录用途与启用状态。
IDEA 项目树不原生支持为每个普通目录设置独立副标题。本项目在 287 个主要目录中添加了 `目录说明.txt`,点击即可阅读;已有 README.md 的目录沿用原说明。源码中的 .txt 文件不会被 Vue/Vite 的组件扫描当成页面或组件。 IDEA 项目树不原生支持为每个普通目录设置独立副标题。本项目在主要目录中添加了 `目录说明.txt`,点击即可阅读;已有 README.md 的目录沿用原说明。源码中的 .txt 文件不会被 Vue/Vite 的组件扫描当成页面或组件。
可在 IDEA 中按 Ctrl+Shift+N,输入“目录说明.txt”查找说明;输入“项目目录说明.md”打开本索引。外层目录与 Maven 子模块有独立说明,后端分层和前端组件也分别注明用途。 可在 IDEA 中按 Ctrl+Shift+N,输入“目录说明.txt”查找说明;输入“项目目录说明.md”打开本索引。外层目录与 Maven 子模块有独立说明,后端分层和前端组件也分别注明用途。
## 当前状态 ## 当前状态
当前后端启用 system、infra;member 源码保留,计划用于老人、志愿者和家属账号。health 模块尚未建立。其他模板业务目前未启用,暂时保留文件。前端页面或 API 源码存在不代表后端功能已经启用。 当前后端启用 system、infra、member、health;member 提供手机号账号认证,health 提供业务身份、基础档案、志愿者审核和家属关联。其他模板业务目前未启用,暂时保留文件。前端页面或 API 源码存在不代表后端功能已经启用。
## 项目根目录 ## 项目根目录
@ -18,15 +18,15 @@ IDEA 项目树不原生支持为每个普通目录设置独立副标题。本项
| [deploy](../deploy/目录说明.txt) | 部署与本地运行:保存环境初始化、依赖安装、启动、停止和检查脚本。 | 当前使用 deploy/local。 应用部署操作在这里维护,业务代码放在业务模块中。 | | [deploy](../deploy/目录说明.txt) | 部署与本地运行:保存环境初始化、依赖安装、启动、停止和检查脚本。 | 当前使用 deploy/local。 应用部署操作在这里维护,业务代码放在业务模块中。 |
| [docs](../docs/README.md) | 项目文档:记录旧系统迁移分析、本地部署、界面定制与目录用途。 | 迁移上下文和已完成操作分别记录。 从 README.md 或 项目目录说明.md 开始阅读。 | | [docs](../docs/README.md) | 项目文档:记录旧系统迁移分析、本地部署、界面定制与目录用途。 | 迁移上下文和已完成操作分别记录。 从 README.md 或 项目目录说明.md 开始阅读。 |
| [image](../image/目录说明.txt) | 模板文档配图:保存原模板 README 使用的宣传截图。 | 不参与系统业务和应用启动。 按用户要求暂时保留。 | | [image](../image/目录说明.txt) | 模板文档配图:保存原模板 README 使用的宣传截图。 | 不参与系统业务和应用启动。 按用户要求暂时保留。 |
| [mysql_script](../mysql_script/目录说明.txt) | 数据库初始化脚本:保存 system/infra 初始化 SQL,以及 member、商城、支付、报表等可选模块的 SQL。 | 本机 system/infra 使用 ruoyi-vue-pro.sql 初始化。 后续 member 初始化会使用 ruoyi-member.sql;新增健康业务应使用独立增量脚本。 | | [mysql_script](../mysql_script/目录说明.txt) | 数据库初始化脚本:保存 system/infra 初始化 SQL,以及 member、商城、支付、报表等可选模块的 SQL。 | 本机 system/infra 使用 ruoyi-vue-pro.sql 初始化。 member/health 使用 mysql_script/health 内的增量脚本,不直接执行含 DROP 的 ruoyi-member.sql。 |
| [yudao-dependencies](../yudao-dependencies/目录说明.txt) | Maven 依赖版本管理:统一管理 Java 依赖、内部模块和框架组件的版本,供各模块引用。 | 已参与当前构建。 增加新依赖时优先在这里管理版本。 | | [yudao-dependencies](../yudao-dependencies/目录说明.txt) | Maven 依赖版本管理:统一管理 Java 依赖、内部模块和框架组件的版本,供各模块引用。 | 已参与当前构建。 增加新依赖时优先在这里管理版本。 |
| [yudao-framework](../yudao-framework/目录说明.txt) | 公共技术框架:封装 Web、认证、数据库、缓存、租户、数据权限、任务、消息和文件导出等技术能力。 | 已参与当前构建。 健康业务复用这些基础能力;具体业务规则放入后续 health 模块。 | | [yudao-framework](../yudao-framework/目录说明.txt) | 公共技术框架:封装 Web、认证、数据库、缓存、租户、数据权限、任务、消息和文件导出等技术能力。 | 已参与当前构建。 健康业务复用这些基础能力;具体业务规则放入后续 health 模块。 |
| [yudao-server](../yudao-server/目录说明.txt) | 后端启动工程:包含 Spring Boot 主启动类、应用配置和业务模块依赖,负责组装并运行服务。 | 当前加载 system 和 infra;member 等模块未加载。 启用健康业务或会员模块时,需要调整本目录 pom.xml 及根 pom.xml。 | | [yudao-server](../yudao-server/目录说明.txt) | 后端启动工程:包含 Spring Boot 主启动类、应用配置和业务模块依赖,负责组装并运行服务。 | 当前加载 system、infra、member、health。 健康账号与业务接口已通过 member/health 装配。 |
| [yudao-ui-admin-vue3](../yudao-ui-admin-vue3/README.md) | 管理端前端:Vue 3、Vite、Element Plus 管理界面,是当前维护的正式前端源码目录。 | 已完成 Olive 视觉适配;菜单当前展示 system、infra。 以后在这个目录改页面;运行方法见本目录 README.md。 | | [yudao-ui-admin-vue3](../yudao-ui-admin-vue3/README.md) | 管理端前端:Vue 3、Vite、Element Plus 管理界面,是当前维护的正式前端源码目录。 | 已完成 Olive 视觉适配;菜单当前展示 system、infra。 以后在这个目录改页面;运行方法见本目录 README.md。 |
| [yudao-example](../yudao-example/目录说明.txt) | 单点登录示例:演示授权码模式、账号密码模式的单点登录接入。 | 根 pom.xml 未启用,当前后端未加载。 用于参考,暂时保留。 | | [yudao-example](../yudao-example/目录说明.txt) | 单点登录示例:演示授权码模式、账号密码模式的单点登录接入。 | 根 pom.xml 未启用,当前后端未加载。 用于参考,暂时保留。 |
| [yudao-module-system](../yudao-module-system/目录说明.txt) | 系统管理:后台账号、角色、菜单、部门、岗位、字典、租户、操作日志、短信、邮箱和站内信。 | 已启用。 管理端权限、通知和字典会继续复用。 | | [yudao-module-system](../yudao-module-system/目录说明.txt) | 系统管理:后台账号、角色、菜单、部门、岗位、字典、租户、操作日志、短信、邮箱和站内信。 | 已启用。 管理端权限、通知和字典会继续复用。 |
| [yudao-module-infra](../yudao-module-infra/目录说明.txt) | 基础设施:配置管理、文件存储、定时任务、代码生成、接口日志、监控和 WebSocket 等设施。 | 已启用。 运动提醒、文件与检测事件通知将复用相关能力。 | | [yudao-module-infra](../yudao-module-infra/目录说明.txt) | 基础设施:配置管理、文件存储、定时任务、代码生成、接口日志、监控和 WebSocket 等设施。 | 已启用。 运动提醒、文件与检测事件通知将复用相关能力。 |
| [yudao-module-member](../yudao-module-member/目录说明.txt) | 业务用户账号:会员账号、登录与个人资料;还保留模板中的积分、等级、标签等扩展。 | 源码保留,当前未启用。 计划用于老人、志愿者和家属账号;健康资料放到独立 health 模块。 | | [yudao-module-member](../yudao-module-member/目录说明.txt) | 业务用户账号:会员账号、登录与个人资料;还保留模板中的积分、等级、标签等扩展。 | 已启用。 用于老人、志愿者和家属账号;健康资料放到独立 health 模块。 |
| [yudao-module-bpm](../yudao-module-bpm/目录说明.txt) | 工作流:流程设计、审批、任务与流程实例管理,使用 Flowable。 | 源码保留,当前未启用。 运动协助工单计划在健康业务中实现状态流转,暂不依赖此模块。 | | [yudao-module-bpm](../yudao-module-bpm/目录说明.txt) | 工作流:流程设计、审批、任务与流程实例管理,使用 Flowable。 | 源码保留,当前未启用。 运动协助工单计划在健康业务中实现状态流转,暂不依赖此模块。 |
| [yudao-module-crm](../yudao-module-crm/目录说明.txt) | 客户关系管理:线索、客户、联系人、商机、合同、回款和销售统计。 | 源码保留,当前未启用。 目前老年健康服务需求不使用此业务。 | | [yudao-module-crm](../yudao-module-crm/目录说明.txt) | 客户关系管理:线索、客户、联系人、商机、合同、回款和销售统计。 | 源码保留,当前未启用。 目前老年健康服务需求不使用此业务。 |
| [yudao-module-erp](../yudao-module-erp/目录说明.txt) | 进销存管理:采购、销售、库存、供应商、仓库和财务管理。 | 源码保留,当前未启用。 轻量场地与设备管理计划放入 health,不引入完整 ERP。 | | [yudao-module-erp](../yudao-module-erp/目录说明.txt) | 进销存管理:采购、销售、库存、供应商、仓库和财务管理。 | 源码保留,当前未启用。 轻量场地与设备管理计划放入 health,不引入完整 ERP。 |
@ -72,8 +72,8 @@ IDEA 项目树不原生支持为每个普通目录设置独立副标题。本项
| [yudao-module-mall/yudao-module-statistics-biz](../yudao-module-mall/yudao-module-statistics-biz/目录说明.txt) | 商城统计:业务实现:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。 | 源码保留,当前未启用。 src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。 | | [yudao-module-mall/yudao-module-statistics-biz](../yudao-module-mall/yudao-module-statistics-biz/目录说明.txt) | 商城统计:业务实现:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。 | 源码保留,当前未启用。 src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。 |
| [yudao-module-mall/yudao-module-trade-api](../yudao-module-mall/yudao-module-trade-api/目录说明.txt) | 商城交易:模块调用接口:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。 | 源码保留,当前未启用。 模块间调用优先通过 API,减少对实现类的依赖。 | | [yudao-module-mall/yudao-module-trade-api](../yudao-module-mall/yudao-module-trade-api/目录说明.txt) | 商城交易:模块调用接口:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。 | 源码保留,当前未启用。 模块间调用优先通过 API,减少对实现类的依赖。 |
| [yudao-module-mall/yudao-module-trade-biz](../yudao-module-mall/yudao-module-trade-biz/目录说明.txt) | 商城交易:业务实现:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。 | 源码保留,当前未启用。 src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。 | | [yudao-module-mall/yudao-module-trade-biz](../yudao-module-mall/yudao-module-trade-biz/目录说明.txt) | 商城交易:业务实现:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。 | 源码保留,当前未启用。 src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。 |
| [yudao-module-member/yudao-module-member-api](../yudao-module-member/yudao-module-member-api/目录说明.txt) | 业务用户账号:模块调用接口:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。 | 源码保留,当前未启用。 模块间调用优先通过 API,减少对实现类的依赖。 | | [yudao-module-member/yudao-module-member-api](../yudao-module-member/yudao-module-member-api/目录说明.txt) | 业务用户账号:模块调用接口:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。 | 已启用。 模块间调用优先通过 API,减少对实现类的依赖。 |
| [yudao-module-member/yudao-module-member-biz](../yudao-module-member/yudao-module-member-biz/目录说明.txt) | 业务用户账号:业务实现:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。 | 源码保留,当前未启用。 src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。 | | [yudao-module-member/yudao-module-member-biz](../yudao-module-member/yudao-module-member-biz/目录说明.txt) | 业务用户账号:业务实现:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。 | 已启用。 src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。 |
| [yudao-module-mp/yudao-module-mp-api](../yudao-module-mp/yudao-module-mp-api/目录说明.txt) | 微信公众号管理:模块调用接口:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。 | 源码保留,当前未启用。 模块间调用优先通过 API,减少对实现类的依赖。 | | [yudao-module-mp/yudao-module-mp-api](../yudao-module-mp/yudao-module-mp-api/目录说明.txt) | 微信公众号管理:模块调用接口:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。 | 源码保留,当前未启用。 模块间调用优先通过 API,减少对实现类的依赖。 |
| [yudao-module-mp/yudao-module-mp-biz](../yudao-module-mp/yudao-module-mp-biz/目录说明.txt) | 微信公众号管理:业务实现:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。 | 源码保留,当前未启用。 src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。 | | [yudao-module-mp/yudao-module-mp-biz](../yudao-module-mp/yudao-module-mp-biz/目录说明.txt) | 微信公众号管理:业务实现:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。 | 源码保留,当前未启用。 src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。 |
| [yudao-module-pay/yudao-module-pay-api](../yudao-module-pay/yudao-module-pay-api/目录说明.txt) | 支付管理:模块调用接口:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。 | 源码保留,当前未启用。 模块间调用优先通过 API,减少对实现类的依赖。 | | [yudao-module-pay/yudao-module-pay-api](../yudao-module-pay/yudao-module-pay-api/目录说明.txt) | 支付管理:模块调用接口:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。 | 源码保留,当前未启用。 模块间调用优先通过 API,减少对实现类的依赖。 |
@ -137,7 +137,7 @@ IDEA 项目树不原生支持为每个普通目录设置独立副标题。本项
| [yudao-ui-admin-vue3/src/api/system](../yudao-ui-admin-vue3/src/api/system/目录说明.txt) | 系统管理接口调用:封装系统管理的后台请求。 | 已启用。 API 源码存在并不表示后端模块已启用。 | | [yudao-ui-admin-vue3/src/api/system](../yudao-ui-admin-vue3/src/api/system/目录说明.txt) | 系统管理接口调用:封装系统管理的后台请求。 | 已启用。 API 源码存在并不表示后端模块已启用。 |
| [yudao-ui-admin-vue3/src/views/infra](../yudao-ui-admin-vue3/src/views/infra/目录说明.txt) | 基础设施页面:配置管理、文件存储、定时任务、代码生成、接口日志、监控和 WebSocket 等设施。 | 已启用。 运动提醒、文件与检测事件通知将复用相关能力。 | | [yudao-ui-admin-vue3/src/views/infra](../yudao-ui-admin-vue3/src/views/infra/目录说明.txt) | 基础设施页面:配置管理、文件存储、定时任务、代码生成、接口日志、监控和 WebSocket 等设施。 | 已启用。 运动提醒、文件与检测事件通知将复用相关能力。 |
| [yudao-ui-admin-vue3/src/api/infra](../yudao-ui-admin-vue3/src/api/infra/目录说明.txt) | 基础设施接口调用:封装基础设施的后台请求。 | 已启用。 API 源码存在并不表示后端模块已启用。 | | [yudao-ui-admin-vue3/src/api/infra](../yudao-ui-admin-vue3/src/api/infra/目录说明.txt) | 基础设施接口调用:封装基础设施的后台请求。 | 已启用。 API 源码存在并不表示后端模块已启用。 |
| [yudao-ui-admin-vue3/src/views/member](../yudao-ui-admin-vue3/src/views/member/目录说明.txt) | 业务用户账号页面:会员账号、登录与个人资料;还保留模板中的积分、等级、标签等扩展。 | 源码保留,当前未启用。 计划用于老人、志愿者和家属账号;健康资料放到独立 health 模块。 | | [yudao-ui-admin-vue3/src/views/member](../yudao-ui-admin-vue3/src/views/member/目录说明.txt) | 业务用户账号页面:会员账号、登录与个人资料;还保留模板中的积分、等级、标签等扩展。 | 源码保留,当前未启用。 用于老人、志愿者和家属账号;健康资料放到独立 health 模块。 |
| [yudao-ui-admin-vue3/src/api/member](../yudao-ui-admin-vue3/src/api/member/目录说明.txt) | 业务用户账号接口调用:封装业务用户账号的后台请求。 | 源码保留,当前未启用。 API 源码存在并不表示后端模块已启用。 | | [yudao-ui-admin-vue3/src/api/member](../yudao-ui-admin-vue3/src/api/member/目录说明.txt) | 业务用户账号接口调用:封装业务用户账号的后台请求。 | 源码保留,当前未启用。 API 源码存在并不表示后端模块已启用。 |
| [yudao-ui-admin-vue3/src/views/bpm](../yudao-ui-admin-vue3/src/views/bpm/目录说明.txt) | 工作流页面:流程设计、审批、任务与流程实例管理,使用 Flowable。 | 源码保留,当前未启用。 运动协助工单计划在健康业务中实现状态流转,暂不依赖此模块。 | | [yudao-ui-admin-vue3/src/views/bpm](../yudao-ui-admin-vue3/src/views/bpm/目录说明.txt) | 工作流页面:流程设计、审批、任务与流程实例管理,使用 Flowable。 | 源码保留,当前未启用。 运动协助工单计划在健康业务中实现状态流转,暂不依赖此模块。 |
| [yudao-ui-admin-vue3/src/api/bpm](../yudao-ui-admin-vue3/src/api/bpm/目录说明.txt) | 工作流接口调用:封装工作流的后台请求。 | 源码保留,当前未启用。 API 源码存在并不表示后端模块已启用。 | | [yudao-ui-admin-vue3/src/api/bpm](../yudao-ui-admin-vue3/src/api/bpm/目录说明.txt) | 工作流接口调用:封装工作流的后台请求。 | 源码保留,当前未启用。 API 源码存在并不表示后端模块已启用。 |
@ -257,3 +257,15 @@ IDEA 项目树不原生支持为每个普通目录设置独立副标题。本项
| `各 Maven 模块的 target` | Java 编译和打包输出;由 Maven 生成。 | | `各 Maven 模块的 target` | Java 编译和打包输出;由 Maven 生成。 |
当前部署和启动方式见 [系统管理后台本地部署](系统管理后台本地部署.md),界面适配见 [管理端界面定制](管理端界面定制.md),旧业务细节见 [芋道框架迁移上下文](芋道框架迁移上下文.md)。 当前部署和启动方式见 [系统管理后台本地部署](系统管理后台本地部署.md),界面适配见 [管理端界面定制](管理端界面定制.md),旧业务细节见 [芋道框架迁移上下文](芋道框架迁移上下文.md)。
## 新增健康模块
| 目录 | 用途 |
| --- | --- |
| [yudao-module-health](../yudao-module-health/目录说明.txt) | 健康业务模块;当前完成身份和基础档案。 |
| [health-api](../yudao-module-health/yudao-module-health-api/目录说明.txt) | 模块间身份校验接口、DTO 和枚举。 |
| [health-biz](../yudao-module-health/yudao-module-health-biz/目录说明.txt) | HTTP 接口、业务服务、Mapper 及测试。 |
| [健康管理页面](../yudao-ui-admin-vue3/src/views/health/目录说明.txt) | 身份档案与家属关联管理。 |
| [健康增量 SQL](../mysql_script/health/目录说明.txt) | 会员建表、健康建表和后台菜单。 |
具体规则与运行步骤见 [健康业务模块与身份模型](健康业务模块与身份模型.md)。

View File

@ -15,7 +15,8 @@
<!-- 各种 module 拓展 --> <!-- 各种 module 拓展 -->
<module>yudao-module-system</module> <module>yudao-module-system</module>
<module>yudao-module-infra</module> <module>yudao-module-infra</module>
<!-- <module>yudao-module-member</module>--> <module>yudao-module-member</module>
<module>yudao-module-health</module>
<!-- <module>yudao-module-bpm</module>--> <!-- <module>yudao-module-bpm</module>-->
<!-- <module>yudao-module-report</module>--> <!-- <module>yudao-module-report</module>-->
<!-- <module>yudao-module-mp</module>--> <!-- <module>yudao-module-mp</module>-->

View File

@ -1,6 +1,8 @@
package cn.iocoder.yudao.module.member.api.user; package cn.iocoder.yudao.module.member.api.user;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserCreateReqDTO;
import javax.validation.Valid;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -15,6 +17,8 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
*/ */
public interface MemberUserApi { public interface MemberUserApi {
Long createUser(@Valid MemberUserCreateReqDTO reqDTO);
/** /**
* 获得会员用户信息 * 获得会员用户信息
* *

View File

@ -2,7 +2,7 @@
目录:yudao-module-member/yudao-module-member-api 目录:yudao-module-member/yudao-module-member-api
用途:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。 用途:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。
当前状态:源码保留,当前未启用。 当前状态:已启用,提供前台会员账号与认证。
迁移与维护:模块间调用优先通过 API,减少对实现类的依赖。 迁移与维护:模块间调用优先通过 API,减少对实现类的依赖。
完整索引:项目根目录 docs/项目目录说明.md。 完整索引:项目根目录 docs/项目目录说明.md。

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.member.api.user; package cn.iocoder.yudao.module.member.api.user;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserCreateReqDTO;
import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.member.service.user.MemberUserService;
@ -23,6 +24,11 @@ public class MemberUserApiImpl implements MemberUserApi {
@Resource @Resource
private MemberUserService userService; private MemberUserService userService;
@Override
public Long createUser(MemberUserCreateReqDTO reqDTO) {
return userService.createUserWithPassword(reqDTO).getId();
}
@Override @Override
public MemberUserRespDTO getUser(Long id) { public MemberUserRespDTO getUser(Long id) {
MemberUserDO user = userService.getUser(id); MemberUserDO user = userService.getUser(id);

View File

@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReq
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO; import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
import cn.iocoder.yudao.module.member.controller.app.user.vo.*; import cn.iocoder.yudao.module.member.controller.app.user.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserCreateReqDTO;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Collection; import java.util.Collection;
@ -19,6 +20,8 @@ import java.util.List;
*/ */
public interface MemberUserService { public interface MemberUserService {
MemberUserDO createUserWithPassword(@Valid MemberUserCreateReqDTO reqDTO);
/** /**
* 通过手机查询用户 * 通过手机查询用户
* *

View File

@ -6,6 +6,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.*; import cn.hutool.core.util.*;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO;
@ -14,6 +15,8 @@ import cn.iocoder.yudao.module.member.controller.app.user.vo.*;
import cn.iocoder.yudao.module.member.convert.auth.AuthConvert; import cn.iocoder.yudao.module.member.convert.auth.AuthConvert;
import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert; import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserCreateReqDTO;
import org.springframework.dao.DuplicateKeyException;
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
import cn.iocoder.yudao.module.member.mq.producer.user.MemberUserProducer; import cn.iocoder.yudao.module.member.mq.producer.user.MemberUserProducer;
import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
@ -64,6 +67,23 @@ public class MemberUserServiceImpl implements MemberUserService {
@Resource @Resource
private MemberUserProducer memberUserProducer; private MemberUserProducer memberUserProducer;
@Override
@Transactional(rollbackFor = Exception.class)
public MemberUserDO createUserWithPassword(MemberUserCreateReqDTO reqDTO) {
validateMobileUnique(null, reqDTO.getMobile());
MemberUserDO user;
try {
user = createUser(reqDTO.getMobile(), reqDTO.getNickname(), null,
StrUtil.blankToDefault(getClientIP(), "127.0.0.1"), TerminalEnum.UNKNOWN.getTerminal());
} catch (DuplicateKeyException ex) {
throw exception(USER_MOBILE_USED, reqDTO.getMobile());
}
// 已有账号必须走显式绑定,不能因建档而重置已有密码。
user.setPassword(encodePassword(reqDTO.getPassword()));
memberUserMapper.updateById(new MemberUserDO().setId(user.getId()).setPassword(user.getPassword()));
return user;
}
@Override @Override
public MemberUserDO getUserByMobile(String mobile) { public MemberUserDO getUserByMobile(String mobile) {
return memberUserMapper.selectByMobile(mobile); return memberUserMapper.selectByMobile(mobile);

View File

@ -2,7 +2,7 @@
目录:yudao-module-member/yudao-module-member-biz 目录:yudao-module-member/yudao-module-member-biz
用途:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。 用途:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。
当前状态:源码保留,当前未启用。 当前状态:已启用,提供前台会员账号与认证。
迁移与维护:src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。 迁移与维护:src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。
完整索引:项目根目录 docs/项目目录说明.md。 完整索引:项目根目录 docs/项目目录说明.md。

View File

@ -2,8 +2,8 @@
目录:yudao-module-member 目录:yudao-module-member
用途:会员账号、登录与个人资料;还保留模板中的积分、等级、标签等扩展。 用途:会员账号、登录与个人资料;还保留模板中的积分、等级、标签等扩展。
当前状态:源码保留,当前未启用。 当前状态:已启用,提供前台会员账号与认证。
迁移与维护:计划用于老人、志愿者和家属账号;健康资料放到独立 health 模块。 迁移与维护:用于老人、志愿者和家属账号;健康资料放到独立 health 模块。
已备注子目录: 已备注子目录:
yudao-module-member-api:业务用户账号:模块调用接口。 yudao-module-member-api:业务用户账号:模块调用接口。

View File

@ -32,12 +32,17 @@
<version>${revision}</version> <version>${revision}</version>
</dependency> </dependency>
<!-- 会员中心。默认注释,保证编译速度 --> <!-- 前台账号与健康业务 -->
<!-- <dependency>--> <dependency>
<!-- <groupId>cn.iocoder.boot</groupId>--> <groupId>cn.iocoder.boot</groupId>
<!-- <artifactId>yudao-module-member-biz</artifactId>--> <artifactId>yudao-module-member-biz</artifactId>
<!-- <version>${revision}</version>--> <version>${revision}</version>
<!-- </dependency>--> </dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-module-health-biz</artifactId>
<version>${revision}</version>
</dependency>
<!-- 数据报表。默认注释,保证编译速度 --> <!-- 数据报表。默认注释,保证编译速度 -->
<!-- <dependency>--> <!-- <dependency>-->

View File

@ -2,8 +2,8 @@
目录:yudao-server 目录:yudao-server
用途:包含 Spring Boot 主启动类、应用配置和业务模块依赖,负责组装并运行服务。 用途:包含 Spring Boot 主启动类、应用配置和业务模块依赖,负责组装并运行服务。
当前状态:当前加载 system 和 infra;member 等模块未加载。 当前状态:当前加载 system、infra、member、health。
迁移与维护:启用健康业务或会员模块时,需要调整本目录 pom.xml 及根 pom.xml。 迁移与维护:健康账号和业务接口通过 member/health 模块装配,运行步骤见 docs/健康业务模块与身份模型.md。
完整索引:项目根目录 docs/项目目录说明.md。 完整索引:项目根目录 docs/项目目录说明.md。
此文件只用于在 IDEA 中阅读目录用途,不修改目录名称、构建依赖或程序行为。 此文件只用于在 IDEA 中阅读目录用途,不修改目录名称、构建依赖或程序行为。

View File

@ -23,5 +23,5 @@ VITE_APP_BAIDU_CODE=
VITE_APP_DEFAULT_TENANT_ID=1 VITE_APP_DEFAULT_TENANT_ID=1
VITE_APP_DEFAULT_TENANT_NAME= VITE_APP_DEFAULT_TENANT_NAME=
# Only modules currently enabled by the backend. Add elder when it is implemented. # Modules enabled by the backend and exposed in the health administration UI.
VITE_APP_ENABLED_MODULES=system,infra VITE_APP_ENABLED_MODULES=system,infra,health