using CoreCms.Net.Caching.AccressToken;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.WeChat.Service.HttpClients;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using SKIT.FlurlHttpClient.Wechat.Api.Models;
using System.Threading.Tasks;
using SKIT.FlurlHttpClient.Wechat.Api;
using CoreCms.Net.Model.WeChatEntites;
namespace CoreCms.Net.Web.WebApi.Controllers
{
///
/// 小程序内置直播功能
///
[Route("api/[controller]/[action]")]
[ApiController]
public class LiveBroadCastController : ControllerBase
{
private readonly IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
///
/// 构造函数
///
///
public LiveBroadCastController(IWeChatApiHttpClientFactory weChatApiHttpClientFactory)
{
_weChatApiHttpClientFactory = weChatApiHttpClientFactory;
}
#region 获取直播间列表和回放
///
/// 获取直播间列表和回放
///
///
[HttpPost]
public async Task GetLiveInfo([FromBody] FMPageByIntId entity)
{
var jm = new WebApiCallBack();
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
var request = new MyWxaBusinessGetLiveInfoRequest
{
AccessToken = accessToken,
Limit = entity.limit,
Offset = (entity.page - 1) * entity.limit,
Action = !string.IsNullOrEmpty(entity.where) ? "get_replay" : ""
};
var response = await client.ExecuteWxaBusinessGetLiveInfoAsync(request);
if (response.IsSuccessful())
{
jm.status = true;
jm.data = response;
}
else
{
jm.status = false;
jm.msg = response.ErrorCode == 9410000 ? "暂无直播信息" : response.ErrorMessage;
jm.otherData = response;
}
return jm;
}
#endregion
}
}