Bläddra i källkod

commit fix代差bug

Hai Lin 2 veckor sedan
förälder
incheckning
8458335f79

+ 9 - 4
mirage-service/src/main/java/com/mirage/mirageservice/controller/FamilyController.java

@@ -141,12 +141,14 @@ public class FamilyController {
     /**
      * 获取用户家族树.
      * @param generation (非必填,默认上下5代)
+     * @param mid(非必填,不传默认查自己,传查此mid的家族树)
      * @return
      */
     @Auth(value = AuthType.COOKIES)
     @RequestMapping(value = "/member/familyTree", method = RequestMethod.GET)
-    public Object getUserFamilyTreeMember(@RequestParam(required = false) Integer generation){
-        return familyService.getFamilyTree(AppContext.getUid(), generation);
+    public Object getUserFamilyTreeMember(@RequestParam(required = false) Integer generation,
+                                          @RequestParam(required = false) Long mid){
+        return familyService.getFamilyTree(AppContext.getUid(), mid, generation);
     }
 
     /**
@@ -280,8 +282,6 @@ public class FamilyController {
         return result;
     }
 
-    // TODO 家族圈评论、点赞
-
     /**
      * 新家族圈消息提示.
      * @return true / false
@@ -292,6 +292,11 @@ public class FamilyController {
         return familyService.newsRedDot(AppContext.getUid());
     }
 
+    // TODO 家族圈评论
+    // TODO 家族圈点赞
+    // TODO 自己发的家族圈
+
+
     private boolean checkVisibleLegitimacy(FamilyMemberInfo memberInfo, MomentsRequest momentsRequest){
         if(momentsRequest.getVisibleType() == 0){
             return true;

+ 27 - 16
mirage-service/src/main/java/com/mirage/mirageservice/service/FamilyService.java

@@ -70,7 +70,7 @@ public class FamilyService {
                 parents.add(new FamilyMemberInfoAndRelation(fatherMemberInfoList.get(0), fatherList.get(0)));
             }
             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)));
             }
             familyCardResponse.setParents(parents);
@@ -144,27 +144,32 @@ public class FamilyService {
         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;
         }
         if(null == 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){
             return null;
         }
         // 取上几代
         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());
         FamilyTreeResponse familyTreeResponse = new FamilyTreeResponse();
         familyTreeResponse.setSelf(memberInfo);
-        familyTreeResponse.setOffspringMemberInfo(elderMemberInfo);
+        familyTreeResponse.setElderMemberInfo(elderMemberInfo);
         familyTreeResponse.setOffspringMemberInfo(offspringMemberInfo);
         familyTreeResponse.setPeerMemberInfo(peerMemberInfo);
         return familyTreeResponse;
@@ -241,7 +246,7 @@ public class FamilyService {
                     relationInfo.setRelationType(FamilyRelationEnum.FATHER.getType());
                     relationInfo.setSubRelationType(request.getRelationRequest().getSubRelationType());
                     relationInfo.setRelationValue(request.getRelationRequest().getRelationValue());
-                    relationInfo.setGenerationDiff(-1);
+                    relationInfo.setGenerationDiff(1);
                     break;
                 case MATHER:
                     relationInfo = new FamilyRelationInfo();
@@ -250,7 +255,7 @@ public class FamilyService {
                     relationInfo.setRelationType(FamilyRelationEnum.MATHER.getType());
                     relationInfo.setSubRelationType(request.getRelationRequest().getSubRelationType());
                     relationInfo.setRelationValue(request.getRelationRequest().getRelationValue());
-                    relationInfo.setGenerationDiff(-1);
+                    relationInfo.setGenerationDiff(1);
                     break;
                 case SPOUSE:
                     relationInfo = new FamilyRelationInfo();
@@ -361,13 +366,13 @@ public class FamilyService {
         familyMoments.setPublishUid(uid);
         familyMoments.setPublishTime(new Date());
         familyMoments.setVisibleType(momentsRequest.getVisibleType());
-        if(momentsRequest.getVisibleType() == 1){
+        if(momentsRequest.getVisibleType() == 1){ //1:支系堂派
             familyMoments.setVisibleValue(memberInfo.getBranchFamilyHall());
-        } else if(momentsRequest.getVisibleType() == 2){
+        } else if(momentsRequest.getVisibleType() == 2){ //2:聚落
             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.setIsDeleted(0);
@@ -422,13 +427,18 @@ public class FamilyService {
                 result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
                 continue;
             }
+            // 可见范围:0:全员 1:支系堂派 2:聚落 3:家族内男性 4:出生地
             if(moments.getVisibleType() == 1
                     && 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));
             } else if(moments.getVisibleType() == 2
                     && 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));
             } else if (moments.getVisibleType() == 3
                     && Integer.parseInt(moments.getVisibleValue()) == memberInfo.getSex()) {
@@ -436,12 +446,13 @@ public class FamilyService {
             } else if (moments.getVisibleType() == 4
                     && StringUtils.isNotBlank(memberInfo.getBirthPlace())
                     && (memberInfo.getBirthPlace().contains(moments.getVisibleValue())
+                    || moments.getVisibleValue().contains(memberInfo.getBirthPlace())
                     || memberInfo.getBirthPlace().equalsIgnoreCase(moments.getVisibleValue()))) {
                 result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
             }
         }
          // 最后一个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));
         return result;
     }