|
@@ -160,6 +160,7 @@ private FamilyInvitationService familyInvitationService;
|
|
|
result.setRoles(user.getRoles());
|
|
result.setRoles(user.getRoles());
|
|
|
result.setFamilyId(user.getFamilyId());
|
|
result.setFamilyId(user.getFamilyId());
|
|
|
result.setNickname(user.getNickname());
|
|
result.setNickname(user.getNickname());
|
|
|
|
|
+ result.setPhone(user.getPhone());
|
|
|
result.setIsNewUser(isNewUser);
|
|
result.setIsNewUser(isNewUser);
|
|
|
result.setOpenid(openid);
|
|
result.setOpenid(openid);
|
|
|
|
|
|
|
@@ -237,6 +238,7 @@ private FamilyInvitationService familyInvitationService;
|
|
|
result.setRoles(user.getRoles());
|
|
result.setRoles(user.getRoles());
|
|
|
result.setFamilyId(user.getFamilyId());
|
|
result.setFamilyId(user.getFamilyId());
|
|
|
result.setNickname(user.getNickname());
|
|
result.setNickname(user.getNickname());
|
|
|
|
|
+ result.setPhone(user.getPhone());
|
|
|
result.setIsNewUser(isNewUser);
|
|
result.setIsNewUser(isNewUser);
|
|
|
result.setNeedsRoleSelect(isNewUser);
|
|
result.setNeedsRoleSelect(isNewUser);
|
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
@@ -295,6 +297,7 @@ private FamilyInvitationService familyInvitationService;
|
|
|
result.setRoles(user.getRoles());
|
|
result.setRoles(user.getRoles());
|
|
|
result.setFamilyId(user.getFamilyId());
|
|
result.setFamilyId(user.getFamilyId());
|
|
|
result.setNickname(user.getNickname());
|
|
result.setNickname(user.getNickname());
|
|
|
|
|
+ result.setPhone(user.getPhone());
|
|
|
result.setIsNewUser(false);
|
|
result.setIsNewUser(false);
|
|
|
result.setOpenid(openid);
|
|
result.setOpenid(openid);
|
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
@@ -328,6 +331,7 @@ private FamilyInvitationService familyInvitationService;
|
|
|
result.setRole(user.getRole());
|
|
result.setRole(user.getRole());
|
|
|
result.setFamilyId(user.getFamilyId());
|
|
result.setFamilyId(user.getFamilyId());
|
|
|
result.setNickname(user.getNickname());
|
|
result.setNickname(user.getNickname());
|
|
|
|
|
+ result.setPhone(user.getPhone());
|
|
|
result.setIsNewUser(false);
|
|
result.setIsNewUser(false);
|
|
|
result.setOpenid(openid);
|
|
result.setOpenid(openid);
|
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
@@ -556,6 +560,7 @@ private FamilyInvitationService familyInvitationService;
|
|
|
result.setRoles(user.getRoles());
|
|
result.setRoles(user.getRoles());
|
|
|
result.setFamilyId(user.getFamilyId());
|
|
result.setFamilyId(user.getFamilyId());
|
|
|
result.setNickname(user.getNickname());
|
|
result.setNickname(user.getNickname());
|
|
|
|
|
+ result.setPhone(user.getPhone());
|
|
|
result.setIsNewUser(true);
|
|
result.setIsNewUser(true);
|
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
|
populateTeacherFields(result, user);
|
|
populateTeacherFields(result, user);
|
|
@@ -632,6 +637,7 @@ private FamilyInvitationService familyInvitationService;
|
|
|
result.setRoles(user.getRoles());
|
|
result.setRoles(user.getRoles());
|
|
|
result.setFamilyId(user.getFamilyId());
|
|
result.setFamilyId(user.getFamilyId());
|
|
|
result.setNickname(user.getNickname());
|
|
result.setNickname(user.getNickname());
|
|
|
|
|
+ result.setPhone(user.getPhone());
|
|
|
result.setIsNewUser(false);
|
|
result.setIsNewUser(false);
|
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
|
populateTeacherFields(result, user);
|
|
populateTeacherFields(result, user);
|
|
@@ -788,6 +794,17 @@ private FamilyInvitationService familyInvitationService;
|
|
|
List<User> parents = userMapper.selectList(new LambdaQueryWrapper<User>()
|
|
List<User> parents = userMapper.selectList(new LambdaQueryWrapper<User>()
|
|
|
.eq(User::getFamilyId, familyId)
|
|
.eq(User::getFamilyId, familyId)
|
|
|
.eq(User::getRole, "parent"));
|
|
.eq(User::getRole, "parent"));
|
|
|
|
|
+ // 查询 family_members 以便找到当前用户记录,用于计算相对关系标签
|
|
|
|
|
+ List<FamilyMember> familyMembersForVisible = familyMemberMapper.selectList(
|
|
|
|
|
+ new LambdaQueryWrapper<FamilyMember>().eq(FamilyMember::getFamilyId, familyId));
|
|
|
|
|
+ // 查找当前用户在 family_members 中的记录(用于计算相对关系标签)
|
|
|
|
|
+ FamilyMember viewerFm = null;
|
|
|
|
|
+ for (FamilyMember fm : familyMembersForVisible) {
|
|
|
|
|
+ if (userId.equals(fm.getUserId())) {
|
|
|
|
|
+ viewerFm = fm;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
for (User p : parents) {
|
|
for (User p : parents) {
|
|
|
if (p.getId().equals(userId) || (p.getShowToFamily() != null && p.getShowToFamily() == 1)) {
|
|
if (p.getId().equals(userId) || (p.getShowToFamily() != null && p.getShowToFamily() == 1)) {
|
|
|
FamilyMemberVO vo = new FamilyMemberVO();
|
|
FamilyMemberVO vo = new FamilyMemberVO();
|
|
@@ -807,6 +824,20 @@ private FamilyInvitationService familyInvitationService;
|
|
|
vo.setShowToFamily(p.getShowToFamily() != null ? p.getShowToFamily() : 1);
|
|
vo.setShowToFamily(p.getShowToFamily() != null ? p.getShowToFamily() : 1);
|
|
|
vo.setIsAdmin(isAdmin);
|
|
vo.setIsAdmin(isAdmin);
|
|
|
vo.setIsSelf(p.getId().equals(userId));
|
|
vo.setIsSelf(p.getId().equals(userId));
|
|
|
|
|
+ // 计算 relativeLabel:与当前用户的辈分关系
|
|
|
|
|
+ if (viewerFm != null && viewerFm.getGeneration() != null) {
|
|
|
|
|
+ int viewerGen = viewerFm.getGeneration();
|
|
|
|
|
+ // 同家庭的其他家长(非创建者)generation 通常为 0,配偶/同辈
|
|
|
|
|
+ int genDiff = 0 - viewerGen; // 简化:假定 parent 在同辈(generation=0)
|
|
|
|
|
+ if (genDiff < -1) {
|
|
|
|
|
+ // target 是晚辈
|
|
|
|
|
+ vo.setRelativeLabel("male".equals(p.getGender()) ? "儿子" : "女儿");
|
|
|
|
|
+ } else if (genDiff > 1) {
|
|
|
|
|
+ vo.setRelativeLabel("male".equals(p.getGender()) ? "父亲" : "母亲");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ vo.setRelativeLabel("male".equals(p.getGender()) ? "丈夫" : "妻子");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
seenUserIds.add(p.getId());
|
|
seenUserIds.add(p.getId());
|
|
|
result.add(vo);
|
|
result.add(vo);
|
|
|
}
|
|
}
|
|
@@ -916,6 +947,7 @@ private FamilyInvitationService familyInvitationService;
|
|
|
result.setRole(user.getRole());
|
|
result.setRole(user.getRole());
|
|
|
result.setFamilyId(user.getFamilyId());
|
|
result.setFamilyId(user.getFamilyId());
|
|
|
result.setNickname(user.getNickname());
|
|
result.setNickname(user.getNickname());
|
|
|
|
|
+ result.setPhone(user.getPhone());
|
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
|
populateTeacherFields(result, user);
|
|
populateTeacherFields(result, user);
|
|
|
|
|
|
|
@@ -1486,6 +1518,7 @@ FamilyMember child = familyMemberMapper.selectById(memberId);
|
|
|
result.setRoles(user.getRoles());
|
|
result.setRoles(user.getRoles());
|
|
|
result.setFamilyId(user.getFamilyId());
|
|
result.setFamilyId(user.getFamilyId());
|
|
|
result.setNickname(user.getNickname());
|
|
result.setNickname(user.getNickname());
|
|
|
|
|
+ result.setPhone(user.getPhone());
|
|
|
result.setIsNewUser(true);
|
|
result.setIsNewUser(true);
|
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
|
populateTeacherFields(result, user);
|
|
populateTeacherFields(result, user);
|
|
@@ -1552,6 +1585,7 @@ FamilyMember child = familyMemberMapper.selectById(memberId);
|
|
|
result.setRoles(user.getRoles());
|
|
result.setRoles(user.getRoles());
|
|
|
result.setFamilyId(user.getFamilyId());
|
|
result.setFamilyId(user.getFamilyId());
|
|
|
result.setNickname(user.getNickname());
|
|
result.setNickname(user.getNickname());
|
|
|
|
|
+ result.setPhone(user.getPhone());
|
|
|
result.setIsNewUser(isNewUser);
|
|
result.setIsNewUser(isNewUser);
|
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
result.setNeedsFamily(user.getFamilyId() == null || user.getFamilyId() == 0L);
|
|
|
populateTeacherFields(result, user);
|
|
populateTeacherFields(result, user);
|