|
|
@@ -163,6 +163,8 @@ find cfc-backend/src/main/java -name "*XxxService.java" -o -name "*XxxController
|
|
|
| `POST /api/family/member/list` | 成员列表(统一入口) | — |
|
|
|
| `POST /api/family/member/switch` | 切换成员视角 | — |
|
|
|
| `POST /api/family/member/kick` | 移除成员 | — |
|
|
|
+| `POST /api/family/member/leave` | 主动退出家庭(微信用户;创建者需先转让管理员) | — |
|
|
|
+| `POST /api/family/member/recycle` | 从回收箱回收成员(管理员操作) | — |
|
|
|
| `POST /api/family/member/update` | 更新成员信息 | — |
|
|
|
| `POST /api/family/member/editable` | 检查是否可编辑 | — |
|
|
|
| `POST /api/family/member/logs` | 成员变更日志 | — |
|
|
|
@@ -182,6 +184,95 @@ find cfc-backend/src/main/java -name "*XxxService.java" -o -name "*XxxController
|
|
|
| `POST /api/family/invite/validate-family-code` | **验证家庭短邀请码(落地页展示用,不创建请求)** | `inviteCode` |
|
|
|
| `POST /api/family/invite/bind-inviter` | **绑定家庭邀请人(仅首次注册调用)** | `familyInviteCode` |
|
|
|
|
|
|
+### 4.2 Family Member 接口详细(切换/回收箱)
|
|
|
+
|
|
|
+#### `POST /api/family/member/leave` — 主动退出家庭
|
|
|
+
|
|
|
+**说明**:微信登录用户主动退出当前家庭,回到自己的初始家庭(自己创建的家庭 `families.creator_id = userId`);若无初始家庭则自动创建新家庭。退出时成员资产(测评/报告/能量值/档案属性)随成员迁移到目标家庭,CF 值(`system_points`)清零丢弃留在原家庭。
|
|
|
+
|
|
|
+**约束**:
|
|
|
+- 仅微信登录用户可退出(`openid` 非 `phone:` 前缀);非微信用户调用返回错误
|
|
|
+- 家庭创建者禁止退出,需先通过 `POST /api/family/invite/transfer-admin` 转让管理员
|
|
|
+- 退出后该用户自动归属初始家庭(或新建家庭),不会处于"无家庭"状态
|
|
|
+
|
|
|
+**请求体**:无(空 body 或 `{}`)
|
|
|
+
|
|
|
+**响应**:
|
|
|
+```json
|
|
|
+{
|
|
|
+ "code": 200,
|
|
|
+ "message": "退出成功",
|
|
|
+ "data": null
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**错误码**:
|
|
|
+| code | message | 处理建议 |
|
|
|
+|------|---------|----------|
|
|
|
+| 500 | 您是家庭创建者,请先转让管理员权限后再退出 | 先转让管理员 |
|
|
|
+| 500 | 非微信登录用户不能自主退出家庭 | 非微信用户不支持主动退出 |
|
|
|
+| 500 | 用户未加入家庭 / 家庭不存在 / 未找到该用户的家庭成员记录 | 提示用户状态异常 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+#### `POST /api/family/member/kick` — 移除成员(含回收箱分流)
|
|
|
+
|
|
|
+**说明**:家庭管理员将成员移出家庭。行为按成员类型分流:
|
|
|
+- **微信登录用户**:资产迁移回其初始家庭(无则自动创建),CF 值(`system_points`)随成员带走,同时收回该家庭发放给该成员的人口券(POPULATION,来源 `member:{id}`,仅作废 AVAILABLE 状态的券)
|
|
|
+- **非微信登录用户**:进入回收箱(`family_members.status = recycled`),`users.family_id` 置空,资产保留在原家庭记录上,后续可通过 `POST /api/family/member/recycle` 回收
|
|
|
+- **无关联用户的手动成员**:直接删除记录
|
|
|
+
|
|
|
+**约束**:仅家庭创建者可踢出;不能踢出家庭创建者本人。
|
|
|
+
|
|
|
+**请求体**:
|
|
|
+```json
|
|
|
+{
|
|
|
+ "memberId": 12345
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**响应**:
|
|
|
+```json
|
|
|
+{
|
|
|
+ "code": 200,
|
|
|
+ "message": "踢出成功",
|
|
|
+ "data": null
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+#### `POST /api/family/member/recycle` — 从回收箱回收成员
|
|
|
+
|
|
|
+**说明**:目标家庭管理员将回收箱中的成员(非微信用户,`status=recycled`)重新加入指定家庭,资产(测评/报告/能量值/档案属性)迁移到目标家庭,关联用户 `family_id` 归位到目标家庭。
|
|
|
+
|
|
|
+**约束**:仅目标家庭创建者可回收;成员必须在回收箱中。
|
|
|
+
|
|
|
+**请求体**:
|
|
|
+```json
|
|
|
+{
|
|
|
+ "memberId": 12345,
|
|
|
+ "targetFamilyId": 67890
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**响应**:
|
|
|
+```json
|
|
|
+{
|
|
|
+ "code": 200,
|
|
|
+ "message": "回收成功",
|
|
|
+ "data": null
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**错误码**:
|
|
|
+| code | message | 处理建议 |
|
|
|
+|------|---------|----------|
|
|
|
+| 500 | 该成员不在回收箱中 | 仅回收箱成员可回收 |
|
|
|
+| 500 | 只有目标家庭管理员才能回收成员 | 权限不足 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
### 4.2 Family Invite 接口详细
|
|
|
|
|
|
#### `POST /api/family/invite/request-join-by-code` — 申请加入家庭
|