OshimaGameModule/OshimaWebAPI/Services/UserDailyService.cs

116 lines
4.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Milimoe.FunGame.Core.Api.Utility;
using Oshima.Core.Configs;
using Oshima.Core.Constant;
using Oshima.FunGame.WebAPI.Models;
namespace Oshima.FunGame.WebAPI.Services
{
public class UserDailyService
{
public static UserDaily GetUserDaily(long user_id)
{
if (Daily.UserDailys.TryGetValue(user_id, out string? value) && value != null && value.Trim() != "")
{
string daily = "你已看过你的今日运势:\r\n" + value;
return new UserDaily(user_id, 0, daily);
}
else
{
BaseUserDaily daily = GetUserDaily();
if (daily.daily != "")
{
Daily.UserDailys.Add(user_id, daily.daily);
Daily.SaveDaily();
return new UserDaily(user_id, (int)daily.type, "你的今日运势是:\r\n" + daily.daily);
}
return new UserDaily(0, 0, "今日运势列表为空,请联系管理员设定。");
}
}
public static OpenUserDaily GetOpenUserDaily(string user_id)
{
if (Daily.OpenUserDailys.TryGetValue(user_id, out string? value) && value != null && value.Trim() != "")
{
string daily = "你已看过你的今日运势:\r\n" + value;
return new OpenUserDaily(user_id, 0, daily);
}
else
{
BaseUserDaily daily = GetUserDaily();
if (daily.daily != "")
{
Daily.OpenUserDailys.Add(user_id, daily.daily);
Daily.SaveOpenDaily();
return new OpenUserDaily(user_id, (int)daily.type, "你的今日运势是:\r\n" + daily.daily);
}
return new OpenUserDaily(user_id, 0, "今日运势列表为空,请联系管理员设定。");
}
}
private static BaseUserDaily GetUserDaily()
{
if (Daily.GreatFortune.Count == 0 && Daily.ModerateFortune.Count == 0 && Daily.GoodFortune.Count == 0 &&
Daily.MinorFortune.Count == 0 && Daily.Misfortune.Count == 0 && Daily.GreatMisfortune.Count == 0)
{
return new BaseUserDaily(0, "今日运势列表为空,请联系管理员设定。");
}
// 抽个运势
DailyType type = Daily.DailyTypes[Random.Shared.Next(Daily.DailyTypes.Count)];
string text = type switch
{
DailyType.GreatFortune => Daily.GreatFortune[Random.Shared.Next(Daily.GreatFortune.Count)],
DailyType.ModerateFortune => Daily.ModerateFortune[Random.Shared.Next(Daily.ModerateFortune.Count)],
DailyType.GoodFortune => Daily.GoodFortune[Random.Shared.Next(Daily.GoodFortune.Count)],
DailyType.MinorFortune => Daily.MinorFortune[Random.Shared.Next(Daily.MinorFortune.Count)],
DailyType.Misfortune => Daily.Misfortune[Random.Shared.Next(Daily.Misfortune.Count)],
DailyType.GreatMisfortune => Daily.GreatMisfortune[Random.Shared.Next(Daily.GreatMisfortune.Count)],
_ => "",
};
if (text != "")
{
return new BaseUserDaily((int)type, text);
}
return new BaseUserDaily(0, "今日运势列表为空,请联系管理员设定。");
}
public static UserDaily ViewUserDaily(long user_id)
{
if (Daily.UserDailys.TryGetValue(user_id, out string? value) && value != null && value.Trim() != "")
{
return new UserDaily(user_id, 0, "TA今天的运势是\r\n" + value);
}
else
{
return new UserDaily(0, 0, "TA还没有抽取今日运势哦快去提醒TA发送【我的运势】抽取运势吧");
}
}
public static OpenUserDaily ViewOpenUserDaily(string user_id)
{
if (Daily.OpenUserDailys.TryGetValue(user_id, out string? value) && value != null && value.Trim() != "")
{
return new OpenUserDaily(user_id, 0, "TA今天的运势是\r\n" + value);
}
else
{
return new OpenUserDaily(user_id, 0, "TA还没有抽取今日运势哦快去提醒TA发送【我的运势】抽取运势吧");
}
}
public static string RemoveDaily(long user_id)
{
Daily.UserDailys.Remove(user_id);
Daily.SaveDaily();
return NetworkUtility.JsonSerialize("你的今日运势已重置。");
}
public static string RemoveOpenDaily(string user_id)
{
Daily.OpenUserDailys.Remove(user_id);
Daily.SaveOpenDaily();
return NetworkUtility.JsonSerialize("你的今日运势已重置。");
}
}
}