From 47c8292807eab91884c36ebe6487fe472a0f79a6 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 13 Mar 2025 11:18:10 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=B6=88=E6=81=AF=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common/Message/JinkoApiService.cs | 13 +++++++++++-- Src/Dlhis.Message/Options/DingTalkOption.cs | 11 +++++++++++ Src/Dlhis.Message/Services/JinkoApiService.cs | 17 ++++++++++------- Src/Dlhis.Message/appsettings.json | 5 +++++ 4 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 Src/Dlhis.Message/Options/DingTalkOption.cs diff --git a/Src/Dlhis.Basic/Common/Message/JinkoApiService.cs b/Src/Dlhis.Basic/Common/Message/JinkoApiService.cs index c2b7d909..07390ff7 100644 --- a/Src/Dlhis.Basic/Common/Message/JinkoApiService.cs +++ b/Src/Dlhis.Basic/Common/Message/JinkoApiService.cs @@ -1,4 +1,6 @@ using System.Text; +using Dlhis.Basic.Common.ApiLog.Services; +using Dlhis.Entity.Common.Enums; using Kurisu.AspNetCore.Utils.Extensions; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -8,16 +10,18 @@ namespace Dlhis.Basic.Common.Message; public class JinkoApiService : IJinkoApiService { private readonly IHttpClientFactory _httpClientFactory; + private readonly IServiceProvider _serviceProvider; private const string _agentId = "2984453842"; private const string _appKey = "dingppvj6wvtgbagwpsw"; private const string _appSecret = "k9mxYwilZgQiuhV_RVYRueoIAWHCQWrUdhbj6DAmiEiqMzSQE4igt0kAj97rmLaS"; - public JinkoApiService(IHttpClientFactory httpClientFactory) + public JinkoApiService(IHttpClientFactory httpClientFactory, IServiceProvider serviceProvider) { _httpClientFactory = httpClientFactory; + _serviceProvider = serviceProvider; } - public async Task GetTokenAsync() + private async Task GetTokenAsync() { var token = string.Empty; if (string.IsNullOrEmpty(token)) @@ -76,6 +80,11 @@ public class JinkoApiService : IJinkoApiService var jObj = JObject.Parse(jsonResponse); (jObj.Value("errcode") == "0").ThrowIfFalse(jObj.Value("errmsg")); + + + using var scope = _serviceProvider.CreateScope(); + var ol = scope.ServiceProvider.GetService(); + await ol.LogAsync(OperateLogType.WorkGrid, $"dingtalk消息推送:{request.ToJson()}"); } diff --git a/Src/Dlhis.Message/Options/DingTalkOption.cs b/Src/Dlhis.Message/Options/DingTalkOption.cs new file mode 100644 index 00000000..3c838d9a --- /dev/null +++ b/Src/Dlhis.Message/Options/DingTalkOption.cs @@ -0,0 +1,11 @@ +using Kurisu.AspNetCore.ConfigurableOptions.Attributes; + +namespace Dlhis.Message.Options; + +[Configuration] +public class DingTalkOption +{ + public string AgentId { get; set; } + public string AppKey { get; set; } + public string AppSecret { get; set; } +} \ No newline at end of file diff --git a/Src/Dlhis.Message/Services/JinkoApiService.cs b/Src/Dlhis.Message/Services/JinkoApiService.cs index 329fcb99..79b8fcf9 100644 --- a/Src/Dlhis.Message/Services/JinkoApiService.cs +++ b/Src/Dlhis.Message/Services/JinkoApiService.cs @@ -1,5 +1,7 @@ using System.Text; +using Dlhis.Message.Options; using Kurisu.AspNetCore.Utils.Extensions; +using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -8,13 +10,15 @@ namespace Dlhis.Message.Services; public class JinkoApiService : IJinkoApiService { private readonly IHttpClientFactory _httpClientFactory; + private readonly DingTalkOption _dingTalkOption; - public JinkoApiService(IHttpClientFactory httpClientFactory) + public JinkoApiService(IHttpClientFactory httpClientFactory, IOptions options) { _httpClientFactory = httpClientFactory; + _dingTalkOption = options.Value; } - public async Task GetTokenAsync() + private async Task GetTokenAsync() { var token = string.Empty; if (string.IsNullOrEmpty(token)) @@ -23,11 +27,10 @@ public class JinkoApiService : IJinkoApiService var form = new FormUrlEncodedContent(new Dictionary { - { "appkey", "dingumelppews6rah7x9" }, - { "appsecret", "nsWfJTVjYesHVzrLiP-t1TQqMQvC1L_kZNfXfnIyzcXK4pCTfKprkjZcxAbsDR_l" } + { "appkey", _dingTalkOption.AppKey }, + { "appsecret", _dingTalkOption.AppSecret } }); - - //appkey=dingumelppews6rah7x9&appsecret=nsWfJTVjYesHVzrLiP-t1TQqMQvC1L_kZNfXfnIyzcXK4pCTfKprkjZcxAbsDR_l + var response = await httpClient.GetStringAsync($"/gettoken?{await form.ReadAsStringAsync()}"); var jObj = JObject.Parse(response); (jObj.Value("errcode") == "0").ThrowIfFalse(jObj.Value("errmsg")); @@ -50,7 +53,7 @@ public class JinkoApiService : IJinkoApiService var body = new { - agent_id = "2768073678", + agent_id = _dingTalkOption.AgentId, userid_list = userStringIds, msg = new { diff --git a/Src/Dlhis.Message/appsettings.json b/Src/Dlhis.Message/appsettings.json index 5629eb3b..c6a54429 100644 --- a/Src/Dlhis.Message/appsettings.json +++ b/Src/Dlhis.Message/appsettings.json @@ -24,6 +24,11 @@ "yikatong": "yikatong" } }, + "DingTalkOption":{ + "AgentId":"2984453842", + "AppKey":"dingppvj6wvtgbagwpsw", + "AppSecret":"k9mxYwilZgQiuhV_RVYRueoIAWHCQWrUdhbj6DAmiEiqMzSQE4igt0kAj97rmLaS" + }, "IdentityServerOptions": { "Authority": "http://identity.oauth.svc.cluster.local", "RequireHttpsMetadata": false,