using Aop.Api.Domain;
|
using ApiTools.Core;
|
using Furion;
|
using Furion.HttpRemote;
|
using log4net.Core;
|
using MediatR;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.Extensions.Logging;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace ApiTools.Application
|
{
|
public class WxmpSubscribMessageCommandHandler(
|
ILogger<WxmpSubscribMessageCommandHandler> logger,
|
WxmpUtils utils,
|
IHttpRemoteService httpRemoteService
|
) :
|
IRequestHandler<SendWxmpSubscribMessageCommand, Guid>,
|
IRequestHandler<WxmpSubscribMessageNotifyCommand, bool>
|
{
|
private readonly ILogger<WxmpSubscribMessageCommandHandler> logger = logger;
|
private readonly WxmpUtils utils = utils;
|
private readonly IHttpRemoteService httpRemoteService = httpRemoteService;
|
|
/// <summary>
|
/// 微信小程序发送订阅消息
|
/// </summary>
|
/// <param name="request"></param>
|
/// <param name="cancellationToken"></param>
|
/// <returns></returns>
|
public async Task<Guid> Handle(SendWxmpSubscribMessageCommand request, CancellationToken cancellationToken)
|
{
|
await utils.WxmpSendSubscribMessage(new WxmpSendSubscribMessageRequest
|
{
|
Data = request.Data,
|
TemplateId = request.TemplateId,
|
Page = request.Page,
|
WxmpCode = request.WxmpCode,
|
Touser = request.Touser,
|
});
|
return Guid.Empty;
|
}
|
|
/// <summary>
|
/// 微信小程序订阅消息通知
|
/// </summary>
|
/// <param name="request"></param>
|
/// <param name="cancellationToken"></param>
|
/// <returns></returns>
|
public async Task<bool> Handle(WxmpSubscribMessageNotifyCommand request, CancellationToken cancellationToken)
|
{
|
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
|
{
|
|
}
|
}
|
return true;
|
}
|
}
|
}
|