using Cms.External.WebApi.Dtos;
using Cms.External.WebApi.Services.Impl;
using DG.Core;
using DG.Tool;
using Microsoft.AspNetCore.Mvc;
using Serilog;
using System.ComponentModel.DataAnnotations;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Web;
using static Cms.External.WebApi.Controllers.WeworkController;
namespace Cms.External.WebApi.Controllers
{
public class WeworkController : BaseController
{
private readonly IHttpClient _httpClient;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IWeworkAgentService _weworkAgentService;
public WeworkController(IHttpClient httpClient,
IHttpContextAccessor httpContextAccessor,
IWeworkAgentService weworkAgentService)
{
_httpClient = httpClient;
_httpContextAccessor = httpContextAccessor;
_weworkAgentService = weworkAgentService;
}
///
/// 发送企微消息
///
///
///
///
[HttpPost("SendMessage")]
public async Task SendMessage([FromBody] WeworkSendeMsg weworkSendeMsg)
{
//CheckSign(weworkSendeMsg);
var clientid = "UPWEBSITE";
var key = "1622a92d";
var param = new
{
Account = "dn.uc",
Password = "dn.uc.password",
Time = SignHelper.GetTimeStamp()
};
var weworkSendUrl = InitConfiguration.GetSection("WeworkSendUrl").Value;
var response = await _httpClient.PostSecurityAsync>(weworkSendUrl, param, weworkSendeMsg, clientid, key);
if (response.ErrCode != 0)
{
var msg = $"请求企微推送消息接口报错:{response.RrrMessage}, ex:{JsonSerializer.Serialize(response)}";
Log.Error(msg);
throw new ApiException(msg);
}
return "发送成功!";
}
[HttpGet("AgentConfig")]
public async Task GetAgentConfig([FromQuery] WorkReports model)
{
var request = _httpContextAccessor.HttpContext.Request;
var url = "http://sys.hc.dn8188.com/Work/GetJsApiSignature2.html?appid=" + model.appid + "&agentid=" + model.agentid + "&url=" + HttpUtility.UrlEncode(model.url);
var result = await _httpClient.GetAsync(url);
return result;
}
[HttpGet("Agents")]
public async Task> GetWeworkAgents()
{
CheckSign();
return await _weworkAgentService.GetWeworkAgents();
}
public class WorkReports
{
public string appid { get; set; }
public string userid { get; set; }
public int agentid { get; set; }
public int deptid { get; set; }
public int eid { get; set; }
public string url { get; set; }
}
public class WeworkSendeMsg
{
///
/// Appid
///
[Required]
[JsonPropertyName("appid")]
public string? Appid { get; set; }
///
/// Agentid
///
[Required]
[JsonPropertyName("agentid")]
public int Agentid { get; set; }
///
/// 发送数据
///
[Required]
[JsonPropertyName("data")]
public string? Data { get; set; }
}
public class WeworkResponse
{
[JsonPropertyName("errcode")]
public int? ErrCode { get; set; }
[JsonPropertyName("errmsg")]
public string? RrrMessage { get; set; }
[JsonPropertyName("data")]
public T? Data { get; set; }
}
}
}