|
|
@@ -0,0 +1,47 @@
|
|
|
+package com.ydtech.modules.partner.utils;
|
|
|
+
|
|
|
+import com.ydtech.modules.partner.model.PartnerUser;
|
|
|
+import com.ydtech.modules.partner.model.vo.MyUserLevel;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+
|
|
|
+public class UnlockedStatusUtils {
|
|
|
+
|
|
|
+ public static void handleUnregisteredCase(Integer max, Integer grade, Map<Integer, PartnerUser> userMap, MyUserLevel level) {
|
|
|
+ if (isUnlockedForUnregistered(max, grade, userMap)) {
|
|
|
+ level.setUnlockedStatus(true);
|
|
|
+ }
|
|
|
+ level.setProportional("0");
|
|
|
+ }
|
|
|
+
|
|
|
+ public static boolean isUnlockedForUnregistered(Integer max, Integer grade, Map<Integer, PartnerUser> userMap) {
|
|
|
+ if (grade == null) return false;
|
|
|
+ if (max == null) {
|
|
|
+ return grade == (Collections.min(userMap.keySet()) - 1);
|
|
|
+ } else {
|
|
|
+ return grade == (max + 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void handleRegisteredCase(Integer max, Integer partnerGrade, MyUserLevel level) {
|
|
|
+ if (isUnlockedForRegistered(max, partnerGrade)) {
|
|
|
+ level.setUnlockedStatus(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static boolean isUnlockedForRegistered(Integer max, Integer partnerGrade) {
|
|
|
+ if (partnerGrade == null) return false;
|
|
|
+ if (max == null) return true;
|
|
|
+
|
|
|
+ switch (max) {
|
|
|
+ case 3:
|
|
|
+ case 4:
|
|
|
+ return partnerGrade == 3 || partnerGrade == 4;
|
|
|
+ case 2:
|
|
|
+ return partnerGrade == 2 || partnerGrade == 3 || partnerGrade == 4;
|
|
|
+ default:
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|