X\choro 11 mēneši atpakaļ
vecāks
revīzija
bfdc55b83f

+ 2 - 0
economy/Controllers/FinancialController.cs

@@ -32,6 +32,8 @@ namespace economy.Controllers
             viewModel.Request = request;
             viewModel.Response = itemList;
 
+            await exchange.GetExchangeValue();
+
             return View(viewModel);
         }
 

+ 0 - 1
economy/Dockerfile

@@ -7,7 +7,6 @@ WORKDIR /app
 EXPOSE 8080
 EXPOSE 8081
 
-
 # 이 스테이지는 서비스 프로젝트를 빌드하는 데 사용됩니다.
 FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
 ARG BUILD_CONFIGURATION=Release

+ 46 - 0
economy/Models/FinancialModel.cs

@@ -1,14 +1,18 @@
 using System.Text.Json;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Caching.Memory;
 
 namespace economy.Models.Financial
 {
     public class FinancialModel
     {
         private readonly KoreaEximGoKR _koreaEximGoKR;
+        private readonly IMemoryCache _cache;
 
         public FinancialModel(KoreaEximGoKR koreaEximGoKR)
         {
             _koreaEximGoKR = koreaEximGoKR;
+            _cache = new MemoryCache(new MemoryCacheOptions());
         }
 
         // 환율 조회
@@ -130,5 +134,47 @@ namespace economy.Models.Financial
 
             return parseData;
         }
+
+        // 환율 원화 기준환율만 DB에 등록
+        public async Task<int> GetExchangeValue()
+        {
+            string cacheKey = "ExchangeValue";
+
+            // 캐시에 데이터가 존재하면 반환
+            if (_cache.TryGetValue(cacheKey, out int cachedData))
+            {
+                return cachedData;
+            }
+
+            var request = new Exchange.Request
+            {
+                Date = DateOnly.FromDateTime(DateTime.Now).AddDays(-1)
+            };
+
+            Exchange.Response exchangeList = await GetExchange(request);
+
+            int result = 0;
+
+            if (exchangeList.Items != null)
+            {
+                var usdItem = exchangeList.Items.Where(item => item.CurUnit == "USD").Take(1).ToList();
+               
+                if (usdItem.Any())
+                {
+                    // 쉼표 제거 후 소수점 처리
+                    var value = usdItem[0].DealBasRate.Replace(",", "");
+
+                    if (decimal.TryParse(value, out var parsedRate))
+                    {
+                        result = (int)Math.Round(parsedRate);
+                    }
+
+                    // 캐시에 저장 (1일 동안 유지)
+                    _cache.Set(cacheKey, result, TimeSpan.FromDays(1));
+                }
+            }
+
+            return result;
+        }
     }
 }

+ 1 - 1
economy/Views/Gold/Index.cshtml

@@ -55,7 +55,7 @@
                             <td>@row.Num</td>
                             <td>@row.BasDt</td>
                             <td>
-                                <a asp-controller="Gold" asp-action="Index" asp-route-code="@row.SrtnCd" asp-route-sDate="@Model.Request.StartDate" asp-route-eDate="@Model.Request.EndDate">@row.ItmsNm</a>
+                                <a asp-controller="Gold" asp-action="Index" asp-route-code="@row.SrtnCd" asp-route-sDate="@Model.Request.StartDate.ToString("yyyy-MM-dd")" asp-route-eDate="@Model.Request.EndDate.ToString("yyyy-MM-dd")">@row.ItmsNm</a>
                                 <span class="text-primary" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-html="true" data-bs-title="코드: @row.SrtnCd<br/>ISIN: @row.IsinCd">
                                     <i class="bi bi-exclamation-circle"></i>
                                 </span>

+ 28 - 0
economy/Views/SCSS/style.scss

@@ -142,3 +142,31 @@
 #pagination {
     justify-items: center;
 }
+
+.navbar-nav .dropdown-menu {
+    padding-left: 10px;
+}
+
+@media (min-width: 576px) {
+  
+    .navbar-expand-sm .navbar-nav .dropdown-menu {
+        padding-left: 0;
+    }
+}
+
+@media (max-width: 767.98px) {
+    a.navbar-brand {
+        display: block !important;
+    }
+}
+
+@media (max-width: 991.98px) {
+    a.navbar-brand {
+        display: none;
+    }
+
+    footer {
+        position: relative !important;
+        text-align: center;
+    }
+}

+ 37 - 8
economy/Views/Shared/_Layout.cshtml

@@ -21,7 +21,7 @@
 <body>
 
     <header>
-        <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
+        <nav class="navbar navbar-expand-md navbar-toggleable-md navbar-light bg-white border-bottom box-shadow mb-3">
             <div class="container">
                 <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">Economy API</a>
                 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
@@ -32,21 +32,50 @@
                         <li class="nav-item dropdown">
                             <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">시세</a>
                             <ul class="dropdown-menu">
+
+                                <!-- 2024.10.10 추가 -->
+                                <li>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Gold" asp-action="Index">금</a>
+                                </li>
+                                <li>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Oil" asp-action="Index">석유</a>
+                                </li>
                                 <li>
-                                    <a class="nav-link text-dark" asp-area="" asp-controller="Gold" asp-action="Index">금 시세</a>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Emission" asp-action="Index">배출권</a>
                                 </li>
                                 <li>
-                                    <a class="nav-link text-dark" asp-area="" asp-controller="Oil" asp-action="Index">석유 시세</a>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Price" asp-action="List">품목별</a>
+                                </li>
+                                <li>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index">화훼</a>
+                                </li>
+
+                                <!-- 2024.12.14 추가 -->
+                                <li>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index">천연가스</a>
                                 </li>
                                 <li>
-                                    <a class="nav-link text-dark" asp-area="" asp-controller="Emission" asp-action="Index">배출권시세</a>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index">구리</a>
                                 </li>
                                 <li>
-                                    <a class="nav-link text-dark" asp-area="" asp-controller="Price" asp-action="List">품목별 시세</a>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index">알루미늄</a>
                                 </li>
                                 <li>
-                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index">화훼 시세</a>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index"></a>
                                 </li>
+                                <li>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index">섬유</a>
+                                </li>
+                                <li>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index">설탕</a>
+                                </li>
+                                <li>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index">커피</a>
+                                </li>
+                                <li>
+                                    <a class="nav-link text-dark" asp-area="" asp-controller="Flower" asp-action="Index">원자재</a>
+                                </li>
+
                             </ul>
                         </li>
                         <li class="nav-item">
@@ -85,10 +114,10 @@
     <footer class="border-top footer text-muted">
         <div class="container">
             <div class="row">
-                <div class="col text-center text-sm-start">
+                <div class="col text-center text-lg-start">
                     &copy; 2023 ~ @DateTime.Now.Year - <a href="https://web.or.kr" ref="author" target="_blank">www.web.or.kr</a>
                 </div>
-                <div class="col text-center text-sm-end">
+                <div class="col text-center text-lg-end">
                     <small>※ 쿠팡 파트너스 활동을 통해 일정액의 수수료를 제공받을수 있습니다.</small>
                 </div>
             </div>

BIN
economy/bin/Debug/net8.0/economy.dll


BIN
economy/bin/Debug/net8.0/economy.exe


BIN
economy/bin/Debug/net8.0/economy.pdb


+ 31 - 26
economy/economy.csproj

@@ -1,32 +1,37 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
+	<PropertyGroup>
+        <TargetFramework>net8.0</TargetFramework>
+        <Nullable>enable</Nullable>
+        <ImplicitUsings>enable</ImplicitUsings>
+        <UserSecretsId>33662f19-efc5-4511-bd9a-1f4d7e7ed834</UserSecretsId>
+        <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
+    </PropertyGroup>
+	<ItemGroup>
+	  <Compile Remove="Middleware\**" />
+	  <Content Remove="Middleware\**" />
+	  <EmbeddedResource Remove="Middleware\**" />
+	  <None Remove="Middleware\**" />
+	</ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>net8.0</TargetFramework>
-    <Nullable>enable</Nullable>
-    <ImplicitUsings>enable</ImplicitUsings>
-    <UserSecretsId>33662f19-efc5-4511-bd9a-1f4d7e7ed834</UserSecretsId>
-    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <None Include="compilerconfig.json" />
-    <None Include="E:\workspace\economy\economy\.editorconfig" />
-  </ItemGroup>
+    <ItemGroup>
+        <None Include="compilerconfig.json" />
+        <None Include="E:\workspace\economy\economy\.editorconfig" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <EditorConfigFiles Remove="E:\workspace\economy\economy\.editorconfig" />
-  </ItemGroup>
+    <ItemGroup>
+        <EditorConfigFiles Remove="E:\workspace\economy\economy\.editorconfig" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Content Update="Views\Price\Detail.cshtml">
-      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
-      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
-    </Content>
-    <Content Update="wwwroot\js\gold.js">
-      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
-      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
-    </Content>
-  </ItemGroup>
+    <ItemGroup>
+        <Content Update="Views\Price\Detail.cshtml">
+            <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
+            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
+        </Content>
+        <Content Update="wwwroot\js\gold.js">
+            <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
+            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
+        </Content>
+    </ItemGroup>
 
 	<ItemGroup>
 		<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
@@ -38,7 +43,7 @@
 	</ItemGroup>
 
 	<ItemGroup>
-	  <Folder Include="Middleware\" />
+	  <Folder Include="Views\Prices\" />
 	</ItemGroup>
 	
 </Project>

BIN
economy/obj/Debug/net8.0/apphost.exe


+ 1 - 1
economy/obj/Debug/net8.0/economy.AssemblyInfo.cs

@@ -15,7 +15,7 @@ using System.Reflection;
 [assembly: System.Reflection.AssemblyCompanyAttribute("economy")]
 [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
 [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3f58474b37e1d71f20352b78c64df6b90efefcc3")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+cc29573eee04f68a4d4ae56be773e047d7ac40bf")]
 [assembly: System.Reflection.AssemblyProductAttribute("economy")]
 [assembly: System.Reflection.AssemblyTitleAttribute("economy")]
 [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

+ 1 - 1
economy/obj/Debug/net8.0/economy.AssemblyInfoInputs.cache

@@ -1 +1 @@
-70e344ae8b23f39da10831e501b686031ea03e5007d2a908ee9a53edab069a53
+1bc6466b9d0c187e9045e779a6b37993bc8b5c501254d88a03b6cc9615f5e121

+ 1 - 1
economy/obj/Debug/net8.0/economy.csproj.CoreCompileInputs.cache

@@ -1 +1 @@
-cfca12ab93dc84d122064ad286827159f548c32b547f1b07045d036041af185b
+d324c161c47904d78fbe51056ef6e65ad1e5cfb72a0ca8c51df1455d9b474a6f

BIN
economy/obj/Debug/net8.0/economy.dll


BIN
economy/obj/Debug/net8.0/economy.pdb


BIN
economy/obj/Debug/net8.0/ref/economy.dll


BIN
economy/obj/Debug/net8.0/refint/economy.dll


+ 24 - 0
economy/wwwroot/css/style.css

@@ -88,3 +88,27 @@ header nav > div > div > ul > li a:hover {
 #pagination {
   justify-items: center;
 }
+
+.navbar-nav .dropdown-menu {
+  padding-left: 10px;
+}
+
+@media (min-width: 576px) {
+  .navbar-expand-sm .navbar-nav .dropdown-menu {
+    padding-left: 0;
+  }
+}
+@media (max-width: 767.98px) {
+  a.navbar-brand {
+    display: block !important;
+  }
+}
+@media (max-width: 991.98px) {
+  a.navbar-brand {
+    display: none;
+  }
+  footer {
+    position: relative !important;
+    text-align: center;
+  }
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
economy/wwwroot/css/style.min.css


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels