58 lines
2.0 KiB
C#
58 lines
2.0 KiB
C#
using Fengling.RiskControl.Domain.Aggregates.RiskRules;
|
|
|
|
namespace Fengling.RiskControl.Infrastructure.SeedData;
|
|
|
|
public static class RiskControlSeedData
|
|
{
|
|
public static IEnumerable<RiskRule> GetDefaultRules()
|
|
{
|
|
yield return RiskRule.Create(
|
|
"高频抽奖限制",
|
|
"限制单日抽奖次数,防止沉迷",
|
|
RiskRuleType.FrequencyLimit,
|
|
RiskRuleAction.Block,
|
|
"""{"maxCount": 10, "windowMinutes": 1440, "points": 30}""",
|
|
priority: 10);
|
|
|
|
yield return RiskRule.Create(
|
|
"单次大额抽奖限制",
|
|
"单次抽奖投入不能超过1000积分",
|
|
RiskRuleType.AmountLimit,
|
|
RiskRuleAction.Block,
|
|
"""{"maxAmount": 1000, "points": 40}""",
|
|
priority: 9);
|
|
|
|
yield return RiskRule.Create(
|
|
"设备异常检测",
|
|
"同一设备频繁切换账号",
|
|
RiskRuleType.DeviceFingerprint,
|
|
RiskRuleAction.RequireVerification,
|
|
"""{"maxAccountsPerDevice": 3, "windowMinutes": 60, "points": 50}""",
|
|
priority: 8);
|
|
|
|
yield return RiskRule.Create(
|
|
"IP地址异常",
|
|
"同一IP短时间内大量请求",
|
|
RiskRuleType.VelocityCheck,
|
|
RiskRuleAction.RateLimit,
|
|
"""{"maxRequests": 100, "windowMinutes": 1, "points": 20}""",
|
|
priority: 7);
|
|
|
|
yield return RiskRule.Create(
|
|
"行为模式异常",
|
|
"检测非正常用户行为模式",
|
|
RiskRuleType.BehaviorPattern,
|
|
RiskRuleAction.FlagForReview,
|
|
"""{"patterns": ["rapid_clicks", "pattern_sequences"]}""",
|
|
priority: 5);
|
|
|
|
yield return RiskRule.Create(
|
|
"VIP会员白名单",
|
|
"VIP会员享受较低风控等级",
|
|
RiskRuleType.Whitelist,
|
|
RiskRuleAction.Allow,
|
|
"""{"vipLevels": [3, 4, 5]}""",
|
|
priority: 100);
|
|
}
|
|
}
|