update v0.0.2 twa sys
This commit is contained in:
@ -1,7 +1,11 @@
|
||||
|
||||
using AppLibs.Libs;
|
||||
using Dapper;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Razor.Language.Intermediate;
|
||||
using Microsoft.VisualBasic;
|
||||
using MySqlConnector;
|
||||
using Newtonsoft.Json;
|
||||
using System.Data.Common;
|
||||
using System.Xml.Linq;
|
||||
using TWASys_App.Dapper.AExtentions;
|
||||
@ -11,6 +15,7 @@ namespace TWASys_App.Models
|
||||
{
|
||||
public class StorageModel : ModelBase
|
||||
{
|
||||
public long IdStorageServer { set; get; }
|
||||
public long StorageTypeID { set; get; }
|
||||
|
||||
public string ControllerName { set; get; } = "";
|
||||
@ -19,6 +24,7 @@ namespace TWASys_App.Models
|
||||
|
||||
public ICollection<ValidationDomain> ValidationDomains { set; get; } = new List<ValidationDomain>();
|
||||
|
||||
public int Size { set; get; };
|
||||
public string IpPublic { set; get; } = "";
|
||||
|
||||
public string IpPrivatev4 { set; get; } = "";
|
||||
@ -54,6 +60,45 @@ namespace TWASys_App.Models
|
||||
|
||||
public string RTokenValue { set; get; } = "";
|
||||
|
||||
public async Task<IActionResult> GetStorages(int status = 0)
|
||||
{
|
||||
await using (var con = new MySqlConnection(DBManagement.GetConnectionString()))
|
||||
{
|
||||
string sql = @"
|
||||
WITH d AS (
|
||||
SELECT *
|
||||
FROM StorageServer
|
||||
WHERE status = @status
|
||||
ORDER BY idStorageServer
|
||||
LIMIT @PageSize OFFSET @Offset)
|
||||
SELECT d.*,t.typeName FROM d
|
||||
JOIN TypeStorageServer t ON t.idTypeStorageServer = d.idTypeStorageServer;
|
||||
";
|
||||
await con.OpenAsync();
|
||||
if (IsFirstQuery)
|
||||
{
|
||||
await using (var multi = await con
|
||||
.QueryMultipleAsync("SELECT COUNT(*) FROM StorageServer;" + sql, new { Offset = (PageNumber - 1) * PageSize, PageSize = this.PageSize, status = status }))
|
||||
{
|
||||
int maxRow = await multi.ReadSingleAsync<int>();
|
||||
var types = await multi.ReadAsync();
|
||||
return new JsonResult(new
|
||||
{
|
||||
mrows = maxRow,
|
||||
data = JsonConvert.SerializeObject(types)
|
||||
});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var t = (await con.QueryAsync(sql, new { Offset = (PageNumber - 1) * PageSize, PageSize = this.PageSize, status = status }));
|
||||
return new JsonResult(new
|
||||
{
|
||||
data = JsonConvert.SerializeObject(t)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
public override async Task<MessageHeader> AddAsync()
|
||||
{
|
||||
await using var con = new MySqlConnector.MySqlConnection(DBManagement.GetConnectionString(true));
|
||||
@ -114,6 +159,12 @@ namespace TWASys_App.Models
|
||||
ExpireDate = DateTime.UtcNow.AddMonths(3),
|
||||
Status = 0
|
||||
};
|
||||
var ssAT = new ServerAuthorization_has_Token
|
||||
{
|
||||
IdToken = TokenID,
|
||||
Count = 1,
|
||||
Status = 0
|
||||
};
|
||||
var rT = new RefreshToken
|
||||
{
|
||||
IdRefreshToken = RTokenID,
|
||||
@ -129,6 +180,7 @@ namespace TWASys_App.Models
|
||||
bi.AddRow(ss_lc);
|
||||
bi.AddRow(serverAuthorization);
|
||||
bi.AddRow(token);
|
||||
bi.AddRow(ssAT);
|
||||
bi.AddRow(rT);
|
||||
await bi.ExcuteQuery();
|
||||
await trans.CommitAsync();
|
||||
@ -155,5 +207,73 @@ namespace TWASys_App.Models
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public async Task<MessageHeader> UpdateStorageSize()
|
||||
{
|
||||
var fMess = new MessageHeader();
|
||||
string sql = @"UPDATE StorageServer
|
||||
SET Size = @size
|
||||
Where idStorageServer = @idStorage;
|
||||
WITH sa_need AS (
|
||||
SELECT idServerAuthorization
|
||||
FROM ServerAuthorization
|
||||
WHERE idStorageServer = @idStorage
|
||||
),
|
||||
maxc AS (
|
||||
SELECT idServerAuthorization, MAX(`count`) AS max_count
|
||||
FROM ServerAuthorization_has_Token
|
||||
WHERE idServerAuthorization IN (SELECT idServerAuthorization FROM sa_need)
|
||||
GROUP BY idServerAuthorization
|
||||
)
|
||||
SELECT
|
||||
sa.idServerAuthorization,
|
||||
st.idToken,
|
||||
t.accessToken
|
||||
FROM sa_need sa
|
||||
JOIN maxc m ON m.idServerAuthorization = sa.idServerAuthorization
|
||||
JOIN ServerAuthorization_has_Token st
|
||||
ON st.idServerAuthorization = sa.idServerAuthorization AND st.`count` = m.max_count
|
||||
LEFT JOIN Token t ON t.idToken = st.idToken;
|
||||
WITH sa_need AS (
|
||||
SELECT idServerAuthorization
|
||||
FROM ServerAuthorization
|
||||
WHERE idStorageServer = @idStorage)
|
||||
SELECT r.*
|
||||
FROM sa_need s
|
||||
JOIN RefreshToken r
|
||||
ON r.idServerAuthorization = s.idServerAuthorization
|
||||
WHERE r.idRefreshToken = (
|
||||
SELECT r2.idRefreshToken
|
||||
FROM RefreshToken r2
|
||||
WHERE r2.idServerAuthorization = s.idServerAuthorization and r2.status = 0
|
||||
ORDER BY r2.expireDate DESC
|
||||
LIMIT 1);";
|
||||
try
|
||||
{
|
||||
await using var con = new MySqlConnection(DBManagement.GetConnectionString(true));
|
||||
await con.OpenAsync();
|
||||
using var trans = await con.BeginTransactionAsync();
|
||||
using var multi = await con.QueryMultipleAsync(sql, new { size = Size, id = IdStorageServer }, trans);
|
||||
IList<dynamic> tokens = (await multi.ReadAsync()).AsList();
|
||||
IList<dynamic> rTokens = (await multi.ReadAsync()).AsList();
|
||||
using (var writer = new StreamWriter(Path.GetFullPath("Json/dataServer.json"), false))
|
||||
{
|
||||
await writer.WriteAsync(JsonConvert.SerializeObject(new
|
||||
{
|
||||
idRToken = "",
|
||||
rToken = "",
|
||||
cDate = "",
|
||||
eDate = "",
|
||||
token = "",
|
||||
idToken = ""
|
||||
}));
|
||||
}
|
||||
}
|
||||
catch (DbException ex)
|
||||
{
|
||||
|
||||
}
|
||||
return fMess;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
8
TWASys-App/Models/UserModel.cs
Normal file
8
TWASys-App/Models/UserModel.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace TWASys_App.Models
|
||||
{
|
||||
public class UserModel
|
||||
{
|
||||
public string Username { set; get; } = "";
|
||||
public string Password { set; get; } = "";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user