diff --git a/server/HoneyBox/src/HoneyBox.Core/Services/QuanYiService.cs b/server/HoneyBox/src/HoneyBox.Core/Services/QuanYiService.cs index ea8b3829..5ff73066 100644 --- a/server/HoneyBox/src/HoneyBox.Core/Services/QuanYiService.cs +++ b/server/HoneyBox/src/HoneyBox.Core/Services/QuanYiService.cs @@ -407,13 +407,34 @@ public class QuanYiService : IQuanYiService var title = levelTitles.GetValueOrDefault(ouQiLevel, "普通"); var nextLevel = ouQiLevel + 1; var nextOuQi = levelThresholds.GetValueOrDefault(nextLevel, 99999); + var currentLevelOuQi = levelThresholds.GetValueOrDefault(ouQiLevel, 0); + + // 计算差值和进度 + int cha; + int jindu; + if (nextLevel > 7) + { + // 已满级 + cha = -1; + jindu = 100; + } + else + { + cha = Math.Max(0, nextOuQi - ouQi); + // 计算当前等级内的进度 + var levelRange = nextOuQi - currentLevelOuQi; + var progress = ouQi - currentLevelOuQi; + jindu = levelRange > 0 ? Math.Min(100, Math.Max(0, progress * 100 / levelRange)) : 0; + } return new QuanYiLevelInfo { Level = ouQiLevel, Title = title, OuQi = ouQi, - NextOuQi = nextOuQi + NextOuQi = nextOuQi, + Cha = cha, + Jindu = jindu }; } diff --git a/server/HoneyBox/src/HoneyBox.Model/Models/Vip/QuanYiModels.cs b/server/HoneyBox/src/HoneyBox.Model/Models/Vip/QuanYiModels.cs index e6e896eb..6b30bbb5 100644 --- a/server/HoneyBox/src/HoneyBox.Model/Models/Vip/QuanYiModels.cs +++ b/server/HoneyBox/src/HoneyBox.Model/Models/Vip/QuanYiModels.cs @@ -60,6 +60,18 @@ public class QuanYiLevelInfo /// [JsonPropertyName("next_ou_qi")] public int NextOuQi { get; set; } + + /// + /// 距离下一等级还差多少欧气值(-1表示已满级) + /// + [JsonPropertyName("cha")] + public int Cha { get; set; } + + /// + /// 当前等级进度百分比(0-100) + /// + [JsonPropertyName("jindu")] + public int Jindu { get; set; } } ///