130 lines
4.0 KiB
C#
130 lines
4.0 KiB
C#
using ClockSnowFlake;
|
|
using dy.net.model.dto;
|
|
using dy.net.model.entity;
|
|
using dy.net.repository;
|
|
using SqlSugar;
|
|
using System.Linq.Expressions;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace dy.net.service
|
|
{
|
|
public class DouyinCookieService
|
|
{
|
|
|
|
private readonly DouyinCookieRepository _cookieRepository;
|
|
|
|
public DouyinCookieService(DouyinCookieRepository cookieRepository)
|
|
{
|
|
_cookieRepository = cookieRepository;
|
|
}
|
|
|
|
public Task<List<DouyinCookie>> GetOpendCookiesAsync(Expression<Func<DouyinCookie, bool>> whereExpression = null)
|
|
{
|
|
return _cookieRepository.GetAllCookies(whereExpression);
|
|
}
|
|
|
|
public Task<List<DouyinCookie>> GetAllAsync()
|
|
{
|
|
return _cookieRepository.GetAllAsync();
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public async Task<bool> IsInit()
|
|
{
|
|
return await _cookieRepository.ExistsAsync(x => !string.IsNullOrEmpty(x.Id));
|
|
}
|
|
public async Task<bool> Add(DouyinCookie dyUserCookies)
|
|
{
|
|
return await _cookieRepository.InsertAsync(dyUserCookies);
|
|
}
|
|
public async Task<bool> Switch(DouyinCookieSwitchDto dto)
|
|
{
|
|
return await _cookieRepository.SwitchAsync(dto);
|
|
}
|
|
public bool InitCookie()
|
|
{
|
|
var exist = _cookieRepository.GetDefault();
|
|
if (exist != null)
|
|
{
|
|
return true;
|
|
}
|
|
var cookie = new DouyinCookie
|
|
{
|
|
UserName = "douyin2026",
|
|
Cookies = "",
|
|
SecUserId = "",
|
|
Id = IdGener.GetLong().ToString(),
|
|
Status = 0,
|
|
SavePath = "/app/collect",
|
|
FavSavePath = "/app/favorite",
|
|
UpSavePath = "/app/uper",
|
|
//ImgSavePath="/app/images",
|
|
//CollHasSyncd = 0,
|
|
//FavHasSyncd = 0,
|
|
//UperSyncd = 0,
|
|
MyUserId=""
|
|
};
|
|
return _cookieRepository.Insert(cookie);
|
|
}
|
|
|
|
// 查询单个
|
|
public async Task<DouyinCookie> GetByIdAsync(string id)
|
|
{
|
|
return await _cookieRepository.GetByIdAsync(id);
|
|
}
|
|
|
|
// 查询列表(可加条件)
|
|
public async Task<(List<DouyinCookie> list, int totalCount)> GetPagedAsync(int pageIndex, int pageSize)
|
|
{
|
|
return await _cookieRepository.GetPagedAsync(pageIndex, pageSize);
|
|
}
|
|
|
|
// 更新
|
|
public async Task<bool> UpdateAsync(DouyinCookie dyUserCookies)
|
|
{
|
|
return await _cookieRepository.UpdateAsync(dyUserCookies);
|
|
}
|
|
|
|
// 删除(根据主键)
|
|
public async Task<bool> DeleteByIdAsync(string id)
|
|
{
|
|
return await _cookieRepository.DeleteByIdAsync(id);
|
|
}
|
|
|
|
// 批量删除
|
|
public async Task<int> DeleteByIdsAsync(IEnumerable<string> ids)
|
|
{
|
|
return await _cookieRepository.DeleteByIdsAsync(ids.Cast<object>());
|
|
}
|
|
|
|
|
|
public async Task<bool> ImportCookies(List<DouyinCookie> cookies)
|
|
{
|
|
await _cookieRepository.DeleteAsync(x => !string.IsNullOrWhiteSpace(x.Id));
|
|
await _cookieRepository.InsertRangeAsync(cookies);
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将所有同步类型的同步状态改为已同步,这样,之后就不会再扫描所有接口数据,只会读取最新一页的数据了
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
//public async Task<bool> SetOnlySyncNew()
|
|
//{
|
|
// var cks= await _cookieRepository.GetAllAsync();
|
|
|
|
// foreach (var item in cks)
|
|
// {
|
|
// item.CollHasSyncd = 1;
|
|
// item.FavHasSyncd = 1;
|
|
// item.UperSyncd = 1;
|
|
// }
|
|
// var d= await _cookieRepository.UpdateRangeAsync(cks);
|
|
// return d>0;
|
|
//}
|
|
|
|
}
|
|
}
|