收藏夹

This commit is contained in:
jianzhichu
2026-01-19 17:30:32 +08:00
parent 65e6b48d8e
commit 7c6ee0a8a6
5 changed files with 96 additions and 3 deletions
+82
View File
@@ -0,0 +1,82 @@
using dy.net.model.dto;
using dy.net.model.entity;
using dy.net.service;
using dy.net.utils;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace dy.net.Controllers
{
[Route("api/[controller]")]
[ApiController]
[Authorize]
public class CollectController : ControllerBase
{
private readonly DouyinCollectCateService _douyinCollectCateService;
private readonly DouyinQuartzJobService _douyinQuartzJobService;
public CollectController(DouyinCollectCateService douyinCollectCateService, DouyinQuartzJobService douyinQuartzJobService)
{
this._douyinCollectCateService = douyinCollectCateService;
_douyinQuartzJobService = douyinQuartzJobService;
}
/// <summary>
/// 分页查询
/// </summary>
/// <returns>分页结果</returns>
[HttpPost("paged")]
public async Task<IActionResult> GetPagedAsync(
DouyinCollectCateRequestDto dto)
{
if (string.IsNullOrWhiteSpace(dto.cookieId))
{
return ApiResult.Success(new { });
}
var (list, totalCount) = await _douyinCollectCateService.GetPagedAsync(dto);
return ApiResult.Success(new
{
data = list,
total = totalCount,
pageIndex = dto.PageIndex,
pageSize = dto.PageSize
});
}
/// <summary>
/// 重新同步-单次
/// </summary>
/// <returns></returns>
[HttpGet("sync")]
public async Task<IActionResult> SyncFollowList()
{
//后台异步
_douyinQuartzJobService.StartFollowJobOnceAsync();
await Task.Delay(1000);
return ApiResult.Success();
}
/// <summary>
/// 修改关注同步状态
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost("BatchSave")]
public async Task<IActionResult> BatchSave(List<DouyinCollectCateSwitchDto> dto)
{
if(dto.Any(x=> !DouyinFileNameHelper.IsValidWithoutSpecialChars(x.Folder)))
{
return ApiResult.Fail("有部分文件名不符合要求,请检查");
}
var result= await _douyinCollectCateService.BatchSwitchSync(dto);
return ApiResult.SuccOrFail(result, result);
}
}
}
+2
View File
@@ -12,5 +12,7 @@
public string Id { get; set; }
public bool Sync { get; set; }
public string Folder { get; set; }
}
}
+1
View File
@@ -59,5 +59,6 @@ namespace dy.net.model.dto
{
public string cookieId { get; set; }
public int cateType { get; set; }
}
}
@@ -1,6 +1,7 @@
using ClockSnowFlake;
using dy.net.model.dto;
using dy.net.model.entity;
using dy.net.utils;
using SqlSugar;
using System.Linq.Expressions;
@@ -22,6 +23,7 @@ namespace dy.net.repository
public async Task<(List<DouyinCollectCate> list, int totalCount)> GetPagedAsync(DouyinCollectCateRequestDto dto)
{
var where = this.Db.Queryable<DouyinCollectCate>()
.Where(x=>x.CateType==dto.cateType)
.WhereIF(!string.IsNullOrWhiteSpace(dto.cookieId), x => x.CookieId == dto.cookieId);
var totalCount = await where.CountAsync();
@@ -52,6 +54,8 @@ namespace dy.net.repository
if (dtoDict.TryGetValue(item.Id, out var dtocate))
{
item.Sync = dtocate.Sync;
item.SaveFolder = string.IsNullOrWhiteSpace(dtocate.Folder) ? DouyinFileNameHelper.SanitizeLinuxFileName(item.Name, item.Id, true) : dtocate.Folder;
item.UpdateTime = DateTime.Now;
}
});
+7 -3
View File
@@ -20,7 +20,10 @@ namespace dy.net.service
public async Task<bool> AddAsync(DouyinCollectCate cate)
{
return await douyinCollectCateRepository.InsertAsync(cate);
}
/// <summary>
@@ -38,10 +41,11 @@ namespace dy.net.service
/// </summary>
/// <param name="cates"></param>
/// <param name="ckId"></param>
/// <param name="cateType"></param>
/// <returns></returns>
public async Task<(int add, int update,int delete, bool succ)> Sync(List<DouyinCollectCate> cates, string ckId)
public async Task<(int add, int update,int delete, bool succ)> Sync(List<DouyinCollectCate> cates, string ckId,int cateType)
{
return await douyinCollectCateRepository.Sync(cates, ckId);
return await douyinCollectCateRepository.Sync(cates, ckId, cateType);
}