From 03f64f9638f8132a91c07d13ce7fcb8f6befae8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=84=9C?= Date: Tue, 20 Feb 2024 14:36:04 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8D=B1=20=EC=A0=80=EC=9E=A5=EB=B0=8F=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20=EB=B0=98=ED=99=98=20api=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/Service/ChageDeck.cs | 45 --------------- Server/Service/DeckChange.cs | 103 +++++++++++++++++++++++++++++++++++ Server/System/Enums.cs | 4 +- 3 files changed, 105 insertions(+), 47 deletions(-) delete mode 100644 Server/Service/ChageDeck.cs create mode 100644 Server/Service/DeckChange.cs diff --git a/Server/Service/ChageDeck.cs b/Server/Service/ChageDeck.cs deleted file mode 100644 index 8ab955e..0000000 --- a/Server/Service/ChageDeck.cs +++ /dev/null @@ -1,45 +0,0 @@ -using Server.System; -using Newtonsoft.Json; - -namespace Server.Service -{ - public class ChangeDeck : AbstractService - { - private ChangeDeckReq req; - public override string Process() - { - return makeResp(); - } - - public override Protocol ProtocolValue() => Protocol.ChangeDeck; - - public override Req Requst(string json) - { - req = JsonConvert.DeserializeObject(json); - return req; - } - - private string makeResp() - { - ChangeDeckResp resp = new ChangeDeckResp(); - resp.status = 200; - return resp.ToJson(); - } - - //1. 해당 데이터가 db에 있는지 확인 - //2. 존재하는 데이터라면 신규 데이터로 업데이트 - } - - public class ChangeDeckReq : Req - { - public override bool IsReceivedAllField() - { - return true; - } - } - - public class ChangeDeckResp : Resp - { - - } -} diff --git a/Server/Service/DeckChange.cs b/Server/Service/DeckChange.cs new file mode 100644 index 0000000..702b344 --- /dev/null +++ b/Server/Service/DeckChange.cs @@ -0,0 +1,103 @@ +using Server.System; +using Newtonsoft.Json; +using Server.SQL; + +namespace Server.Service +{ + public class DeckChange : AbstractService + { + private DeckChangeReq req; + + public void SaveSQL() + { + Statics.deckInfoSQL.SaveChanges(); + } + + public override string Process() + { + User user = Statics.userSQL.SelectUuid(req.uuid); + List deckInfo = Statics.deckInfoSQL.SelectUid(user.id); + List deckUnitInfo = Statics.deckUnitInfoSQL.SelectUid(user.id); + //실제 존재하는 유닛인지 확인 + + for(int n = 0; n < req.deck_unit.Length; n++) + { + if (req.deck_unit[n] == 0) + continue; + long unit_id = req.deck_unit[n]; + if( deckUnitInfo.FindIndex(data => data.unit_id == unit_id) == -1) + throw new RuntimeException("Not Unit", Error.nodata); + } + + //존재하는 덱인지 검사 + int deckindex = -1; + + for (int n = 0; n < deckInfo.Count; n++) + { + if (deckInfo[n].id == req.deck_id) + { + deckindex = n; + break; + } + } + + if(deckindex == -1) + throw new RuntimeException("Not Deck", Error.nodata); + + //덱 유닛 저장 + + DeckInfo changeDeck = new DeckInfo(); + + changeDeck.id = deckInfo[deckindex].id; + changeDeck.deck_type = deckInfo[deckindex].deck_type; + changeDeck.user_id = deckInfo[deckindex].user_id; + changeDeck.deck_unit0_id = req.deck_unit[0]; + changeDeck.deck_unit1_id = req.deck_unit[1]; + changeDeck.deck_unit2_id = req.deck_unit[2]; + changeDeck.deck_unit3_id = req.deck_unit[3]; + changeDeck.deck_unit4_id = req.deck_unit[4]; + changeDeck.deck_unit5_id = req.deck_unit[5]; + changeDeck.deck_unit6_id = req.deck_unit[6]; + changeDeck.deck_unit7_id = req.deck_unit[7]; + changeDeck.deck_unit8_id = req.deck_unit[8]; + + Statics.deckInfoSQL.Update(changeDeck); + return makeResp(changeDeck); + } + + public override Protocol ProtocolValue() => Protocol.DeckChange; + + public override Req Requst(string json) + { + req = JsonConvert.DeserializeObject(json); + return req; + } + + private string makeResp(DeckInfo changeDeck) + { + SaveSQL(); + DeckChangeResp resp = new DeckChangeResp(); + resp.deck_info = changeDeck; + return resp.ToJson(); + } + } + + public class DeckChangeReq : Req + { + public string uuid; + public long deck_id; + public long[] deck_unit; + public override bool IsReceivedAllField() + { + if(uuid == "" || deck_id == 0 || deck_unit.Length != 9) + return false; + return true; + } + } + + public class DeckChangeResp : Resp + { + //덱정보 반환 + public DeckInfo deck_info; + } +} diff --git a/Server/System/Enums.cs b/Server/System/Enums.cs index e527ee8..c560931 100644 --- a/Server/System/Enums.cs +++ b/Server/System/Enums.cs @@ -9,11 +9,11 @@ Downlode = 100,//기획 데이터 다운로드 - Login = 101,//기획 데이터 다운로드 - ChangeDeck = 102,//기획 데이터 다운로드 + Login = 101,//로그인 유저정보 요청 EquipChange = 200,//장비 변경 + DeckChange = 201,//덱 유닛 변경 } public enum Error