From ef61fca26dc2ceb669f1697388399d35650aff05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=8C=90=EB=8F=8C?= Date: Mon, 18 Dec 2023 20:13:03 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=A5=EB=B9=84=20=EC=9E=A5=EC=B0=A9=20?= =?UTF-8?q?=EC=8B=9C=EC=8A=A4=ED=85=9C=20=EC=9E=91=EC=97=85=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/SQL/Equipment.cs | 3 - Server/SQL/EquipmentData.cs | 2 - Server/Service/EquipChange.cs | 143 +++++++++++++++++++++++++--------- Server/Service/Login.cs | 29 ++++--- Server/System/Statics.cs | 9 +++ 5 files changed, 129 insertions(+), 57 deletions(-) diff --git a/Server/SQL/Equipment.cs b/Server/SQL/Equipment.cs index 40dff09..5f694ee 100644 --- a/Server/SQL/Equipment.cs +++ b/Server/SQL/Equipment.cs @@ -1,8 +1,5 @@ using Microsoft.EntityFrameworkCore; -using Npgsql.EntityFrameworkCore.PostgreSQL; -using SkiaSharp; using System.ComponentModel.DataAnnotations.Schema; -using static System.Runtime.InteropServices.JavaScript.JSType; namespace Server.SQL { diff --git a/Server/SQL/EquipmentData.cs b/Server/SQL/EquipmentData.cs index 545bc22..5b48ae9 100644 --- a/Server/SQL/EquipmentData.cs +++ b/Server/SQL/EquipmentData.cs @@ -27,9 +27,7 @@ namespace Server.SQL public void init() { - logger.Info("동작1"); Statics.equipmentData = new Dictionary(); - logger.Info("동작2"); List equipmentDatas = table.ToList(); for(int n = 0; n < equipmentDatas.Count; n++) { diff --git a/Server/Service/EquipChange.cs b/Server/Service/EquipChange.cs index a4d214d..f21e776 100644 --- a/Server/Service/EquipChange.cs +++ b/Server/Service/EquipChange.cs @@ -7,51 +7,116 @@ namespace Server.Service public class EquipChange : AbstractService { private EquipChangeReq req; + + public void SaveSQL() + { + Statics.equipmentrSQL.SaveChanges(); + Statics.deckUnitInfoSQL.SaveChanges(); + } + public override string Process() { - //문제 1 장비 장착 저장이 안됨. - //문제 2 기존에 장비가 있다면 신규 장비로 교체가 되야함. - UserSQL userSQL = new UserSQL(); - EquipmentrSQL equipmentrSQL = new EquipmentrSQL(); - DeckUnitInfoSQL deckUnitInfoSQL = new DeckUnitInfoSQL(); - User user = userSQL.SelectUuid(req.uuid); - Equipment equipment = equipmentrSQL.SelectItem(user.id, req.equipment_id); - DeckUnitInfo deckUnitInfo = deckUnitInfoSQL.SelectItem(user.id, req.unit_id); + User user = Statics.userSQL.SelectUuid(req.uuid); + Equipment equipment = Statics.equipmentrSQL.SelectItem(user.id, req.equipment_id); + DeckUnitInfo deckUnitInfo = Statics.deckUnitInfoSQL.SelectItem(user.id, req.unit_id); + Equipment equipitem = null; - if(equipment == null || deckUnitInfo == null) + + if (equipment == null || deckUnitInfo == null) { throw new RuntimeException("Not Data", Error.nodata); } - EquipmentData equipmentData = Statics.equipmentData[equipment.equipment_data_id]; - - switch (equipmentData.part) + if (req.is_equipment) { - case 0: - deckUnitInfo.equip0_id = equipment.id; - break; - case 1: - deckUnitInfo.equip1_id = equipment.id; - break; - case 2: - deckUnitInfo.equip2_id = equipment.id; - break; - case 3: - deckUnitInfo.equip3_id = equipment.id; - break; - case 4: - deckUnitInfo.equip4_id = equipment.id; - break; - case 5: - deckUnitInfo.equip5_id = equipment.id; - break; + switch (equipmentData.part) + { + case 0: + if (deckUnitInfo.equip0_id != 0) + { + equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip0_id); + equipitem.equip_unit = 0; + Statics.equipmentrSQL.Update(equipitem); + } + deckUnitInfo.equip0_id = equipment.id; + break; + case 1: + if (deckUnitInfo.equip1_id != 0) + { + equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip1_id); + equipitem.equip_unit = 0; + Statics.equipmentrSQL.Update(equipitem); + } + deckUnitInfo.equip1_id = equipment.id; + break; + case 2: + if (deckUnitInfo.equip2_id != 0) + { + equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip2_id); + equipitem.equip_unit = 0; + Statics.equipmentrSQL.Update(equipitem); + } + deckUnitInfo.equip2_id = equipment.id; + break; + case 3: + if (deckUnitInfo.equip3_id != 0) + { + equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip3_id); + equipitem.equip_unit = 0; + Statics.equipmentrSQL.Update(equipitem); + } + deckUnitInfo.equip3_id = equipment.id; + break; + case 4: + if (deckUnitInfo.equip4_id != 0) + { + equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip4_id); + equipitem.equip_unit = 0; + Statics.equipmentrSQL.Update(equipitem); + } + deckUnitInfo.equip4_id = equipment.id; + break; + case 5: + if (deckUnitInfo.equip5_id != 0) + { + equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip5_id); + equipitem.equip_unit = 0; + Statics.equipmentrSQL.Update(equipitem); + } + deckUnitInfo.equip5_id = equipment.id; + break; + } + equipment.equip_unit = deckUnitInfo.id; } - equipment.equip_unit = deckUnitInfo.id; + else + { + equipment.equip_unit = 0; + switch (equipmentData.part) + { + case 0: + deckUnitInfo.equip0_id = 0; + break; + case 1: + deckUnitInfo.equip1_id = 0; + break; + case 2: + deckUnitInfo.equip2_id = 0; + break; + case 3: + deckUnitInfo.equip3_id = 0; + break; + case 4: + deckUnitInfo.equip4_id = 0; + break; + case 5: + deckUnitInfo.equip5_id = 0; + break; + } + } + Statics.equipmentrSQL.Update(equipment); + Statics.deckUnitInfoSQL.Update(deckUnitInfo); - equipmentrSQL.Update(equipment); - deckUnitInfoSQL.Update(deckUnitInfo); - - return makeResp(equipment, deckUnitInfo); + return makeResp(equipment, deckUnitInfo, equipitem); } public override Protocol ProtocolValue() => Protocol.EquipChange; @@ -62,12 +127,14 @@ namespace Server.Service return req; } - private string makeResp(Equipment equipment, DeckUnitInfo deck_unit_info) + private string makeResp(Equipment equipment, DeckUnitInfo deck_unit_info, Equipment change_equipment) { + SaveSQL(); EquipChangeResp resp = new EquipChangeResp(); resp.status = 200; resp.equipment = equipment; resp.deck_unit_info = deck_unit_info; + resp.change_equipment = change_equipment; return resp.ToJson(); } } @@ -77,8 +144,11 @@ namespace Server.Service public string uuid; public long unit_id; public long equipment_id; + public bool is_equipment; public override bool IsReceivedAllField() { + if(uuid == "" || unit_id == 0 || equipment_id == 0) + return false; return true; } } @@ -86,6 +156,7 @@ namespace Server.Service public class EquipChangeResp : Resp { public Equipment equipment; + public Equipment change_equipment; public DeckUnitInfo deck_unit_info; } } diff --git a/Server/Service/Login.cs b/Server/Service/Login.cs index 0f3649b..b317ea3 100644 --- a/Server/Service/Login.cs +++ b/Server/Service/Login.cs @@ -7,15 +7,12 @@ namespace Server.Service public class Login : AbstractService { private LoginReq req; + public override string Process() { - UserSQL userSql = new UserSQL(); - DynamicDataSQL dynamicDataSQL = new DynamicDataSQL(); - DeckUnitInfoSQL deckUnitInfoSQL = new DeckUnitInfoSQL(); - DeckInfoSQL deckInfoSQL = new DeckInfoSQL(); - EquipmentrSQL equipmentrSQL = new EquipmentrSQL(); + User user; - List dynamicDataList = dynamicDataSQL.Select(); + List dynamicDataList = Statics.dynamicDataSQL.Select(); List deckUnitInfoList = null; List deckInfoList = null; List equipmentList = null; @@ -24,23 +21,23 @@ namespace Server.Service { //최초 메일 로그인 //게스트 로그인은 허용하지 않고 무조건 구글로그인 혹은 마스토돈 로그인만 가능하게 처리하기 - user = userSql.SelectMail(req.mail); + user = Statics.userSQL.SelectMail(req.mail); if (user != null) { - deckUnitInfoList = deckUnitInfoSQL.Select(); - deckInfoList = deckInfoSQL.Select(); + deckUnitInfoList = Statics.deckUnitInfoSQL.Select(); + deckInfoList = Statics.deckInfoSQL.Select(); } } else { //기존 유저 로그인 - user = userSql.SelectUuid(req.uuid); + user = Statics.userSQL.SelectUuid(req.uuid); - deckUnitInfoList = deckUnitInfoSQL.SelectUid(user.id); + deckUnitInfoList = Statics.deckUnitInfoSQL.SelectUid(user.id); //추후 이것을 1개만 보낼것. - deckInfoList = deckInfoSQL.SelectUid(user.id); - equipmentList = equipmentrSQL.SelectUid(user.id); + deckInfoList = Statics.deckInfoSQL.SelectUid(user.id); + equipmentList = Statics.equipmentrSQL.SelectUid(user.id); } if(user == null) { @@ -53,7 +50,7 @@ namespace Server.Service user.mail = req.mail; user.uuid = Guid.NewGuid().ToString(); user.nickname = "NoName"; - userSql.Insert(user); //저장하고 유닛의 id를 얻어오기 위함. + Statics.userSQL.Insert(user); //저장하고 유닛의 id를 얻어오기 위함. #endregion #region 초기 유닛 지급 deckUnitInfoList = new List(); @@ -94,7 +91,7 @@ namespace Server.Service deckUnitInfo.user_id = user.id; deckUnitInfo.unit_id = 100009; deckUnitInfoList.Add(deckUnitInfo); - deckUnitInfoSQL.Insert(deckUnitInfoList); + Statics.deckUnitInfoSQL.Insert(deckUnitInfoList); #endregion #region 신규 덱 추가 deckInfoList = new List(); @@ -112,7 +109,7 @@ namespace Server.Service deckInfo.deck_unit7_id = deckUnitInfoList[7].id; deckInfo.deck_unit8_id = deckUnitInfoList[8].id; deckInfoList.Add(deckInfo); - deckInfoSQL.Insert(deckInfoList); + Statics.deckInfoSQL.Insert(deckInfoList); #endregion } diff --git a/Server/System/Statics.cs b/Server/System/Statics.cs index 036d3c3..9ac7f4c 100644 --- a/Server/System/Statics.cs +++ b/Server/System/Statics.cs @@ -20,5 +20,14 @@ namespace Server.System public static readonly string PATTERN = "[^a-zA-Z0-9가-힣 ]"; public static Dictionary equipmentData = new Dictionary(); + + + //SQL + public static DeckInfoSQL deckInfoSQL = new DeckInfoSQL(); + public static DeckUnitInfoSQL deckUnitInfoSQL = new DeckUnitInfoSQL(); + public static DynamicDataSQL dynamicDataSQL = new DynamicDataSQL(); + public static EquipmentrSQL equipmentrSQL = new EquipmentrSQL(); + public static EquipmentDataSQL equipmentDataSQL = new EquipmentDataSQL(); + public static UserSQL userSQL = new UserSQL(); } }