|
|
@@ -0,0 +1,34 @@
|
|
|
+package com.fs.course.support;
|
|
|
+
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 看课项目等价关系:重粉判断时视为同一项目。
|
|
|
+ */
|
|
|
+public final class CourseProjectEquivalence {
|
|
|
+
|
|
|
+ /** 项目 1 与 28 为同一业务项目 */
|
|
|
+ private static final List<Long> PROJECT_GROUP_1_AND_28 = Collections.unmodifiableList(Arrays.asList(1L, 28L));
|
|
|
+
|
|
|
+ private CourseProjectEquivalence() {
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回与给定项目 ID 等价的全部项目 ID(用于查询、判重)。
|
|
|
+ */
|
|
|
+ public static List<Long> equivalentProjectIds(Long projectId) {
|
|
|
+ if (projectId == null || projectId == 0L) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ if (projectId.equals(1L) || projectId.equals(28L)) {
|
|
|
+ return PROJECT_GROUP_1_AND_28;
|
|
|
+ }
|
|
|
+ return Collections.singletonList(projectId);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static boolean isInProjectGroup1And28(Long projectId) {
|
|
|
+ return projectId != null && (projectId.equals(1L) || projectId.equals(28L));
|
|
|
+ }
|
|
|
+}
|