using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using GxPress.Entity.Middle; using GxPress.Request.Notice; using SqlKata; using Datory; using GxPress.Request.App.Middle; using GxPress.Request.Inbox; namespace GxPress.Repository.Interface { public interface IMiddleRepository : IRepository { Task<int> InsertAsync(Middle middle); Task<bool> UpdateAsync(SqlKata.Query query); Task<bool> UpdateAsync(Middle middle); Task<IEnumerable<Middle>> FindAsync(SqlKata.Query query); Task<bool> DeleteAsync(SqlKata.Query query); Task<Middle> GetMiddleAsync(Query query); Task<Middle> GetMiddleAsync(int id); Task<bool> SetSortAsync(MiddleSortRequest request); Task<bool> SetTopAsync(int id); /// <summary> /// 删除 /// </summary> /// <param name="request"></param> /// <returns></returns> Task<bool> DeleteAsync(NoticeDeRequest request); Task<bool> DeleteAsync(int middleId, int folderTypeId); /// <summary> /// 阅读 /// </summary> /// <param name="id"></param> /// <returns></returns> Task<bool> ReadAsync(int id); /// <summary> /// 恢复删除 /// </summary> /// <param name="request"></param> /// <returns></returns> Task<bool> RecoverDeleteAsync(NoticeDeRequest request); Task<bool> UpdateFolderNameAsync(MiddleFolderNameRequest request); Task<bool> IsFolderAsync(int parentId); /// <summary> /// 根据用户ID文件夹ID查询小组数量 /// </summary> /// <param name="userId"></param> /// <param name="folderId"></param> /// <param name="folderTypeId"></param> /// <returns></returns> Task<int> FindGroupCountAsync(int userId, int folderId, int folderTypeId); /// <summary> /// /// </summary> /// <param name="query"></param> /// <returns></returns> Task<int> CountAsync(SqlKata.Query query); /// <summary> /// 添加 /// </summary> /// <param name="middle"></param> /// <returns></returns> Task<bool> InsertAsync(List<Middle> middles); Task<IEnumerable<Middle>> GetAllAsync(SqlKata.Query query); /// <summary> /// 获取下级数据 /// </summary> /// <param name="id"></param> /// <returns></returns> Task<IEnumerable<Middle>> GetMiddleChildrenAsync(int id); Task<IEnumerable<Middle>> FindAsync(InboxSearchRequest request); Task<bool> ExistsAsync(SqlKata.Query query); Task<int> GetSytemFolderAsync(int userId); /// <summary> /// 排除不是文件夹的ID /// </summary> /// <param name="ids"></param> /// <returns></returns> Task<IEnumerable<int>> GetMiddleIsFolderAsync(IEnumerable<int> ids); /// <summary> /// 递归获取父级下面的所有子集 /// </summary> /// <param name="id"></param> /// <param name="ids"></param> /// <returns></returns> Task<IEnumerable<int>> GetAllMiddleChildrenByParentIdAsync(List<int> ids,List<int> returnIds); } }