From d99ab5e1e4b634ca71d11e0d0ecd612ad577eacd Mon Sep 17 00:00:00 2001
From: "AXR\\Administrator" <1106996101@qq.com>
Date: Tue, 6 Oct 2026 21:29:53 +0800
Subject: [PATCH] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E5=81=A5=E5=BA=B7?=
=?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=A8=A1=E5=9D=97=E4=B8=8E=E8=BA=AB=E4=BB=BD?=
=?UTF-8?q?=E6=A8=A1=E5=9E=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 2 ++
deploy/local/目录说明.txt | 1 +
docs/README.md | 3 ++
docs/项目目录说明.md | 30 +++++++++++++------
pom.xml | 3 +-
.../module/member/api/user/MemberUserApi.java | 4 +++
.../yudao-module-member-api/目录说明.txt | 2 +-
.../member/api/user/MemberUserApiImpl.java | 6 ++++
.../service/user/MemberUserService.java | 3 ++
.../service/user/MemberUserServiceImpl.java | 20 +++++++++++++
.../yudao-module-member-biz/目录说明.txt | 2 +-
yudao-module-member/目录说明.txt | 4 +--
yudao-server/pom.xml | 17 +++++++----
yudao-server/目录说明.txt | 4 +--
yudao-ui-admin-vue3/.env | 4 +--
15 files changed, 81 insertions(+), 24 deletions(-)
diff --git a/README.md b/README.md
index 59879c0..0d7c797 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# elder-yudao
+健康业务实施说明:[健康业务模块与身份模型](docs/健康业务模块与身份模型.md)。完整文档入口:[项目文档](docs/README.md)。
+
文档验证码: jiankan
diff --git a/deploy/local/目录说明.txt b/deploy/local/目录说明.txt
index 04a724e..536741d 100644
--- a/deploy/local/目录说明.txt
+++ b/deploy/local/目录说明.txt
@@ -2,6 +2,7 @@
目录:deploy/local
用途:prepare-ui.ps1 安装前端依赖;start/stop/check 脚本管理本机服务;prepare-idea.ps1 生成后端 IDEA 启动配置。
+健康业务:initialize-health.ps1 增量初始化会员表、健康身份与基础档案表及后台菜单,不导入旧系统数据。
当前状态:运行日志和旧前端缓存放在 .runtime,已忽略;本地连接设置来自 secrets.psd1。
迁移与维护:实际前端源码在 ../../yudao-ui-admin-vue3,.runtime/ui-src 是历史运行缓存。
diff --git a/docs/README.md b/docs/README.md
index fdf3ea0..7df10fd 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,5 +1,8 @@
# 项目文档
+- [健康业务模块与身份模型](健康业务模块与身份模型.md):单一业务身份、手机号账号、管理员建档、志愿者审核、家属授权与运行步骤。
+- [老年健康系统扩展需求与设计草案](老年健康系统扩展需求与设计草案.md):已确认的运动预约、志愿服务、智能体和摄像头愿景;实施进度以健康模块文档为准。
+
- [项目目录说明](项目目录说明.md):各目录用途、当前启用状态和迁移定位;IDEA 中可直接阅读各目录的“目录说明.txt”。
- [管理端界面定制](管理端界面定制.md):Olive 视觉参考、前端源码目录、产品配置、菜单处理与验证结果。
diff --git a/docs/项目目录说明.md b/docs/项目目录说明.md
index 220e5a2..e65d4ab 100644
--- a/docs/项目目录说明.md
+++ b/docs/项目目录说明.md
@@ -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 子模块有独立说明,后端分层和前端组件也分别注明用途。
## 当前状态
-当前后端启用 system、infra;member 源码保留,计划用于老人、志愿者和家属账号。health 模块尚未建立。其他模板业务目前未启用,暂时保留文件。前端页面或 API 源码存在不代表后端功能已经启用。
+当前后端启用 system、infra、member、health;member 提供手机号账号认证,health 提供业务身份、基础档案、志愿者审核和家属关联。其他模板业务目前未启用,暂时保留文件。前端页面或 API 源码存在不代表后端功能已经启用。
## 项目根目录
@@ -18,15 +18,15 @@ IDEA 项目树不原生支持为每个普通目录设置独立副标题。本项
| [deploy](../deploy/目录说明.txt) | 部署与本地运行:保存环境初始化、依赖安装、启动、停止和检查脚本。 | 当前使用 deploy/local。 应用部署操作在这里维护,业务代码放在业务模块中。 |
| [docs](../docs/README.md) | 项目文档:记录旧系统迁移分析、本地部署、界面定制与目录用途。 | 迁移上下文和已完成操作分别记录。 从 README.md 或 项目目录说明.md 开始阅读。 |
| [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-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-example](../yudao-example/目录说明.txt) | 单点登录示例:演示授权码模式、账号密码模式的单点登录接入。 | 根 pom.xml 未启用,当前后端未加载。 用于参考,暂时保留。 |
| [yudao-module-system](../yudao-module-system/目录说明.txt) | 系统管理:后台账号、角色、菜单、部门、岗位、字典、租户、操作日志、短信、邮箱和站内信。 | 已启用。 管理端权限、通知和字典会继续复用。 |
| [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-crm](../yudao-module-crm/目录说明.txt) | 客户关系管理:线索、客户、联系人、商机、合同、回款和销售统计。 | 源码保留,当前未启用。 目前老年健康服务需求不使用此业务。 |
| [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-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-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-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-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-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/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/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/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 源码存在并不表示后端模块已启用。 |
@@ -257,3 +257,15 @@ IDEA 项目树不原生支持为每个普通目录设置独立副标题。本项
| `各 Maven 模块的 target` | Java 编译和打包输出;由 Maven 生成。 |
当前部署和启动方式见 [系统管理后台本地部署](系统管理后台本地部署.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)。
diff --git a/pom.xml b/pom.xml
index 2bd7f4c..cd7c9f3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,8 @@
yudao-module-system
yudao-module-infra
-
+ yudao-module-member
+ yudao-module-health
diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java
index c9fb801..bdee8cb 100644
--- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java
+++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java
@@ -1,6 +1,8 @@
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.MemberUserCreateReqDTO;
+import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
@@ -15,6 +17,8 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
*/
public interface MemberUserApi {
+ Long createUser(@Valid MemberUserCreateReqDTO reqDTO);
+
/**
* 获得会员用户信息
*
diff --git a/yudao-module-member/yudao-module-member-api/目录说明.txt b/yudao-module-member/yudao-module-member-api/目录说明.txt
index b8f1b08..6768e60 100644
--- a/yudao-module-member/yudao-module-member-api/目录说明.txt
+++ b/yudao-module-member/yudao-module-member-api/目录说明.txt
@@ -2,7 +2,7 @@
目录:yudao-module-member/yudao-module-member-api
用途:供其他后端模块调用的接口、DTO 和枚举;不是浏览器直接请求的 Controller。
-当前状态:源码保留,当前未启用。
+当前状态:已启用,提供前台会员账号与认证。
迁移与维护:模块间调用优先通过 API,减少对实现类的依赖。
完整索引:项目根目录 docs/项目目录说明.md。
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java
index 8da857c..0f64a69 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java
@@ -1,6 +1,7 @@
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.MemberUserCreateReqDTO;
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.service.user.MemberUserService;
@@ -23,6 +24,11 @@ public class MemberUserApiImpl implements MemberUserApi {
@Resource
private MemberUserService userService;
+ @Override
+ public Long createUser(MemberUserCreateReqDTO reqDTO) {
+ return userService.createUserWithPassword(reqDTO).getId();
+ }
+
@Override
public MemberUserRespDTO getUser(Long id) {
MemberUserDO user = userService.getUser(id);
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java
index fb2e9cd..799da73 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java
@@ -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.app.user.vo.*;
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 java.util.Collection;
@@ -19,6 +20,8 @@ import java.util.List;
*/
public interface MemberUserService {
+ MemberUserDO createUserWithPassword(@Valid MemberUserCreateReqDTO reqDTO);
+
/**
* 通过手机查询用户
*
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
index f81e9a1..7f98e98 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
@@ -6,6 +6,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.*;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
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.util.object.BeanUtils;
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.user.MemberUserConvert;
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.mq.producer.user.MemberUserProducer;
import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
@@ -64,6 +67,23 @@ public class MemberUserServiceImpl implements MemberUserService {
@Resource
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
public MemberUserDO getUserByMobile(String mobile) {
return memberUserMapper.selectByMobile(mobile);
diff --git a/yudao-module-member/yudao-module-member-biz/目录说明.txt b/yudao-module-member/yudao-module-member-biz/目录说明.txt
index 4c949e1..8575788 100644
--- a/yudao-module-member/yudao-module-member-biz/目录说明.txt
+++ b/yudao-module-member/yudao-module-member-biz/目录说明.txt
@@ -2,7 +2,7 @@
目录:yudao-module-member/yudao-module-member-biz
用途:保存 REST Controller、Service、数据对象、Mapper、转换器及模块配置。
-当前状态:源码保留,当前未启用。
+当前状态:已启用,提供前台会员账号与认证。
迁移与维护:src/main/java 是 Java 源码,src/main/resources 是模块资源,src/test 是测试。
完整索引:项目根目录 docs/项目目录说明.md。
diff --git a/yudao-module-member/目录说明.txt b/yudao-module-member/目录说明.txt
index e5c201d..d51ee93 100644
--- a/yudao-module-member/目录说明.txt
+++ b/yudao-module-member/目录说明.txt
@@ -2,8 +2,8 @@
目录:yudao-module-member
用途:会员账号、登录与个人资料;还保留模板中的积分、等级、标签等扩展。
-当前状态:源码保留,当前未启用。
-迁移与维护:计划用于老人、志愿者和家属账号;健康资料放到独立 health 模块。
+当前状态:已启用,提供前台会员账号与认证。
+迁移与维护:用于老人、志愿者和家属账号;健康资料放到独立 health 模块。
已备注子目录:
yudao-module-member-api:业务用户账号:模块调用接口。
diff --git a/yudao-server/pom.xml b/yudao-server/pom.xml
index bc850b5..c227326 100644
--- a/yudao-server/pom.xml
+++ b/yudao-server/pom.xml
@@ -32,12 +32,17 @@
${revision}
-
-
-
-
-
-
+
+
+ cn.iocoder.boot
+ yudao-module-member-biz
+ ${revision}
+
+
+ cn.iocoder.boot
+ yudao-module-health-biz
+ ${revision}
+
diff --git a/yudao-server/目录说明.txt b/yudao-server/目录说明.txt
index 75f076e..7961227 100644
--- a/yudao-server/目录说明.txt
+++ b/yudao-server/目录说明.txt
@@ -2,8 +2,8 @@
目录:yudao-server
用途:包含 Spring Boot 主启动类、应用配置和业务模块依赖,负责组装并运行服务。
-当前状态:当前加载 system 和 infra;member 等模块未加载。
-迁移与维护:启用健康业务或会员模块时,需要调整本目录 pom.xml 及根 pom.xml。
+当前状态:当前加载 system、infra、member、health。
+迁移与维护:健康账号和业务接口通过 member/health 模块装配,运行步骤见 docs/健康业务模块与身份模型.md。
完整索引:项目根目录 docs/项目目录说明.md。
此文件只用于在 IDEA 中阅读目录用途,不修改目录名称、构建依赖或程序行为。
diff --git a/yudao-ui-admin-vue3/.env b/yudao-ui-admin-vue3/.env
index f7537e2..56d8dfc 100644
--- a/yudao-ui-admin-vue3/.env
+++ b/yudao-ui-admin-vue3/.env
@@ -23,5 +23,5 @@ VITE_APP_BAIDU_CODE=
VITE_APP_DEFAULT_TENANT_ID=1
VITE_APP_DEFAULT_TENANT_NAME=
-# Only modules currently enabled by the backend. Add elder when it is implemented.
-VITE_APP_ENABLED_MODULES=system,infra
+# Modules enabled by the backend and exposed in the health administration UI.
+VITE_APP_ENABLED_MODULES=system,infra,health