|
@@ -70,7 +70,7 @@ public class FamilyService {
|
|
|
parents.add(new FamilyMemberInfoAndRelation(fatherMemberInfoList.get(0), fatherList.get(0)));
|
|
parents.add(new FamilyMemberInfoAndRelation(fatherMemberInfoList.get(0), fatherList.get(0)));
|
|
|
}
|
|
}
|
|
|
if(!matherIdList.isEmpty()){
|
|
if(!matherIdList.isEmpty()){
|
|
|
- List<FamilyMemberInfo> matherMemberInfoList = familyMemberInfoMapper.selectByIdIn(fatherIdList);
|
|
|
|
|
|
|
+ List<FamilyMemberInfo> matherMemberInfoList = familyMemberInfoMapper.selectByIdIn(matherIdList);
|
|
|
parents.add(new FamilyMemberInfoAndRelation(matherMemberInfoList.get(0), matherList.get(0)));
|
|
parents.add(new FamilyMemberInfoAndRelation(matherMemberInfoList.get(0), matherList.get(0)));
|
|
|
}
|
|
}
|
|
|
familyCardResponse.setParents(parents);
|
|
familyCardResponse.setParents(parents);
|
|
@@ -144,27 +144,32 @@ public class FamilyService {
|
|
|
return familyCardResponse;
|
|
return familyCardResponse;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public FamilyTreeResponse getFamilyTree(Long uid, Integer generation){
|
|
|
|
|
- if(null == uid){
|
|
|
|
|
|
|
+ public FamilyTreeResponse getFamilyTree(Long uid, Long mid, Integer generation){
|
|
|
|
|
+ if(null == uid && null == mid){
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
if(null == generation){
|
|
if(null == generation){
|
|
|
// 默认取上下5代
|
|
// 默认取上下5代
|
|
|
generation = 5;
|
|
generation = 5;
|
|
|
}
|
|
}
|
|
|
- FamilyMemberInfo memberInfo = familyMemberInfoMapper.selectByUid(uid);
|
|
|
|
|
|
|
+ FamilyMemberInfo memberInfo;
|
|
|
|
|
+ if(mid != null){
|
|
|
|
|
+ memberInfo = familyMemberInfoMapper.selectByPrimaryKey(mid);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ memberInfo = familyMemberInfoMapper.selectByUid(uid);
|
|
|
|
|
+ }
|
|
|
if(null == memberInfo){
|
|
if(null == memberInfo){
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
// 取上几代
|
|
// 取上几代
|
|
|
List<FamilyTreeInfo> elderMemberInfo = familyRelationInfoMapper.selectElderGeneration(memberInfo.getId(), Lists.newArrayList(FamilyRelationEnum.FATHER.getType(), FamilyRelationEnum.MATHER.getType()), generation);
|
|
List<FamilyTreeInfo> elderMemberInfo = familyRelationInfoMapper.selectElderGeneration(memberInfo.getId(), Lists.newArrayList(FamilyRelationEnum.FATHER.getType(), FamilyRelationEnum.MATHER.getType()), generation);
|
|
|
// 取下几代
|
|
// 取下几代
|
|
|
- List<FamilyTreeInfo> offspringMemberInfo = familyRelationInfoMapper.selectOffspringGeneration(memberInfo.getId(), Lists.newArrayList(FamilyRelationEnum.SON.getType(), FamilyRelationEnum.DAUGHTER.getType()), generation);
|
|
|
|
|
|
|
+ List<FamilyTreeInfo> offspringMemberInfo = familyRelationInfoMapper.selectOffspringGeneration(memberInfo.getId(), Lists.newArrayList(FamilyRelationEnum.FATHER.getType(), FamilyRelationEnum.MATHER.getType()), generation);
|
|
|
// 取同代
|
|
// 取同代
|
|
|
List<FamilyTreeInfo> peerMemberInfo = familyRelationInfoMapper.selectPeerGeneration(memberInfo.getId());
|
|
List<FamilyTreeInfo> peerMemberInfo = familyRelationInfoMapper.selectPeerGeneration(memberInfo.getId());
|
|
|
FamilyTreeResponse familyTreeResponse = new FamilyTreeResponse();
|
|
FamilyTreeResponse familyTreeResponse = new FamilyTreeResponse();
|
|
|
familyTreeResponse.setSelf(memberInfo);
|
|
familyTreeResponse.setSelf(memberInfo);
|
|
|
- familyTreeResponse.setOffspringMemberInfo(elderMemberInfo);
|
|
|
|
|
|
|
+ familyTreeResponse.setElderMemberInfo(elderMemberInfo);
|
|
|
familyTreeResponse.setOffspringMemberInfo(offspringMemberInfo);
|
|
familyTreeResponse.setOffspringMemberInfo(offspringMemberInfo);
|
|
|
familyTreeResponse.setPeerMemberInfo(peerMemberInfo);
|
|
familyTreeResponse.setPeerMemberInfo(peerMemberInfo);
|
|
|
return familyTreeResponse;
|
|
return familyTreeResponse;
|
|
@@ -241,7 +246,7 @@ public class FamilyService {
|
|
|
relationInfo.setRelationType(FamilyRelationEnum.FATHER.getType());
|
|
relationInfo.setRelationType(FamilyRelationEnum.FATHER.getType());
|
|
|
relationInfo.setSubRelationType(request.getRelationRequest().getSubRelationType());
|
|
relationInfo.setSubRelationType(request.getRelationRequest().getSubRelationType());
|
|
|
relationInfo.setRelationValue(request.getRelationRequest().getRelationValue());
|
|
relationInfo.setRelationValue(request.getRelationRequest().getRelationValue());
|
|
|
- relationInfo.setGenerationDiff(-1);
|
|
|
|
|
|
|
+ relationInfo.setGenerationDiff(1);
|
|
|
break;
|
|
break;
|
|
|
case MATHER:
|
|
case MATHER:
|
|
|
relationInfo = new FamilyRelationInfo();
|
|
relationInfo = new FamilyRelationInfo();
|
|
@@ -250,7 +255,7 @@ public class FamilyService {
|
|
|
relationInfo.setRelationType(FamilyRelationEnum.MATHER.getType());
|
|
relationInfo.setRelationType(FamilyRelationEnum.MATHER.getType());
|
|
|
relationInfo.setSubRelationType(request.getRelationRequest().getSubRelationType());
|
|
relationInfo.setSubRelationType(request.getRelationRequest().getSubRelationType());
|
|
|
relationInfo.setRelationValue(request.getRelationRequest().getRelationValue());
|
|
relationInfo.setRelationValue(request.getRelationRequest().getRelationValue());
|
|
|
- relationInfo.setGenerationDiff(-1);
|
|
|
|
|
|
|
+ relationInfo.setGenerationDiff(1);
|
|
|
break;
|
|
break;
|
|
|
case SPOUSE:
|
|
case SPOUSE:
|
|
|
relationInfo = new FamilyRelationInfo();
|
|
relationInfo = new FamilyRelationInfo();
|
|
@@ -361,13 +366,13 @@ public class FamilyService {
|
|
|
familyMoments.setPublishUid(uid);
|
|
familyMoments.setPublishUid(uid);
|
|
|
familyMoments.setPublishTime(new Date());
|
|
familyMoments.setPublishTime(new Date());
|
|
|
familyMoments.setVisibleType(momentsRequest.getVisibleType());
|
|
familyMoments.setVisibleType(momentsRequest.getVisibleType());
|
|
|
- if(momentsRequest.getVisibleType() == 1){
|
|
|
|
|
|
|
+ if(momentsRequest.getVisibleType() == 1){ //1:支系堂派
|
|
|
familyMoments.setVisibleValue(memberInfo.getBranchFamilyHall());
|
|
familyMoments.setVisibleValue(memberInfo.getBranchFamilyHall());
|
|
|
- } else if(momentsRequest.getVisibleType() == 2){
|
|
|
|
|
|
|
+ } else if(momentsRequest.getVisibleType() == 2){ //2:聚落
|
|
|
familyMoments.setVisibleValue(memberInfo.getClusterPlace());
|
|
familyMoments.setVisibleValue(memberInfo.getClusterPlace());
|
|
|
- } else if (momentsRequest.getVisibleType() == 3) {
|
|
|
|
|
- familyMoments.setVisibleValue("1");
|
|
|
|
|
- } else if (momentsRequest.getVisibleType() == 4) {
|
|
|
|
|
|
|
+ } else if (momentsRequest.getVisibleType() == 3 && StringUtils.isNotBlank(momentsRequest.getVisibleValue())) { //3:家族内性别
|
|
|
|
|
+ familyMoments.setVisibleValue(momentsRequest.getVisibleValue());
|
|
|
|
|
+ } else if (momentsRequest.getVisibleType() == 4) { //4.出生地
|
|
|
familyMoments.setVisibleValue(memberInfo.getBirthPlace());
|
|
familyMoments.setVisibleValue(memberInfo.getBirthPlace());
|
|
|
}
|
|
}
|
|
|
familyMoments.setIsDeleted(0);
|
|
familyMoments.setIsDeleted(0);
|
|
@@ -422,13 +427,18 @@ public class FamilyService {
|
|
|
result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
|
|
result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
+ // 可见范围:0:全员 1:支系堂派 2:聚落 3:家族内男性 4:出生地
|
|
|
if(moments.getVisibleType() == 1
|
|
if(moments.getVisibleType() == 1
|
|
|
&& StringUtils.isNotBlank(memberInfo.getBranchFamilyHall())
|
|
&& StringUtils.isNotBlank(memberInfo.getBranchFamilyHall())
|
|
|
- && memberInfo.getBranchFamilyHall().equals(moments.getVisibleValue())){
|
|
|
|
|
|
|
+ && (memberInfo.getBranchFamilyHall().equals(moments.getVisibleValue())
|
|
|
|
|
+ || memberInfo.getBranchFamilyHall().contains(moments.getVisibleValue())
|
|
|
|
|
+ || moments.getVisibleValue().contains(memberInfo.getBranchFamilyHall()))){
|
|
|
result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
|
|
result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
|
|
|
} else if(moments.getVisibleType() == 2
|
|
} else if(moments.getVisibleType() == 2
|
|
|
&& StringUtils.isNotBlank(memberInfo.getClusterPlace())
|
|
&& StringUtils.isNotBlank(memberInfo.getClusterPlace())
|
|
|
- && memberInfo.getClusterPlace().equals(moments.getVisibleValue())){
|
|
|
|
|
|
|
+ && (memberInfo.getClusterPlace().equals(moments.getVisibleValue())
|
|
|
|
|
+ || memberInfo.getClusterPlace().contains(moments.getVisibleValue())
|
|
|
|
|
+ || moments.getVisibleValue().equals(memberInfo.getClusterPlace()))){
|
|
|
result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
|
|
result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
|
|
|
} else if (moments.getVisibleType() == 3
|
|
} else if (moments.getVisibleType() == 3
|
|
|
&& Integer.parseInt(moments.getVisibleValue()) == memberInfo.getSex()) {
|
|
&& Integer.parseInt(moments.getVisibleValue()) == memberInfo.getSex()) {
|
|
@@ -436,12 +446,13 @@ public class FamilyService {
|
|
|
} else if (moments.getVisibleType() == 4
|
|
} else if (moments.getVisibleType() == 4
|
|
|
&& StringUtils.isNotBlank(memberInfo.getBirthPlace())
|
|
&& StringUtils.isNotBlank(memberInfo.getBirthPlace())
|
|
|
&& (memberInfo.getBirthPlace().contains(moments.getVisibleValue())
|
|
&& (memberInfo.getBirthPlace().contains(moments.getVisibleValue())
|
|
|
|
|
+ || moments.getVisibleValue().contains(memberInfo.getBirthPlace())
|
|
|
|| memberInfo.getBirthPlace().equalsIgnoreCase(moments.getVisibleValue()))) {
|
|
|| memberInfo.getBirthPlace().equalsIgnoreCase(moments.getVisibleValue()))) {
|
|
|
result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
|
|
result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
// 最后一个id记录,用于红点提示
|
|
// 最后一个id记录,用于红点提示
|
|
|
- Long alreadyReadId = result.get(result.size() - 1).getFamilyMoments().getId();
|
|
|
|
|
|
|
+ long alreadyReadId = result.get(result.size() - 1).getFamilyMoments().getId();
|
|
|
stringRedisTemplate.boundValueOps(REDIS_MOMENTS_LAST_ID).set(String.valueOf(alreadyReadId));
|
|
stringRedisTemplate.boundValueOps(REDIS_MOMENTS_LAST_ID).set(String.valueOf(alreadyReadId));
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|