@@ -1,20 +1,29 @@
|
||||
package ru.soune.nocopy.service.referral;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.soune.ReferralLevel;
|
||||
import ru.soune.ReferralLevelProvider;
|
||||
import ru.soune.nocopy.entity.referral.ReferralLevelEntity;
|
||||
import ru.soune.nocopy.repository.ReferralLevelRepository;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ReferralLevelProviderImpl implements ReferralLevelProvider {
|
||||
|
||||
private final ReferralLevelRepository referralLevelRepository;
|
||||
|
||||
@Override
|
||||
public List<ReferralLevel> getAvailableReferralLevels() {
|
||||
// TODO
|
||||
List<ReferralLevelEntity> entities = referralLevelRepository.findAll();
|
||||
|
||||
return new ArrayList<ReferralLevel>();
|
||||
return entities.stream()
|
||||
.map(this::createReferralLevel)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -24,8 +33,51 @@ public class ReferralLevelProviderImpl implements ReferralLevelProvider {
|
||||
|
||||
@Override
|
||||
public ReferralLevel getReferralLevelById(String levelId) {
|
||||
// TODO
|
||||
return createReferralLevel(referralLevelRepository.findById(levelId));
|
||||
}
|
||||
|
||||
return null;
|
||||
private ReferralLevel createReferralLevel(ReferralLevelEntity entity) {
|
||||
return new ReferralLevel() {
|
||||
@Override
|
||||
public String getId() {
|
||||
return entity.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return entity.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getShare() {
|
||||
return entity.getRewardPercentage();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMinInvitee() {
|
||||
return entity.getMinInvitees();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInvitee() {
|
||||
switch (entity.getId()) {
|
||||
case "bronze": return 9;
|
||||
case "silver": return 49;
|
||||
case "gold": return 99;
|
||||
case "platinum": return Integer.MAX_VALUE;
|
||||
default: return Integer.MAX_VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNext() {
|
||||
switch (entity.getId()) {
|
||||
case "bronze": return "silver";
|
||||
case "silver": return "gold";
|
||||
case "gold": return "platinum";
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user