|
|
@@ -118,6 +118,43 @@ public Result<String> kickMember(@RequestBody Map<String, Long> body,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+@Operation(summary = "主动退出家庭")
|
|
|
+@PostMapping("/leave")
|
|
|
+public Result<String> leaveFamily(@RequestAttribute("userId") Long userId) {
|
|
|
+ if (userId == null) {
|
|
|
+ return Result.error("请先登录");
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ familyMemberService.leaveFamily(userId);
|
|
|
+ return Result.success("退出成功");
|
|
|
+ } catch (RuntimeException e) {
|
|
|
+ return Result.error(e.getMessage());
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+@Operation(summary = "从回收箱回收成员")
|
|
|
+@PostMapping("/recycle")
|
|
|
+public Result<String> recycleMember(@RequestBody Map<String, Long> body,
|
|
|
+ @RequestAttribute("userId") Long userId) {
|
|
|
+ if (userId == null) {
|
|
|
+ return Result.error("请先登录");
|
|
|
+ }
|
|
|
+ Long memberId = body.get("memberId");
|
|
|
+ Long targetFamilyId = body.get("targetFamilyId");
|
|
|
+ if (memberId == null) {
|
|
|
+ return Result.error("缺少成员ID");
|
|
|
+ }
|
|
|
+ if (targetFamilyId == null) {
|
|
|
+ return Result.error("缺少目标家庭ID");
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ familyMemberService.recycleMember(userId, memberId, targetFamilyId);
|
|
|
+ return Result.success("回收成功");
|
|
|
+ } catch (RuntimeException e) {
|
|
|
+ return Result.error(e.getMessage());
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
@Operation(summary = "更新成员信息")
|
|
|
@PostMapping("/update")
|
|
|
public Result<FamilyMemberVO> updateMember(@RequestBody Map<String, Object> body,
|