lampac/Merchant/MerchantController.cs
lampac-talks f843f04fd4 chore: initial commit 154.3
Signed-off-by: lampac-talks <lampac-talks@users.noreply.github.com>
2026-01-30 16:23:09 +03:00

98 lines
3.4 KiB
C#

using Shared;
using Shared.Models.Base;
using System;
using System.Web;
namespace Merchant
{
public class MerchantController : BaseController
{
static DateTime LastWriteTimeUsers = default;
static string _users = null;
public static void PayConfirm(string email, string merch, string order, int days = 0)
{
var lastWriteTimeUsers = System.IO.File.GetLastWriteTime("merchant/users.txt");
if (_users == null || LastWriteTimeUsers != lastWriteTimeUsers)
{
LastWriteTimeUsers = lastWriteTimeUsers;
_users = System.IO.File.ReadAllText("merchant/users.txt");
}
string users = _users;
if (!users.Contains($",{merch},{order}"))
{
DateTime ex = default;
if (days > 0)
{
if (AppInit.conf.accsdb.findUser(email) is AccsUser user)
{
ex = user.expires;
ex = ex > DateTime.UtcNow ? ex.AddDays(days) : DateTime.UtcNow.AddDays(days);
user.expires = ex;
user.group = AppInit.conf.Merchant.defaultGroup;
}
else
{
ex = DateTime.UtcNow.AddDays(days);
AppInit.conf.accsdb.users.Add(new AccsUser()
{
id = email.ToLowerAndTrim(),
expires = ex,
group = AppInit.conf.Merchant.defaultGroup
});
}
}
else
{
if (AppInit.conf.accsdb.findUser(email) is AccsUser user)
{
ex = user.expires;
ex = ex > DateTime.UtcNow ? ex.AddMonths(AppInit.conf.Merchant.accessForMonths) : DateTime.UtcNow.AddMonths(AppInit.conf.Merchant.accessForMonths);
user.expires = ex;
user.group = AppInit.conf.Merchant.defaultGroup;
}
else
{
ex = DateTime.UtcNow.AddMonths(AppInit.conf.Merchant.accessForMonths);
AppInit.conf.accsdb.users.Add(new AccsUser()
{
id = email.ToLowerAndTrim(),
expires = ex,
group = AppInit.conf.Merchant.defaultGroup
});
}
}
System.IO.File.AppendAllText("merchant/users.txt", $"{email.ToLowerAndTrim()},{ex.ToFileTimeUtc()},{merch},{order}\n");
_users += $"{email.ToLowerAndTrim()},{ex.ToFileTimeUtc()},{merch},{order}\n";
LastWriteTimeUsers = System.IO.File.GetLastWriteTime("merchant/users.txt");
}
}
public static void WriteLog(string merch, string content)
{
try
{
System.IO.File.AppendAllText($"merchant/log/{merch}.txt", content + "\n\n\n");
}
catch { }
}
public static string decodeEmail(string email)
{
if (string.IsNullOrEmpty(email))
return null;
return HttpUtility.UrlDecode(email.ToLowerAndTrim());
}
}
}