98 lines
3.4 KiB
C#
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());
|
|
}
|
|
}
|
|
}
|