diff --git a/Server/SQL/DeckUnitInfo.cs b/Server/SQL/DeckUnitInfo.cs new file mode 100644 index 0000000..6d596ce --- /dev/null +++ b/Server/SQL/DeckUnitInfo.cs @@ -0,0 +1,22 @@ +using Microsoft.EntityFrameworkCore; +using Npgsql.EntityFrameworkCore.PostgreSQL; +using System.ComponentModel.DataAnnotations.Schema; +using static System.Runtime.InteropServices.JavaScript.JSType; + +namespace Server.SQL +{ + [Table("deck_unit_info", Schema = "gamedb")] + public class DeckUnitInfo + { + public int id { get; set; } + public string uuid { get; set; } + public string mail { get; set; } + public string nickname { get; set; } + } + + public class DeckUnitInfoSQL : SQL + { + public override DbSet table { get; set; } + public override string tablename { get { return "deck_unit_info"; } } + } +} diff --git a/Server/SQL/LeaderInfo.cs b/Server/SQL/LeaderInfo.cs new file mode 100644 index 0000000..ec87742 --- /dev/null +++ b/Server/SQL/LeaderInfo.cs @@ -0,0 +1,22 @@ +using Microsoft.EntityFrameworkCore; +using Npgsql.EntityFrameworkCore.PostgreSQL; +using System.ComponentModel.DataAnnotations.Schema; +using static System.Runtime.InteropServices.JavaScript.JSType; + +namespace Server.SQL +{ + [Table("leader_info", Schema = "gamedb")] + public class LeaderInfo + { + public int id { get; set; } + public string uuid { get; set; } + public string mail { get; set; } + public string nickname { get; set; } + } + + public class LeaderInfoSQL : SQL + { + public override DbSet table { get; set; } + public override string tablename { get { return "leader_info"; } } + } +} diff --git a/Server/SQL/User.cs b/Server/SQL/User.cs new file mode 100644 index 0000000..6de7cce --- /dev/null +++ b/Server/SQL/User.cs @@ -0,0 +1,32 @@ +using Microsoft.EntityFrameworkCore; +using Npgsql.EntityFrameworkCore.PostgreSQL; +using System.ComponentModel.DataAnnotations.Schema; +using static System.Runtime.InteropServices.JavaScript.JSType; + +namespace Server.SQL +{ + [Table("user", Schema = "gamedb")] + public class User + { + public int id { get; set; } + public string uuid { get; set; } + public string mail { get; set; } + public string nickname { get; set; } + } + + public class UserSQL : SQL + { + public override DbSet table { get; set; } + public override string tablename { get { return "user"; } } + + public User SelectUuid(string uuid) + { + return table.SingleOrDefault(data => data.uuid == uuid); + } + + public User SelectMail(string mail) + { + return table.SingleOrDefault(data => data.mail == mail); + } + } +} diff --git a/Server/Service/Login.cs b/Server/Service/Login.cs new file mode 100644 index 0000000..87f4760 --- /dev/null +++ b/Server/Service/Login.cs @@ -0,0 +1,83 @@ +using Server.System; +using Newtonsoft.Json; +using Server.SQL; + +namespace Server.Service +{ + public class Login : AbstractService + { + private LoginReq req; + public override string Process() + { + UserSQL userSql = new UserSQL(); + User user; + if (req.uuid == null) + { + //최초 메일 로그인 + //게스트 로그인은 허용하지 않고 무조건 구글로그인 혹은 마스토돈 로그인만 가능하게 처리하기 + user = userSql.SelectMail(req.mail); + } + else + { + user = userSql.SelectUuid(req.uuid); + } + if(user == null) + { + #region 신규유저 생성 + user = new User(); + user.mail = req.mail; + user.uuid = Guid.NewGuid().ToString(); + userSql.Insert(user); + #endregion + #region 신규 덱, 초기 유닛 지급 + #endregion + } + + SaveQurry(userSql, user); + + return makeResp(user); + } + + public void SaveQurry(UserSQL userSql, User user) + { + userSql.Insert(user); + } + + public override Protocol ProtocolValue() => Protocol.Login; + + public override Req Requst(string json) + { + req = JsonConvert.DeserializeObject(json); + return req; + } + + private string makeResp(User user) + { + LoginResp resp = new LoginResp(); + resp.nickname = user.nickname; + resp.uuid = user.uuid; + resp.status = 200; + return resp.ToJson(); + } + + + } + + public class LoginReq : Req + { + public string mail; + public string uuid; + public override bool IsReceivedAllField() + { + if(mail == null && uuid == null) + return false; + return true; + } + } + + public class LoginResp : Resp + { + public string uuid; + public string nickname; + } +} diff --git a/Server/System/Enums.cs b/Server/System/Enums.cs index 152974d..3f8904d 100644 --- a/Server/System/Enums.cs +++ b/Server/System/Enums.cs @@ -9,6 +9,7 @@ Downlode = 100,//기획 데이터 다운로드 + Login = 101,//기획 데이터 다운로드 } public enum Error diff --git a/Server/obj/Debug/net8.0/Server.csproj.CoreCompileInputs.cache b/Server/obj/Debug/net8.0/Server.csproj.CoreCompileInputs.cache index 996739f..8e89349 100644 --- a/Server/obj/Debug/net8.0/Server.csproj.CoreCompileInputs.cache +++ b/Server/obj/Debug/net8.0/Server.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -a8963fa66f05382597e3668fc4d7b87af57a54943eab383a2b7c8418ec1b6073 +dd557d62badea6ea383f22ecfcd791495e975b22b1c7b07715ed4657eabd5e04 diff --git a/Server/obj/Debug/net8.0/Server.dll b/Server/obj/Debug/net8.0/Server.dll index 13803de..f1d322f 100644 Binary files a/Server/obj/Debug/net8.0/Server.dll and b/Server/obj/Debug/net8.0/Server.dll differ diff --git a/Server/obj/Debug/net8.0/Server.genruntimeconfig.cache b/Server/obj/Debug/net8.0/Server.genruntimeconfig.cache index db4c5b7..1ae2c79 100644 --- a/Server/obj/Debug/net8.0/Server.genruntimeconfig.cache +++ b/Server/obj/Debug/net8.0/Server.genruntimeconfig.cache @@ -1 +1 @@ -51569073025ff8d42d413f4a9e547cbb8da5c9713f87cb390a23e4fd403de519 +f07a5d637b9aa528bca131b13fc576f71d7e7a53b21695ee30255e0137559728 diff --git a/Server/obj/Debug/net8.0/apphost.exe b/Server/obj/Debug/net8.0/apphost.exe index e33639f..5f14ed1 100644 Binary files a/Server/obj/Debug/net8.0/apphost.exe and b/Server/obj/Debug/net8.0/apphost.exe differ diff --git a/Server/obj/Debug/net8.0/ref/Server.dll b/Server/obj/Debug/net8.0/ref/Server.dll index d426025..444b677 100644 Binary files a/Server/obj/Debug/net8.0/ref/Server.dll and b/Server/obj/Debug/net8.0/ref/Server.dll differ diff --git a/Server/obj/Debug/net8.0/refint/Server.dll b/Server/obj/Debug/net8.0/refint/Server.dll index d426025..444b677 100644 Binary files a/Server/obj/Debug/net8.0/refint/Server.dll and b/Server/obj/Debug/net8.0/refint/Server.dll differ