123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using AutoMapper;
- using GxPress.Common.Address;
- using GxPress.Common.AppOptions;
- using GxPress.Common.Tools;
- using GxPress.Entity;
- using GxPress.Repository.Interface;
- using GxPress.Result.App.FileLibrary;
- using Microsoft.Extensions.Options;
- using Datory;
- namespace GxPress.Repository.Implement
- {
- public class FileLibraryRepository : IFileLibraryRepository
- {
- private readonly Repository<FileLibrary> _repository;
- private readonly IMapper _mapper;
- public FileLibraryRepository(IOptionsMonitor<DatabaseOptions> dbOptionsAccessor, IMapper mapper)
- {
- var databaseType = StringUtils.ToEnum<DatabaseType>(dbOptionsAccessor.CurrentValue.DatabaseType, DatabaseType.MySql);
- var database = new Database(databaseType, dbOptionsAccessor.CurrentValue.ConnectionString);
- _repository = new Repository<FileLibrary>(database);
- _mapper = mapper;
- }
- public IDatabase Database => _repository.Database;
- public string TableName => _repository.TableName;
- public List<TableColumn> TableColumns => _repository.TableColumns;
- /// <summary>
- /// 添加文件
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- public async Task<int> InsertAsync(FileLibrary request)
- {
- return await _repository.InsertAsync(request);
- }
- /// <summary>
- /// 根据ID查询文件数据
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public async Task<FileLibraryResult> GetFileLibraryByIdAsync(int id)
- {
- var fileLibrary = await _repository.GetAsync(id);
- fileLibrary.FileUrl = StringUtils.AddDomain(fileLibrary.FileUrl);
- return _mapper.Map<FileLibraryResult>(fileLibrary);
- }
- /// <summary>
- /// 根据ID获取文件数据
- /// </summary>
- /// <param name="ids"></param>
- /// <returns></returns>
- public async Task<IEnumerable<FileLibraryResult>> GetFileLibraryByIdsAsync(string ids)
- {
- var query = Q.NewQuery();
- var list = StringUtils.StringCollectionToIntList(ids);
- foreach (var item in list)
- {
- query.OrWhere(nameof(FileLibrary.Id), item);
- }
- var fileLibraryList = await _repository.GetAllAsync(query);
- foreach (var fileLibrary in fileLibraryList)
- {
- fileLibrary.FileUrl = StringUtils.AddDomain(fileLibrary.FileUrl);
- }
- return fileLibraryList.Select(n => _mapper.Map<FileLibraryResult>(n));
- }
- /// <summary>
- /// 根据用户名获取电脑上传的数据
- /// </summary>
- /// <param name="userId"></param>
- /// <returns></returns>
- public async Task<IEnumerable<FileLibraryResult>> GetFileLibraryByUserIdAsync(int userId)
- {
- var fileLibraryList = await _repository.GetAllAsync(Q.Where(nameof(Entity.FileLibrary.UserId), userId).OrderByDesc(nameof(Entity.FileLibrary.CreatedDate)));
- return fileLibraryList.Select(n => _mapper.Map<FileLibraryResult>(n));
- }
- }
- }
|