|
|
@@ -27,6 +27,7 @@ import java.util.ArrayList;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
import com.etotem.cfc.util.SortUtil;
|
|
|
|
|
|
@@ -246,6 +247,9 @@ public class FamilyMemberService {
|
|
|
vo.setIsSelf(viewerMember != null && viewerMember.getId().equals(fm.getId()));
|
|
|
vo.setLastInteractionAt(fm.getLastInteractionAt());
|
|
|
vo.setStreakDays(fm.getStreakDays());
|
|
|
+ // 兼容旧前端字段
|
|
|
+ vo.setMemberId(fm.getId());
|
|
|
+ vo.setName(fm.getNickname());
|
|
|
result.add(vo);
|
|
|
}
|
|
|
|
|
|
@@ -622,4 +626,33 @@ public class FamilyMemberService {
|
|
|
.last("LIMIT 1"));
|
|
|
return count > 0;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取家庭成员列表(含家庭信息),兼容旧接口 /api/family/user/family-members 的 Map 返回结构。
|
|
|
+ * 返回: { familyId, familyName, inviteCode, creatorId, parents[], children[] }
|
|
|
+ */
|
|
|
+ public Map<String, Object> listMembersWithFamily(Long userId) {
|
|
|
+ Map<String, Object> result = new java.util.HashMap<>();
|
|
|
+ User user = userMapper.selectById(userId);
|
|
|
+ if (user == null) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ Long familyId = user.getFamilyId();
|
|
|
+ if (familyId == null) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ Family family = familyMapper.selectById(familyId);
|
|
|
+ if (family == null) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ result.put("familyId", familyId);
|
|
|
+ result.put("familyName", family.getName());
|
|
|
+ result.put("inviteCode", family.getInviteCode());
|
|
|
+ result.put("creatorId", family.getCreatorId());
|
|
|
+ result.put("parents", userMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<User>().eq(User::getFamilyId, familyId).eq(User::getRole, "parent")));
|
|
|
+ result.put("children", familyMemberMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<FamilyMember>().eq(FamilyMember::getFamilyId, familyId)));
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|