From 6c0058d15ab61956b806f62a2b576ffd5d723ed9 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 08 八月 2025 11:16:21 +0800
Subject: [PATCH] fix:bug

---
 FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs |   45 +++++----------------------------------------
 1 files changed, 5 insertions(+), 40 deletions(-)

diff --git a/FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs b/FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs
index d1749ca..cc1216c 100644
--- a/FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs
+++ b/FlexJobApi.Core/Utils/ResourceUtils/ResourceUtils.cs
@@ -13,6 +13,7 @@
 using Microsoft.AspNetCore.Mvc.Controllers;
 using Microsoft.AspNetCore.Routing;
 using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Caching.Distributed;
 using Microsoft.Extensions.DependencyInjection;
 using System;
 using System.Collections.Generic;
@@ -44,48 +45,12 @@
         /// <param name="request"></param>
         /// <param name="provider"></param>
         /// <returns></returns>
-        public static async Task<TResponse> SendHttpAsync<TRequest, TResponse>(
+        public static Task<TResponse> SendHttpAsync<TRequest, TResponse>(
             TRequest request,
             IResourceHttpProvider provider = null)
             where TRequest : class, new()
         {
-            var requestTypeFullName = typeof(TRequest).FullName;
-            var resource = await Db.GetRepository<Resource>().AsQueryable().AsNoTracking()
-                .Where(it => !it.IsExpired && it.RequestTypeFullName == requestTypeFullName)
-                .FirstOrDefaultAsync();
-            var domain = await GetHealthyServiceDomain(resource);
-            var httpRemoteService = App.GetRequiredService<IHttpRemoteService>();
-            var builder = HttpRequestBuilder.Create(resource.GetHttpMethod(), $"{domain}{resource.Route}");
-            if (resource.Method == EnumResourceMethod.Get)
-                builder = builder.WithQueryParameters(request);
-            else
-                builder = builder.SetJsonContent(request);
-            provider = provider ?? new DefaultResourceHttpProvider();
-            builder = provider.AddAuthentication(builder);
-            var response = await provider.SendAsAsync<TResponse>(httpRemoteService, builder);
-            return response;
-        }
-
-        /// <summary>
-        /// 鑾峰彇鍋ュ悍鏈嶅姟鍩熷悕
-        /// </summary>
-        /// <param name="resource"></param>
-        /// <returns></returns>
-        public static async Task<string> GetHealthyServiceDomain(Resource resource)
-        {
-            var client = App.GetRequiredService<IConsulClient>();
-            var queryResult = await client.Health.Service(resource.ServiceName, null, true);
-            if (queryResult.StatusCode != System.Net.HttpStatusCode.OK)
-                throw Oops.Oh(EnumErrorCodeType.s404, $"寰湇鍔resource.Service}");
-
-            var domains = queryResult.Response
-                .Select(s => $"http://{s.Service.Address}:{s.Service.Port}")
-                .ToList();
-            if (domains.IsNull())
-                throw Oops.Oh(EnumErrorCodeType.s404, $"寰湇鍔resource.Service}");
-            // 杞閫夋嫨瀹炰緥
-            int randomIndex = new Random().Next(domains.Count);
-            return domains[randomIndex];
+            return App.GetRequiredService<ResourceHttpUtils>().SendHttpAsync<TRequest, TResponse>(request, provider);
         }
 
         /// <summary>
@@ -152,9 +117,9 @@
                         model.ResponseTypeName = responseType.GetCSharpFriendlyName();
                         model.ResponseTypeFullName = responseType.FullName;
                     }
-
-
                     models.Add(model);
+
+                    await App.GetRequiredService<IDistributedCache>().SetStringAsync($"ResourceModel|{model.RequestTypeFullName}", model.ToJson());
                 }
             }
 

--
Gitblit v1.9.1