From b340dfdc12ddafe641c94a7b4d2729cd3bfd01a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=8C=90=EB=8F=8C?= Date: Thu, 30 Nov 2023 22:14:43 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=A0=EA=B7=9C=20db=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/SQL/DeckUnitInfo.cs | 22 +++++ Server/SQL/LeaderInfo.cs | 22 +++++ Server/SQL/User.cs | 32 +++++++ Server/Service/Login.cs | 83 ++++++++++++++++++ Server/System/Enums.cs | 1 + .../Server.csproj.CoreCompileInputs.cache | 2 +- Server/obj/Debug/net8.0/Server.dll | Bin 30208 -> 32256 bytes .../net8.0/Server.genruntimeconfig.cache | 2 +- Server/obj/Debug/net8.0/apphost.exe | Bin 140800 -> 140800 bytes Server/obj/Debug/net8.0/ref/Server.dll | Bin 10752 -> 11776 bytes Server/obj/Debug/net8.0/refint/Server.dll | Bin 10752 -> 11776 bytes 11 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 Server/SQL/DeckUnitInfo.cs create mode 100644 Server/SQL/LeaderInfo.cs create mode 100644 Server/SQL/User.cs create mode 100644 Server/Service/Login.cs 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 13803deb9233c808041a1a35ec4d827c492d80cb..f1d322fae8d342931849a1cedb9b5b94d1531516 100644 GIT binary patch delta 15280 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 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 e33639ff221d5749e4c8cb57c909c173f76bdb84..5f14ed181e9565b579ab27a29ee54894be2648e3 100644 GIT binary patch delta 99 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 Iq4mIj164LJ-~a#s delta 4256 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 Iq4mIj164LJ-~a#s delta 4256 zcma)A4Qv$06@D{!ySFxQJ`OO(Hum|>fcddyY;!IU6BAtVV=4R^g*p(QZ7v{ap%94@ z6t67@)U=8MEQS2hrbP`BiAWvOlr#->Wpr($By9*$6(Z6&ZqlSFf=Wpgs4De)Z*T9; zM3uVMeEYuly_q*VJ2N}y-g|pD9R7Z^`PiLLQ~LUVqBKs`5|zS{?>awhKXPVc@NhfP zYIbxG9X5_sOd8)yG#>l`2&GPip66^*tMfl8fvXv%)Ok_ORZ-`CHA__un);RsrGENI zaAe2I6&Ln=*>U3SveknV{nu47T|@(Xtw7Oa(1vEB2%1r7w9#2(RxLRnB#QMARTdE4 zuwbu$V9)mN+`pG=O)etx;~r~UPergpY%gzH*@Al&_*dF_$(&nljlwz?_H$vIXu09uO&af?8!+jpV5P4pP(ZB#j@%-igm2Vu(tiJs43pmR z0c|?UH+n&Eo(QYN{@lk6-O`K!Yae31A)bA-&&a2gwZ$~)o6=~H!RlGT7c|=sO0Cs2 zH;_;L68Rvy5~O45l0QsSd|yx@ZKGFpA=$sN`1Z8VW*AVMjK6}BI;8i8YQk6rfH&4fZ5bEy91F;u&0Z*L_LeHl~P3506mMrFQr+M za3$D&uo}^>npc!v1R59mFlZ^*B4IUP5wJUi<>@PmBl(#_^u2WCQehPmIh~dX+i!7X zIkgCTOd`uMg}L4ui7cm8(wUi7iPdByv{l3@OsRs_$Z-GJbXl8dL*%ke!fqHP);2`8 zQ$I%LuZZV*o5@!ZqHes7CWSO=zgjds$; z-X3cg@T$p}r*~!ir;WYvoY9QG4KTi?7|CQT7TgSvNyX+q;2R2ciL9N#us$I6UX1yl z=m5oS`Xk?Hi^2G|*na^Q(kjLHDEx)=vF-srrTTy^=0P;Uev|G)jAy&awpkqc`@kc> z%fL82K}TULI)TXRnmaLUJ_CHrIt{dw(xYD~78utwV<6~IQ5efkd5lH^13By;U^=4} znFHj@umUiDhTUTgU?rs6q*Y*MnjNRh#!D2iGxR*Dl?jci0m{p;TCn^K8)ppAIFCt3 zdAsE+W&Fbbifq0vdp9tY!%kQi!Q9R~EcGUk?b4L`wR#P!bgbxUpBqE}L*sFJGo!hq z7R>3|Wvq3#mE*L|c#qdWGk5Jc)mbB0+-vMKeK+tCQ(v{EA zRCwN_bn#j>z3q|?(UI;f^G+VH?#wdl zi@*<5mDeb=V_8O@TCd?yCeD^P7hqVh;$O&arc2TExFj@IJ+L|BYjaqK~am zNZ~^h3gNgW>P=BEiS6R+evV|c-J6F=)KT~jc&H`FQ_tZurl?I+7u}S(Scpz&>X)u? zYnsY{J~|Kd(+z2%(csQ4=3F*4O6W}-5*3}){2kAua6n-<{DW&5_?$eVP$iLVRedz^r*N-adP=k`!qM_)2znC zj)~nXc7GbBuGqt(j*2}hHu<=PWoeXdiQVO6yAOC)_xldma%0yikxz*{>f>i6Kci1D zB3R+yOXqY<>}J8G;#nqkhhV}l$;9pz>=RGF*v|<5PCOsLwp(aK2pODA8CWq_#s&ICU_v|#^eY*=%3#%vEYlZZ zpBKDgzJX~!quEiHv(>i=lH73C{U>kB*&;`t!3L3)fno0g% zUNpJaM|{xCaa7X|tg^AbI32`d8|$maQ5vV@+nrrs3ykAe)7L9MFLCAQWCV++0wsz; zi=kAa@WPMKXO2_!rn7z8znp!=1A}*!ysw?6vPI5AWzRWvGog3PAFRK zv_zxMj_7jL>kLK*oQGm}Me-svCEVMm!aI$KR>7b@qI57nqEy=JjKs>zpa%=8IPjp( z7Yvr>3FnGVRprU5WPQVecrwwjps_Bwbz!1Ao`~0WCgX|Dy6%Sgbq&ex?(W8|@%nn_ zTIEu|rDz;}-a8#LLc#OtpXNLim)f148O8cyyYu9X4THg%U+UFKtmg(=fYWypzc$!v zq&nDJu}LJT8~y}JEjEv&*qu