|
|
@@ -1315,6 +1315,30 @@ FamilyMember child = familyMemberMapper.selectById(memberId);
|
|
|
user.setUpdatedAt(new Date());
|
|
|
userMapper.updateById(user);
|
|
|
log.info("安全兜底:为用户 {} 自动创建家庭 {}", user.getId(), family.getId());
|
|
|
+ // 创建人自己也是家庭成员
|
|
|
+ addCreatorAsMember(user, family.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addCreatorAsMember(User user, Long familyId) {
|
|
|
+ // 已存在则跳过(兜底幂等)
|
|
|
+ LambdaQueryWrapper<FamilyMember> check = new LambdaQueryWrapper<FamilyMember>()
|
|
|
+ .eq(FamilyMember::getFamilyId, familyId)
|
|
|
+ .eq(FamilyMember::getUserId, user.getId());
|
|
|
+ if (familyMemberMapper.selectCount(check) > 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ FamilyMember member = new FamilyMember();
|
|
|
+ member.setFamilyId(familyId);
|
|
|
+ member.setUserId(user.getId());
|
|
|
+ member.setNickname(user.getNickname() != null ? user.getNickname() : "我");
|
|
|
+ member.setPhone(user.getPhone());
|
|
|
+ member.setAvatar(user.getAvatar());
|
|
|
+ member.setGender(user.getGender());
|
|
|
+ member.setGeneration(0);
|
|
|
+ member.setTotalPoints(0);
|
|
|
+ member.setCreatedAt(new Date());
|
|
|
+ member.setUpdatedAt(new Date());
|
|
|
+ familyMemberMapper.insert(member);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1342,6 +1366,7 @@ FamilyMember child = familyMemberMapper.selectById(memberId);
|
|
|
Family family = new Family();
|
|
|
family.setName(familyName);
|
|
|
family.setInviteCode(generateInviteCode());
|
|
|
+ family.setCreatorId(userId);
|
|
|
family.setCreatedAt(new Date());
|
|
|
family.setUpdatedAt(new Date());
|
|
|
familyMapper.insert(family);
|
|
|
@@ -1349,6 +1374,8 @@ FamilyMember child = familyMemberMapper.selectById(memberId);
|
|
|
user.setFamilyId(family.getId());
|
|
|
user.setUpdatedAt(new Date());
|
|
|
userMapper.updateById(user);
|
|
|
+ // 创建人自己也是家庭成员(generation=0 表示创建者)
|
|
|
+ addCreatorAsMember(user, family.getId());
|
|
|
return family.getId();
|
|
|
}
|
|
|
|