|
|
@@ -65,6 +65,9 @@ private FamilyInvitationService familyInvitationService;
|
|
|
@Resource
|
|
|
private UserProfileHistoryMapper userProfileHistoryMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private FamilyMemberService familyMemberService;
|
|
|
+
|
|
|
public LoginResultDTO wechatLogin(WechatLoginDTO dto) {
|
|
|
// 1. 通过code获取openid
|
|
|
Map<String, String> sessionData = wechatService.code2Session(dto.getCode());
|
|
|
@@ -667,7 +670,7 @@ private FamilyInvitationService familyInvitationService;
|
|
|
Long creatorId = (family != null) ? family.getCreatorId() : null;
|
|
|
boolean isAdmin = creatorId != null && creatorId.equals(userId);
|
|
|
|
|
|
- // 家长:show_to_family=1 的同家庭家长
|
|
|
+ // 家长:show_to_family=1 的同家庭家长(自己始终可见)
|
|
|
List<User> parents = userMapper.selectList(new LambdaQueryWrapper<User>()
|
|
|
.eq(User::getFamilyId, familyId)
|
|
|
.eq(User::getRole, "parent"));
|
|
|
@@ -675,33 +678,30 @@ private FamilyInvitationService familyInvitationService;
|
|
|
if (p.getId().equals(userId) || (p.getShowToFamily() != null && p.getShowToFamily() == 1)) {
|
|
|
FamilyMemberVO vo = new FamilyMemberVO();
|
|
|
vo.setId(p.getId());
|
|
|
+ vo.setSource("parent");
|
|
|
+ vo.setUserId(p.getId());
|
|
|
vo.setNickname(p.getNickname());
|
|
|
vo.setAvatar(p.getAvatar());
|
|
|
+ vo.setPhone(p.getPhone());
|
|
|
+ vo.setGender(p.getGender());
|
|
|
vo.setEffectiveRole("parent");
|
|
|
vo.setMemberType("parent");
|
|
|
vo.setRoleLabel(p.getFamilyRole() != null ? p.getFamilyRole() : "家长");
|
|
|
vo.setTotalPoints(p.getTotalPoints());
|
|
|
vo.setShowToFamily(p.getShowToFamily() != null ? p.getShowToFamily() : 1);
|
|
|
vo.setIsAdmin(isAdmin);
|
|
|
+ vo.setIsSelf(p.getId().equals(userId));
|
|
|
result.add(vo);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 孩子:show_to_family=1 的同家庭孩子
|
|
|
- List<FamilyMember> children = familyMemberMapper.selectList(new LambdaQueryWrapper<FamilyMember>()
|
|
|
- .eq(FamilyMember::getFamilyId, familyId));
|
|
|
- for (FamilyMember c : children) {
|
|
|
- if (c.getShowToFamily() == null || c.getShowToFamily() == 1) {
|
|
|
- FamilyMemberVO vo = new FamilyMemberVO();
|
|
|
- vo.setId(c.getId());
|
|
|
- vo.setNickname(c.getNickname());
|
|
|
- vo.setAvatar("");
|
|
|
- vo.setEffectiveRole("child");
|
|
|
- vo.setMemberType("child");
|
|
|
- vo.setRoleLabel("孩子");
|
|
|
- vo.setTotalPoints(c.getTotalPoints());
|
|
|
- vo.setShowToFamily(c.getShowToFamily() != null ? c.getShowToFamily() : 1);
|
|
|
- vo.setIsAdmin(isAdmin);
|
|
|
+ // 孩子/其他成员:复用 FamilyMemberService.listMembers 的完整字段计算(关系标签/辈分/配偶/信任分等),
|
|
|
+ // 再按 show_to_family 过滤(自己始终可见)
|
|
|
+ List<FamilyMemberVO> members = familyMemberService.listMembers(userId);
|
|
|
+ for (FamilyMemberVO vo : members) {
|
|
|
+ boolean isSelf = vo.getUserId() != null && vo.getUserId().equals(userId);
|
|
|
+ if (isSelf || vo.getShowToFamily() == null || vo.getShowToFamily() == 1) {
|
|
|
+ vo.setIsSelf(isSelf);
|
|
|
result.add(vo);
|
|
|
}
|
|
|
}
|