diff --git a/Server/Git/AbstractGit.cs b/Server/Git/AbstractGit.cs
index df5705c..2013180 100644
--- a/Server/Git/AbstractGit.cs
+++ b/Server/Git/AbstractGit.cs
@@ -32,6 +32,9 @@ namespace Server.Git
Push(excel);
if (isRestart)
goto restart;
+
+ //최종 데이터 세팅
+ DataSet();
}
///
@@ -44,7 +47,7 @@ namespace Server.Git
if (!Directory.Exists(_repositoryPath))
{
Directory.CreateDirectory(_repositoryPath);
- RepositorySet($"clone {STATICS.remoteUrl} {_repositoryPath}", null);
+ RepositorySet($"clone {Statics.remoteUrl} {_repositoryPath}", null);
//main브렌치로 세팅
RepositorySet("branch -m main", _repositoryPath);
@@ -162,5 +165,14 @@ namespace Server.Git
return xlsxFileList;
}
+
+ ///
+ /// 엑셀 데이터 저장
+ ///
+ public void DataSet()
+ {
+ EquipmentDataSQL equipmentDataSQL = new EquipmentDataSQL();
+ equipmentDataSQL.init();
+ }
}
}
diff --git a/Server/Git/ExcelSQL.cs b/Server/Git/ExcelSQL.cs
index 9b23308..384cf7b 100644
--- a/Server/Git/ExcelSQL.cs
+++ b/Server/Git/ExcelSQL.cs
@@ -21,7 +21,7 @@ namespace Server.Git
public void DataUpdate()
{
- using (NpgsqlConnection connection = new NpgsqlConnection(STATICS.EXCEL_SQL_URL))
+ using (NpgsqlConnection connection = new NpgsqlConnection(Statics.EXCEL_SQL_URL))
{
try
{
diff --git a/Server/Program.cs b/Server/Program.cs
index 192b1bf..d2868e8 100644
--- a/Server/Program.cs
+++ b/Server/Program.cs
@@ -17,4 +17,4 @@ app.MapPost("/git", GItWebhook.Process);
//app.MapPost("/update", GItWebhook.Process);
-app.Run(STATICS.URL);
+app.Run(Statics.URL);
diff --git a/Server/SQL/DeckInfo.cs b/Server/SQL/DeckInfo.cs
index 2475dcd..dcdcdb8 100644
--- a/Server/SQL/DeckInfo.cs
+++ b/Server/SQL/DeckInfo.cs
@@ -8,25 +8,25 @@ namespace Server.SQL
[Table("deck_info", Schema = "gamedb")]
public class DeckInfo
{
- public int id { get; set; }
+ public long id { get; set; }
public int deck_type { get; set; }
- public int deck_unit0_id { get; set; }
- public int deck_unit1_id { get; set; }
- public int deck_unit2_id { get; set; }
- public int deck_unit3_id { get; set; }
- public int deck_unit4_id { get; set; }
- public int deck_unit5_id { get; set; }
- public int deck_unit6_id { get; set; }
- public int deck_unit7_id { get; set; }
- public int deck_unit8_id { get; set; }
- public int user_id { get; set; }
+ public long deck_unit0_id { get; set; }
+ public long deck_unit1_id { get; set; }
+ public long deck_unit2_id { get; set; }
+ public long deck_unit3_id { get; set; }
+ public long deck_unit4_id { get; set; }
+ public long deck_unit5_id { get; set; }
+ public long deck_unit6_id { get; set; }
+ public long deck_unit7_id { get; set; }
+ public long deck_unit8_id { get; set; }
+ public long user_id { get; set; }
}
public class DeckInfoSQL : SQL
{
public override DbSet table { get; set; }
- public override List SelectUid(int user_id)
+ public override List SelectUid(long user_id)
{
return table.Where(data => data.user_id == user_id).ToList();
}
diff --git a/Server/SQL/DeckUnitInfo.cs b/Server/SQL/DeckUnitInfo.cs
index 5e82ed5..1bc9bd0 100644
--- a/Server/SQL/DeckUnitInfo.cs
+++ b/Server/SQL/DeckUnitInfo.cs
@@ -8,26 +8,30 @@ namespace Server.SQL
[Table("deck_unit_info", Schema = "gamedb")]
public class DeckUnitInfo
{
- public int id { get; set; }
- public int unit_id { get; set; }
- public int user_id { get; set; }
- public int equip0 { get; set; }
- public int equip1 { get; set; }
- public int equip2 { get; set; }
- public int equip3 { get; set; }
- public int equip4 { get; set; }
- public int equip5 { get; set; }
+ public long id { get; set; }
+ public long unit_id { get; set; }
+ public long user_id { get; set; }
+ public long equip0_id { get; set; }
+ public long equip1_id { get; set; }
+ public long equip2_id { get; set; }
+ public long equip3_id { get; set; }
+ public long equip4_id { get; set; }
+ public long equip5_id { get; set; }
public int level { get; set; }
- public int exp { get; set; }
+ public long exp { get; set; }
}
public class DeckUnitInfoSQL : SQL
{
public override DbSet table { get; set; }
- public override List SelectUid(int user_id)
+ public override List SelectUid(long user_id)
{
return table.Where(data => data.user_id == user_id).ToList();
}
+ public DeckUnitInfo SelectItem(long user_id, long unit_id)
+ {
+ return table.FirstOrDefault(data => (data.user_id == user_id) && (data.id == unit_id));
+ }
}
}
diff --git a/Server/SQL/DynamicData.cs b/Server/SQL/DynamicData.cs
index cbf746c..9fe07fb 100644
--- a/Server/SQL/DynamicData.cs
+++ b/Server/SQL/DynamicData.cs
@@ -8,7 +8,7 @@ namespace Server.SQL
[Table("dynamic_data", Schema = "gamedb")]
public class DynamicData
{
- public int id { get; set; }
+ public long id { get; set; }
public string name { get; set; }
public string value { get; set; }
}
@@ -39,7 +39,7 @@ namespace Server.SQL
}
}
- public override List SelectUid(int user_id)
+ public override List SelectUid(long user_id)
{
return null;//table.Where(data => data.id == user_id).ToList();
}
diff --git a/Server/SQL/Equipment.cs b/Server/SQL/Equipment.cs
index a123dff..40dff09 100644
--- a/Server/SQL/Equipment.cs
+++ b/Server/SQL/Equipment.cs
@@ -9,11 +9,11 @@ namespace Server.SQL
[Table("equipment", Schema = "gamedb")]
public class Equipment
{
- public int id { get; set; }
- public int user_id { get; set; }
- public int equip_unit { get; set; }
+ public long id { get; set; }
+ public long user_id { get; set; }
+ public long equip_unit { get; set; }
public int rand_stats { get; set; }
- public int equipment_data_id { get; set; }
+ public long equipment_data_id { get; set; }
}
public class EquipmentrSQL : SQL
@@ -25,9 +25,14 @@ namespace Server.SQL
table.Update(equipment);
}
- public override List SelectUid(int user_id)
+ public override List SelectUid(long user_id)
{
return table.Where(data => data.user_id == user_id).ToList();
}
+
+ public Equipment SelectItem(long user_id, long equipment_id)
+ {
+ return table.FirstOrDefault(data => (data.user_id == user_id) && (data.id == equipment_id));
+ }
}
}
diff --git a/Server/SQL/EquipmentData.cs b/Server/SQL/EquipmentData.cs
new file mode 100644
index 0000000..545bc22
--- /dev/null
+++ b/Server/SQL/EquipmentData.cs
@@ -0,0 +1,40 @@
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Logging;
+using NLog;
+using Server.System;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace Server.SQL
+{
+ [Table("equipmentdata", Schema = "excel")]
+ public class EquipmentData
+ {
+ [Key]
+ public long index { get; set; }
+ public int part { get; set; }
+ }
+
+ public class EquipmentDataSQL : SQL
+ {
+ private static readonly NLog.ILogger logger = LogManager.GetCurrentClassLogger();
+ public override DbSet table { get; set; }
+
+ public override List SelectUid(long user_id)
+ {
+ return null;
+ }
+
+ 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++)
+ {
+ Statics.equipmentData.Add(equipmentDatas[n].index, equipmentDatas[n]);
+ }
+ }
+ }
+}
diff --git a/Server/SQL/SQL.cs b/Server/SQL/SQL.cs
index 72d5def..c73d607 100644
--- a/Server/SQL/SQL.cs
+++ b/Server/SQL/SQL.cs
@@ -14,7 +14,7 @@ namespace Server.SQL
{
if (!optionsBuilder.IsConfigured)
{
- optionsBuilder.UseNpgsql(STATICS.SQL_URL);
+ optionsBuilder.UseNpgsql(Statics.SQL_URL);
// 다른 옵션들을 추가할 수 있습니다.
}
}
@@ -49,7 +49,7 @@ namespace Server.SQL
return table.ToList();
}
- public abstract List SelectUid(int user_id);
+ public abstract List SelectUid(long user_id);
// Select 예시
// 각자 상황에 맞게 작성해서 사용할것
diff --git a/Server/SQL/User.cs b/Server/SQL/User.cs
index 9fd5291..cf3b623 100644
--- a/Server/SQL/User.cs
+++ b/Server/SQL/User.cs
@@ -9,7 +9,7 @@ namespace Server.SQL
[Table("user", Schema = "gamedb")]
public class User
{
- public int id { get; set; }
+ public long id { get; set; }
public string uuid { get; set; }
public string mail { get; set; }
public string nickname { get; set; }
@@ -39,9 +39,11 @@ namespace Server.SQL
///
///
///
- public override List SelectUid(int user_id)
+ public override List SelectUid(long user_id)
{
return null;
}
+
+
}
}
diff --git a/Server/Service/EquipChange.cs b/Server/Service/EquipChange.cs
new file mode 100644
index 0000000..a4d214d
--- /dev/null
+++ b/Server/Service/EquipChange.cs
@@ -0,0 +1,91 @@
+using Server.System;
+using Newtonsoft.Json;
+using Server.SQL;
+
+namespace Server.Service
+{
+ public class EquipChange : AbstractService
+ {
+ private EquipChangeReq req;
+ 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);
+
+ if(equipment == null || deckUnitInfo == null)
+ {
+ throw new RuntimeException("Not Data", Error.nodata);
+ }
+
+ EquipmentData equipmentData = Statics.equipmentData[equipment.equipment_data_id];
+
+ switch (equipmentData.part)
+ {
+ 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;
+ }
+ equipment.equip_unit = deckUnitInfo.id;
+
+ equipmentrSQL.Update(equipment);
+ deckUnitInfoSQL.Update(deckUnitInfo);
+
+ return makeResp(equipment, deckUnitInfo);
+ }
+
+ public override Protocol ProtocolValue() => Protocol.EquipChange;
+
+ public override Req Requst(string json)
+ {
+ req = JsonConvert.DeserializeObject(json);
+ return req;
+ }
+
+ private string makeResp(Equipment equipment, DeckUnitInfo deck_unit_info)
+ {
+ EquipChangeResp resp = new EquipChangeResp();
+ resp.status = 200;
+ resp.equipment = equipment;
+ resp.deck_unit_info = deck_unit_info;
+ return resp.ToJson();
+ }
+ }
+
+ public class EquipChangeReq : Req
+ {
+ public string uuid;
+ public long unit_id;
+ public long equipment_id;
+ public override bool IsReceivedAllField()
+ {
+ return true;
+ }
+ }
+
+ public class EquipChangeResp : Resp
+ {
+ public Equipment equipment;
+ public DeckUnitInfo deck_unit_info;
+ }
+}
diff --git a/Server/Service/Login.cs b/Server/Service/Login.cs
index 271c28b..0f3649b 100644
--- a/Server/Service/Login.cs
+++ b/Server/Service/Login.cs
@@ -161,6 +161,7 @@ namespace Server.Service
{
public string uuid;
public string nickname;
+ public long id;
public List dynamic_data;
public List deck_unit;
public List deck_info;
diff --git a/Server/System/Enums.cs b/Server/System/Enums.cs
index bcda68d..e527ee8 100644
--- a/Server/System/Enums.cs
+++ b/Server/System/Enums.cs
@@ -11,6 +11,9 @@
Downlode = 100,//기획 데이터 다운로드
Login = 101,//기획 데이터 다운로드
ChangeDeck = 102,//기획 데이터 다운로드
+
+
+ EquipChange = 200,//장비 변경
}
public enum Error
diff --git a/Server/System/Statics.cs b/Server/System/Statics.cs
index 7232b30..036d3c3 100644
--- a/Server/System/Statics.cs
+++ b/Server/System/Statics.cs
@@ -1,6 +1,8 @@
-namespace Server.System
+using Server.SQL;
+
+namespace Server.System
{
- public static class STATICS
+ public static class Statics
{
#if DEBUG
public static readonly string SQL_URL = "Host=192.168.0.2;Port=5432;Username=manager;Password=Zn2zs558W5SdD8K;Database=project_thewar;";
@@ -16,6 +18,7 @@
public static readonly string URL = "https://0.0.0.0:4860";
public static readonly string PATTERN = "[^a-zA-Z0-9가-힣 ]";
- }
+ public static Dictionary equipmentData = new Dictionary();
+ }
}