Files
douyin/Controllers/ConfigController.cs
T
2025-11-30 21:33:18 +08:00

195 lines
6.0 KiB
C#

using ClockSnowFlake;
using dy.net.dto;
using dy.net.model;
using dy.net.service;
using dy.sync.lib;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Quartz.Util;
using System.Xml.Linq;
using static Dm.net.buffer.ByteArrayBuffer;
namespace dy.net.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ConfigController : ControllerBase
{
private readonly DouyinCookieService dyCookieService;
private readonly DouyinCommonService commonService;
private readonly DouyinQuartzJobService quartzJobService;
private readonly IHttpClientFactory httpClientFactory;
public ConfigController(DouyinCookieService dyCookieService, DouyinCommonService commonService,DouyinQuartzJobService quartzJobService,IHttpClientFactory httpClientFactory)
{
this.dyCookieService = dyCookieService;
this.commonService = commonService;
this.quartzJobService = quartzJobService;
this.httpClientFactory = httpClientFactory;
}
/// <summary>
/// 分页查询
/// </summary>
/// <returns>分页结果</returns>
[HttpPost("paged")]
public async Task<IActionResult> GetPagedAsync(
PageRequestDto dto)
{
var (list, totalCount) = await dyCookieService.GetPagedAsync(dto.PageIndex, dto.PageSize);
return Ok(new
{
code = 0,
data = new
{
data = list,
total=totalCount,
pageIndex= dto.PageIndex,
pageSize= dto.PageSize
}
}
);
}
/// <summary>
/// 查询所有用户Cookie
/// </summary>
/// <returns></returns>
[HttpGet("list")]
public async Task<IActionResult> GetAllList()
{
var list = await dyCookieService.GetAllOpendAsync();
var result = list.Select(x => new { key= x.MyUserId, name= x.UserName });
return Ok(new { code = 0, data = result });
}
/// <summary>
/// 新增用户Cookie
/// </summary>
[HttpPost("add")]
public async Task<IActionResult> AddAsync([FromBody] DouyinCookie dyUserCookies)
{
var result = await dyCookieService.Add(dyUserCookies);
if (result)
{
await ReStartJob();
return Ok(new { code = 0 });
}
return BadRequest(new { code=-1, message = "添加失败" });
}
/// <summary>
/// 更新用户Cookie
/// </summary>
[HttpPost("update")]
public async Task<IActionResult> UpdateAsync([FromBody] DouyinCookie dyUserCookies)
{
if (dyUserCookies.Id == "0")
{
dyUserCookies.Id=IdGener.GetLong().ToString();
var result = await dyCookieService.Add(dyUserCookies);
if (result)
{
await ReStartJob();
return Ok(new { code = 0 });
}
return BadRequest(new { code = -1, message = "添加失败" });
}
else {
var result = await dyCookieService.UpdateAsync(dyUserCookies);
if (result)
{
await ReStartJob();
return Ok(new { code = 0 });
}
return BadRequest(new { code = -1, message = "更新失败" });
}
}
/// <summary>
/// 批量删除用户Cookie
/// </summary>
[HttpGet("delete")]
public async Task<IActionResult> DeleteAsync(string id)
{
var count = await dyCookieService.DeleteByIdsAsync(new List<string> { id});
if (count > 0) {
await ReStartJob();
}
return Ok(new { code = 0, deletedCount = count });
}
[HttpGet("GetConfig")]
public IActionResult GetConfig()
{
var data = commonService.GetConfig();
return Ok(new { code = 0, data = data });
}
[HttpPost("UpdateConfig")]
public async Task<IActionResult> UpdateConfig(AppConfig config)
{
var data = await commonService.UpdateConfig(config);
if (data) {
await ReStartJob();
}
return Ok(new { code = 0, data = data });
}
/// <summary>
///
/// </summary>
/// <returns></returns>
[HttpGet("ExecuteJobNow")]
[Authorize]
public async Task<IActionResult> ExecuteJobNow()
{
var config = commonService.GetConfig();
if (config!=null)
await quartzJobService.InitOrReStartAllJobs(config.Cron.ToString());
return Ok(new { code = 0 , error = "" });
}
private async Task ReStartJob() {
var config= commonService.GetConfig();
if (config!=null)
quartzJobService.InitOrReStartAllJobs(config.Cron.ToString());
//避免前端等待
}
/// <summary>
/// 镜像标签
/// </summary>
/// <returns></returns>
[HttpGet("mytag")]
public async Task<IActionResult> GetMyTag()
{
return Ok(new { code = 0, data =Appsettings.Get("tagName") });
}
[HttpGet("checktag")]
public async Task<IActionResult> CheckTag()
{
var data =await DouyinHttpHelper.GetTenImage(Appsettings.Get("tagName"));
if (data.IsSuccessStatusCode)
{
var content = await data.Content.ReadAsStringAsync();
return Ok(content);
}
else
{
return BadRequest(new { code = -1, message = "请求失败" });
}
}
}
}