修正成就查询
This commit is contained in:
@@ -298,7 +298,7 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("current", null);
|
||||
payload.put("next", null);
|
||||
rd.success("无等级成就", payload);
|
||||
rd.success("无等级成就配置", payload);
|
||||
return rd;
|
||||
}
|
||||
|
||||
@@ -315,36 +315,35 @@ public class ACHAchievementServiceImpl implements AchievementService {
|
||||
Comparator.nullsFirst(Comparator.naturalOrder())
|
||||
);
|
||||
|
||||
// 当前:已获得的最高等级,否则取最低等级
|
||||
// 当前:已获得的最高等级
|
||||
List<AchievementVO> obtained = levels.stream()
|
||||
.filter(a -> Boolean.TRUE.equals(a.getObtained()))
|
||||
.sorted(byLevelAsc.reversed())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
AchievementVO current;
|
||||
final float currentLevel; // 用户实际等级
|
||||
|
||||
if (!obtained.isEmpty()) {
|
||||
// 已获得等级成就,取最高等级
|
||||
current = obtained.get(0);
|
||||
currentLevel = current.getLevel() != null ? current.getLevel() : 1.0f;
|
||||
} else {
|
||||
current = levels.stream()
|
||||
.sorted(byLevelAsc)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
// 没有获得任何等级成就,默认 Lv1.0
|
||||
current = null;
|
||||
currentLevel = 1.0f;
|
||||
}
|
||||
|
||||
// 下一等级:比当前等级大的最小等级
|
||||
AchievementVO next = null;
|
||||
if (current != null && current.getLevel() != null) {
|
||||
float curLevel = current.getLevel();
|
||||
next = levels.stream()
|
||||
.filter(a -> (a.getLevel() != null) && a.getLevel() > curLevel)
|
||||
.sorted(byLevelAsc)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
}
|
||||
AchievementVO next = levels.stream()
|
||||
.filter(a -> (a.getLevel() != null) && a.getLevel() > currentLevel)
|
||||
.sorted(byLevelAsc)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("current", current);
|
||||
payload.put("next", next);
|
||||
payload.put("current", current); // 当前获得的最高等级成就,null 表示默认 Lv1.0
|
||||
payload.put("next", next); // 下一个等级成就
|
||||
rd.success("获取等级状态成功", payload);
|
||||
return rd;
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user