using ClockSnowFlake; using dy.net.dto; using dy.net.model; using dy.net.service; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using static Dm.net.buffer.ByteArrayBuffer; namespace dy.net.Controllers { [Route("api/[controller]")] [ApiController] public class ConfigController : ControllerBase { private readonly DyCookieService dyCookieService; private readonly CommonService commonService; private readonly QuartzJobService quartzJobService; public ConfigController(DyCookieService dyCookieService, CommonService commonService,QuartzJobService quartzJobService) { this.dyCookieService = dyCookieService; this.commonService = commonService; this.quartzJobService = quartzJobService; } /// /// 分页查询 /// /// 分页结果(视频列表和总数) [HttpPost("paged")] public async Task 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 } } ); } /// /// 新增用户Cookie /// [HttpPost("add")] public async Task AddAsync([FromBody] DyUserCookies dyUserCookies) { var result = await dyCookieService.Add(dyUserCookies); if (result) { await ReStartJob(); return Ok(new { code = 0 }); } return BadRequest(new { code=-1, message = "添加失败" }); } /// /// 更新用户Cookie /// [HttpPost("update")] public async Task UpdateAsync([FromBody] DyUserCookies 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 = "更新失败" }); } } /// /// 批量删除用户Cookie /// [HttpGet("delete")] public async Task DeleteAsync(string id) { var count = await dyCookieService.DeleteByIdsAsync(new List { 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 UpdateConfig(AppConfig config) { var data = await commonService.UpdateConfig(config); if (data) { await ReStartJob(); } return Ok(new { code = 0, data = data }); } /// /// /// /// [HttpGet("ExecuteJobNow")] [Authorize] public async Task ExecuteJobNow() { var config = commonService.GetConfig(); await quartzJobService.StartJob(config.Cron); return Ok(new { code = 0 , error = "" }); } private async Task ReStartJob() { var config= commonService.GetConfig(); if(config!=null) await quartzJobService.StartJob(config.Cron); } } }