using dy.net.dto; using dy.net.model; using dy.net.service; using dy.net.utils; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace dy.net.Controllers { [Route("api/[controller]")] [ApiController] public class FollowController : ControllerBase { private readonly DouyinFollowService _douyinFollowService; private readonly DouyinQuartzJobService _douyinQuartzJobService; public FollowController(DouyinFollowService douyinFollowService, DouyinQuartzJobService douyinQuartzJobService) { this._douyinFollowService = douyinFollowService; _douyinQuartzJobService = douyinQuartzJobService; } /// /// 分页查询 /// /// 分页结果 [HttpPost("paged")] public async Task GetPagedAsync( FollowRequestDto dto) { if (string.IsNullOrWhiteSpace(dto.MySelfId)) { return Ok(new { code = 0, data = new { } }); } var (list, totalCount) = await _douyinFollowService.GetPagedAsync(dto); return Ok(new { code = 0, data = new { data = list, total = totalCount, pageIndex = dto.PageIndex, pageSize = dto.PageSize } } ); } /// /// 重新同步-单次 /// /// [HttpGet("sync")] public async Task SyncFollowList() { //后台异步 _douyinQuartzJobService.StartFollowJobOnceAsync(); await Task.Delay(1000); return Ok(new { code = 0 }); } [HttpPost("add")] public async Task AddFollow(DouyinFollowed followed) { var res = await _douyinFollowService.AddAsync(followed); return Ok(new { code = res ? 0 : -1, msg = res ? "" : "添加失败" }); } /// /// 修改关注同步状态 /// /// /// [HttpPost("openOrCloseSync")] public async Task OpenOrCloseSync(FollowUpdateDto dto) { if (dto.OpenSync) { if (!string.IsNullOrWhiteSpace(dto.SavePath)) { if (!DouyinFileNameHelper.IsValidWithoutSpecialChars(dto.SavePath)) { return Ok(new { code = -1, msg = "请输入有效文件夹名称(字母数字中文简体)" }); } if (dto.SavePath.Length > 10) { return Ok(new { code = -1, msg = "请输入有效文件夹名称(最长10)" }); } } } var result= await _douyinFollowService.OpenOrCloseSync(dto); return Ok(new { code = result ? 0 : -1, data = result }); } /// /// 修改关注全量同步状态 /// /// /// [HttpPost("openOrCloseFullSync")] public async Task OpenOrCloseFullSync(FollowUpdateDto dto) { if (dto.FullSync) { if (!string.IsNullOrWhiteSpace(dto.SavePath)) { if (!DouyinFileNameHelper.IsValidWithoutSpecialChars(dto.SavePath)) { return Ok(new { code = -1, msg = "请输入有效文件夹名称(字母数字中文简体)" }); } if (dto.SavePath.Length > 10) { return Ok(new { code = -1, msg = "请输入有效文件夹名称(最长10)" }); } } } var result = await _douyinFollowService.OpenOrCloseFullSync(dto); return Ok(new { code = result ? 0 : -1, data = result }); } } }