using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.ViewModels;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Tiobon.Core.Controllers
{
///
/// 微信公众号管理
///
[Route("api/[controller]/[action]")]
[ApiController]
[Authorize(Permissions.Name)]
public partial class WeChatController : Controller
{
readonly IWeChatConfigServices _weChatConfigServices;
readonly ILogger _logger;
///
/// 构造函数
///
///
///
public WeChatController(IWeChatConfigServices weChatConfigServices, ILogger logger)
{
_weChatConfigServices = weChatConfigServices;
_logger = logger;
}
///
/// 更新Token
///
///
///
[HttpGet]
public async Task> GetToken(string id)
{
return await _weChatConfigServices.GetToken(id);
}
///
/// 刷新Token
///
///
///
[HttpGet]
public async Task> RefreshToken(string id)
{
return await _weChatConfigServices.RefreshToken(id);
}
///
/// 获取模板
///
///
///
[HttpGet]
public async Task> GetTemplate(string id)
{
return await _weChatConfigServices.GetTemplate(id);
}
///
/// 获取菜单
///
///
///
[HttpGet]
public async Task> GetMenu(string id)
{
return await _weChatConfigServices.GetMenu(id);
}
///
/// 更新菜单
///
///
///
[HttpPut]
public async Task> UpdateMenu(WeChatApiDto menu)
{
return await _weChatConfigServices.UpdateMenu(menu);
}
///
/// 获取订阅用户(所有)
///
///
///
[HttpGet]
public async Task> GetSubUsers(string id)
{
return await _weChatConfigServices.GetSubUsers(id);
}
///
/// 入口
///
///
///
[AllowAnonymous]
[HttpPost]
[HttpGet]
public async Task Valid([FromQuery] WeChatValidDto validDto)
{
using (var reader = new StreamReader(Request.Body))
{
var body = await reader.ReadToEndAsync();
return await _weChatConfigServices.Valid(validDto, body);
}
}
///
/// 获取订阅用户
///
///
///
///
[HttpGet]
[AllowAnonymous]
public async Task> GetSubUser(string id,string openid)
{
return await _weChatConfigServices.GetSubUser(id,openid);
}
///
/// 获取一个绑定员工公众号二维码
///
/// 消息
///
[HttpGet]
[AllowAnonymous]
public async Task> GetQRBind([FromQuery]WeChatUserInfo info)
{
return await _weChatConfigServices.GetQRBind(info);
}
///
/// 推送卡片消息接口
///
/// 卡片消息对象
///
[HttpPost]
[AllowAnonymous]
public async Task> PushCardMsg(WeChatCardMsgDataDto msg)
{
string pushUserIP = $"{Request.HttpContext.Connection.RemoteIpAddress}:{Request.HttpContext.Connection.RemotePort}";
return await _weChatConfigServices.PushCardMsg(msg, pushUserIP);
}
///
/// 推送卡片消息接口
///
/// 卡片消息对象
///
[HttpGet]
[AllowAnonymous]
public async Task> PushCardMsgGet([FromQuery] WeChatCardMsgDataDto msg)
{
string pushUserIP = $"{Request.HttpContext.Connection.RemoteIpAddress}:{Request.HttpContext.Connection.RemotePort}";
return await _weChatConfigServices.PushCardMsg(msg, pushUserIP);
}
///
/// 推送文本消息
///
/// 消息对象
///
[HttpPost]
[AllowAnonymous]
public async Task> PushTxtMsg([FromBody] WeChatPushTestDto msg)
{
return await _weChatConfigServices.PushTxtMsg(msg);
}
///
/// 通过绑定用户获取微信用户信息(一般用于初次绑定检测)
///
/// 信息
///
[HttpGet]
[AllowAnonymous]
public async Task> GetBindUserInfo([FromQuery]WeChatUserInfo info)
{
return await _weChatConfigServices.GetBindUserInfo(info);
}
///
/// 用户解绑
///
/// 消息
///
[HttpGet]
[AllowAnonymous]
public async Task> UnBind([FromQuery]WeChatUserInfo info)
{
return await _weChatConfigServices.UnBind(info);
}
}
}