From 6396dac27ca99e84a2e3c772fb079bceddf67ff8 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期一, 01 十二月 2025 18:17:45 +0800
Subject: [PATCH] feat:开发

---
 ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs |   59 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 45 insertions(+), 14 deletions(-)

diff --git a/ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs b/ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs
index 3e600b2..ee2ea78 100644
--- a/ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs
+++ b/ApiTools.Application/WxUtils/Commands/WxmpSubscribMessageCommandHandler.cs
@@ -1,5 +1,9 @@
 锘縰sing Aop.Api.Domain;
 using ApiTools.Core;
+using ApiTools.Core.Entities.LogRecords;
+using Furion;
+using Furion.DatabaseAccessor;
+using Furion.HttpRemote;
 using log4net.Core;
 using MediatR;
 using Microsoft.AspNetCore.Http;
@@ -13,16 +17,18 @@
 namespace ApiTools.Application
 {
     public class WxmpSubscribMessageCommandHandler(
+            IRepository<WxmpSubscribMessageLog> repWxmpSubscribMessageLog,
             ILogger<WxmpSubscribMessageCommandHandler> logger,
             WxmpUtils utils,
-            IHttpContextAccessor httpContextAccessor
+            IHttpRemoteService httpRemoteService
         ) :
         IRequestHandler<SendWxmpSubscribMessageCommand, Guid>,
-        IRequestHandler<WxmpSubscribMessageNotifyCommand, bool>
+        IRequestHandler<WxmpSubscribMessageNotifyCommand, Guid>
     {
+        private readonly IRepository<WxmpSubscribMessageLog> repWxmpSubscribMessageLog = repWxmpSubscribMessageLog;
         private readonly ILogger<WxmpSubscribMessageCommandHandler> logger = logger;
         private readonly WxmpUtils utils = utils;
-        private readonly IHttpContextAccessor httpContextAccessor = httpContextAccessor;
+        private readonly IHttpRemoteService httpRemoteService = httpRemoteService;
 
         /// <summary>
         /// 寰俊灏忕▼搴忓彂閫佽闃呮秷鎭�
@@ -40,7 +46,17 @@
                 WxmpCode = request.WxmpCode,
                 Touser = request.Touser,
             });
-            return Guid.Empty;
+            var log = new WxmpSubscribMessageLog
+            {
+                Code = request.WxmpCode,
+                OpenId = request.Touser,
+                SubscribeStatusString = "send",
+                TemplateId = request.TemplateId,
+                Page = request.Page,
+                Data = request.Data.ToJson()
+            };
+            await repWxmpSubscribMessageLog.InsertNowAsync(log);
+            return log.Id;
         }
 
         /// <summary>
@@ -49,18 +65,33 @@
         /// <param name="request"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public async Task<bool> Handle(WxmpSubscribMessageNotifyCommand request, CancellationToken cancellationToken)
+        public async Task<Guid> Handle(WxmpSubscribMessageNotifyCommand request, CancellationToken cancellationToken)
         {
-            var req = httpContextAccessor.HttpContext.Request;
-            logger.LogInformation($"寰俊灏忕▼搴忚闃呮秷鎭�氱煡query锛歿req.QueryString.Value}");
+            var env = App.GetConfig<string>("Environment");
+            if (env == "Product")
+            {
+                try
+                {
+                    var json = request.ToJson();
+                    await httpRemoteService.PostAsStringAsync("http://118.178.252.28:8780/api/common/wxmp/wxmpSubscribMessageNotify",
+                        builder => builder.SetJsonContent(json));
+                }
+                catch
+                {
 
-            req.EnableBuffering();
-            req.Body.Position = 0;
-            using var reader = new StreamReader(req.Body, Encoding.UTF8, leaveOpen: true);
-            var body = await reader.ReadToEndAsync();
-            logger.LogInformation($"寰俊灏忕▼搴忚闃呮秷鎭�氱煡body锛歿body}");
-            req.Body.Position = 0;
-            return true;
+                }
+            }
+
+            var log = new WxmpSubscribMessageLog
+            {
+                Code = request.Code,
+                OpenId = request.OpenId,
+                PopupScene = request.Content.PopupScene,
+                SubscribeStatusString = request.Content.SubscribeStatusString,
+                TemplateId = request.Content.TemplateId
+            };
+            await repWxmpSubscribMessageLog.InsertNowAsync(log);
+            return log.Id;
         }
     }
 }

--
Gitblit v1.9.1