Kaynağa Gözat

commit 可见范围修改为枚举

Hai Lin 2 hafta önce
ebeveyn
işleme
bebdd882d0

+ 5 - 0
mirage-service/src/main/java/com/mirage/mirageservice/controller/FamilyController.java

@@ -8,6 +8,7 @@ import com.mirage.core.meta.AuthType;
 import com.mirage.mirageservice.domain.*;
 import com.mirage.mirageservice.enums.FamilyConfigEnum;
 import com.mirage.mirageservice.enums.FamilyRelationEnum;
+import com.mirage.mirageservice.enums.MomentsVisibleTypeEnum;
 import com.mirage.mirageservice.meta.AppContext;
 import com.mirage.mirageservice.meta.FamilyMomentsAndPublishInfo;
 import com.mirage.mirageservice.meta.MemberInfoRequest;
@@ -220,6 +221,10 @@ public class FamilyController {
         if(null == memberInfo){
             throw new AppRuntimeException(AppCode.BAD_REQUEST);
         }
+        MomentsVisibleTypeEnum visibleTypeEnum = MomentsVisibleTypeEnum.getByType(momentsRequest.getType());
+        if(null == visibleTypeEnum){
+            throw new AppRuntimeException(AppCode.BAD_REQUEST);
+        }
         // 公告判断管理员,没有设置管理员全员可发
         if(momentsRequest.getType() == 1) {
             // 没有设置失效时间默认永久有效

+ 43 - 0
mirage-service/src/main/java/com/mirage/mirageservice/enums/MomentsVisibleTypeEnum.java

@@ -0,0 +1,43 @@
+package com.mirage.mirageservice.enums;
+
+import lombok.Getter;
+
+import java.util.Objects;
+
+/**
+ * Created by hzlinhai on 2025/10/24.
+ */
+@Getter
+public enum MomentsVisibleTypeEnum {
+
+    ALL_MEMBER(0, "全员可见"),
+
+    SPECIAL_BRANCH_HALL(1, "支系堂派"),
+
+    SPECIAL_CLUSTER_PLACE(2, "聚落"),
+
+    SPECIAL_SEX(3, "性别"),
+
+    SPECIAL_BIRTH_PLACE(4, "出生地");
+
+    // 可见范围:0:全员 1:支系堂派 2:聚落 3:家族内男性 4:出生地
+
+    private Integer type;
+
+    private String name;
+
+    MomentsVisibleTypeEnum(Integer type, String name){
+        this.type = type;
+        this.name = name;
+    }
+
+    public static MomentsVisibleTypeEnum getByType(Integer type){
+        MomentsVisibleTypeEnum[] visibleTypeEnums = MomentsVisibleTypeEnum.values();
+        for(MomentsVisibleTypeEnum visibleTypeEnum : visibleTypeEnums){
+            if(Objects.equals(visibleTypeEnum.getType(), type)){
+                return visibleTypeEnum;
+            }
+        }
+        return null;
+    }
+}

+ 26 - 17
mirage-service/src/main/java/com/mirage/mirageservice/service/FamilyService.java

@@ -7,6 +7,7 @@ import com.mirage.core.meta.PageUtil;
 import com.mirage.core.utils.GsonUtil;
 import com.mirage.mirageservice.domain.*;
 import com.mirage.mirageservice.enums.FamilyRelationEnum;
+import com.mirage.mirageservice.enums.MomentsVisibleTypeEnum;
 import com.mirage.mirageservice.mapper.mysql.FamilyMemberInfoMapper;
 import com.mirage.mirageservice.mapper.mysql.FamilyMemberPhotoAlbumMapper;
 import com.mirage.mirageservice.mapper.mysql.FamilyMomentsMapper;
@@ -358,7 +359,6 @@ public class FamilyService {
         if(null == memberInfo){
             return false;
         }
-        // 可见范围:0:全员 1:支系堂派 2:聚落 3:家族内男性 4:出生地
         FamilyMoments familyMoments = new FamilyMoments();
         familyMoments.setType(momentsRequest.getType());
         familyMoments.setExpireTime(momentsRequest.getExpireTime());
@@ -366,13 +366,15 @@ public class FamilyService {
         familyMoments.setPublishUid(uid);
         familyMoments.setPublishTime(new Date());
         familyMoments.setVisibleType(momentsRequest.getVisibleType());
-        if(momentsRequest.getVisibleType() == 1){ //1:支系堂派
+        // 可见范围:0:全员 1:支系堂派 2:聚落 3:家族内男性 4:出生地
+        if(Objects.equals(momentsRequest.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_BRANCH_HALL.getType())){ //1:支系堂派
             familyMoments.setVisibleValue(memberInfo.getBranchFamilyHall());
-        } else if(momentsRequest.getVisibleType() == 2){ //2:聚落
+        } else if(Objects.equals(momentsRequest.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_CLUSTER_PLACE.getType())){ //2:聚落
             familyMoments.setVisibleValue(memberInfo.getClusterPlace());
-        } else if (momentsRequest.getVisibleType() == 3 && StringUtils.isNotBlank(momentsRequest.getVisibleValue())) { //3:家族内性别
+        } else if (Objects.equals(momentsRequest.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_SEX.getType())
+                && StringUtils.isNotBlank(momentsRequest.getVisibleValue())) { //3:家族内性别
             familyMoments.setVisibleValue(momentsRequest.getVisibleValue());
-        } else if (momentsRequest.getVisibleType() == 4) { //4.出生地
+        } else if (Objects.equals(momentsRequest.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_BIRTH_PLACE.getType())) { //4.出生地
             familyMoments.setVisibleValue(memberInfo.getBirthPlace());
         }
         familyMoments.setIsDeleted(0);
@@ -422,28 +424,29 @@ public class FamilyService {
         if(null == familyMoments || familyMoments.isEmpty()){
             return null;
         }
+        // 处理可见性
         for(FamilyMoments moments : familyMoments){
-            if(moments.getVisibleType() == 0){
+            if(Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.ALL_MEMBER.getType())){
                 result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
                 continue;
             }
             // 可见范围:0:全员 1:支系堂派 2:聚落 3:家族内男性 4:出生地
-            if(moments.getVisibleType() == 1
+            if(Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_BRANCH_HALL.getType())
                     && StringUtils.isNotBlank(memberInfo.getBranchFamilyHall())
                     && (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
+            } else if(Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_CLUSTER_PLACE.getType())
                     && StringUtils.isNotBlank(memberInfo.getClusterPlace())
                     && (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
+            } else if (Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_SEX.getType())
                     && Integer.parseInt(moments.getVisibleValue()) == memberInfo.getSex()) {
                 result.add(new FamilyMomentsAndPublishInfo(moments, memberInfo));
-            } else if (moments.getVisibleType() == 4
+            } else if (Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_BIRTH_PLACE.getType())
                     && StringUtils.isNotBlank(memberInfo.getBirthPlace())
                     && (memberInfo.getBirthPlace().contains(moments.getVisibleValue())
                     || moments.getVisibleValue().contains(memberInfo.getBirthPlace())
@@ -478,23 +481,29 @@ public class FamilyService {
             return false;
         }
         for(FamilyMoments moments : familyMoments){
-            if(moments.getVisibleType() == 0){
+            if(Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.ALL_MEMBER.getType())){
                 return true;
             }
-            if(moments.getVisibleType() == 1
+            // 可见范围:0:全员 1:支系堂派 2:聚落 3:家族内男性 4:出生地
+            if(Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_BRANCH_HALL.getType())
                     && StringUtils.isNotBlank(memberInfo.getBranchFamilyHall())
-                    && memberInfo.getBranchFamilyHall().equals(moments.getVisibleValue())){
+                    && (memberInfo.getBranchFamilyHall().equals(moments.getVisibleValue())
+                    || memberInfo.getBranchFamilyHall().contains(moments.getVisibleValue())
+                    || moments.getVisibleValue().contains(memberInfo.getBranchFamilyHall()))){
                 return true;
-            } else if(moments.getVisibleType() == 2
+            } else if(Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_CLUSTER_PLACE.getType())
                     && StringUtils.isNotBlank(memberInfo.getClusterPlace())
-                    && memberInfo.getClusterPlace().equals(moments.getVisibleValue())){
+                    && (memberInfo.getClusterPlace().equals(moments.getVisibleValue())
+                    || memberInfo.getClusterPlace().contains(moments.getVisibleValue())
+                    || moments.getVisibleValue().equals(memberInfo.getClusterPlace()))){
                 return true;
-            } else if (moments.getVisibleType() == 3
+            } else if (Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_SEX.getType())
                     && Integer.parseInt(moments.getVisibleValue()) == memberInfo.getSex()) {
                 return true;
-            } else if (moments.getVisibleType() == 4
+            } else if (Objects.equals(moments.getVisibleType(), MomentsVisibleTypeEnum.SPECIAL_BIRTH_PLACE.getType())
                     && StringUtils.isNotBlank(memberInfo.getBirthPlace())
                     && (memberInfo.getBirthPlace().contains(moments.getVisibleValue())
+                    || moments.getVisibleValue().contains(memberInfo.getBirthPlace())
                     || memberInfo.getBirthPlace().equalsIgnoreCase(moments.getVisibleValue()))) {
                 return true;
             }