123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- using Flyinsono.DBCopy.Tool.Entities;
- using Flyinsono.DBCopy.Tool.Utilities;
- using MongoDB.Driver;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Flyinsono.DBCopy.Tool.Service.Repositories
- {
- internal class PosterConfigsDBRepository : BaseDBRepository
- {
- /// <summary>
- /// 分页查询
- /// </summary>
- /// <param name="filter"></param>
- /// <returns></returns>
- public IList<PosterConfigs> GetPostConfigsRecords(FilterDefinition<PosterConfigs> filter)
- {
- var entities = LargerQuery(MongoDbClientSingle.Instance.PosterConfigs, filter)?.ToList() ?? new List<PosterConfigs>();
- return entities;
- }
- /// <summary>
- /// 过滤测试PosterConfigs
- /// </summary>
- /// <returns></returns>
- public IList<PosterConfigs> GetTestPosterConfigsByCondition()
- {
- Logger.WriteLineInfo($"Starting Query Wait Clear PosterConfigs Data");
- IList<PosterConfigs> posterConfigs = new List<PosterConfigs>();
- var builder = Builders<PosterConfigs>.Filter;
- var filter = builder.Where(x => x.IsDeleted == false && x.CreateTime < CommonConfigManager.FilterGeneral.ClearDeadline.AddMonths(-18));
- var filterReportPosters = CommonConfigManager.FilterReportPosters;
- FilterDefinition<PosterConfigs> orFilter = null;
- if (filterReportPosters?.Count > 0)
- {
- foreach (var item in filterReportPosters)
- {
- var curNameFilter = builder.Where(c => c.Name.ToLower().Contains(item.ToLower()));
- if (orFilter == null)
- {
- orFilter = curNameFilter;
- }
- else
- {
- orFilter = orFilter | curNameFilter;
- }
- }
- }
- filter = filter & orFilter;
- var posterConfigsList = MongoDbClientSingle.Instance.PosterConfigs.Find(filter)?.ToList();
- if (posterConfigsList?.Count > 0)
- {
- foreach (var item in posterConfigsList)
- {
- posterConfigs.Add(item);
- }
- }
- var deleteList = MongoDbClientSingle.Instance.PosterConfigs.Find(c => c.IsDeleted == true)?.ToList();
- if (deleteList?.Count > 0)
- {
- foreach (var item in deleteList)
- {
- posterConfigs.Add(item);
- }
- }
- Logger.WriteLineInfo($"End Query Wait Clear PosterConfigs Data, Count: " + posterConfigs.Count);
- return posterConfigs;
- }
- /// <summary>
- /// 过滤测试PosterHistories
- /// </summary>
- /// <returns></returns>
- public IList<PosterHistories> GetTestPosterHistoriesByCondition(IList<PosterConfigs> posterConfigs)
- {
- Logger.WriteLineInfo($"Starting Query Wait Clear PosterHistories Data");
- IList<PosterHistories> posterHistories = new List<PosterHistories>();
- var builder = Builders<PosterHistories>.Filter;
- var filter = builder.Where(x => x.IsDeleted == false && x.CreateTime < CommonConfigManager.FilterGeneral.ClearDeadline.AddMonths(-18));
- var posterHistoriesList = MongoDbClientSingle.Instance.PosterHistories.Find(filter)?.ToList();
- if (posterHistoriesList?.Count > 0)
- {
- foreach (var item in posterHistoriesList)
- {
- posterHistories.Add(item);
- }
- }
- var deleteList = MongoDbClientSingle.Instance.PosterHistories.Find(c => c.IsDeleted == true)?.ToList();
- if (deleteList?.Count > 0)
- {
- foreach (var item in deleteList)
- {
- posterHistories.Add(item);
- }
- }
- var ids = posterConfigs.Select(c => c.Id).Distinct().ToList();
- if (ids?.Count > 0)
- {
- var otherList = MongoDbClientSingle.Instance.PosterHistories.Find(c => ids.Contains(c.PosterConfig.ConfigId))?.ToList();
- if (otherList?.Count > 0)
- {
- foreach (var item in otherList)
- {
- posterHistories.Add(item);
- }
- }
- }
- Logger.WriteLineInfo($"End Query Wait Clear PosterHistories Data, Count: " + posterHistories.Count);
- return posterHistories;
- }
- /// <summary>
- /// 保存清理数据
- /// </summary>
- /// <param name="terminalList"></param>
- /// <returns></returns>
- public bool SaveClearData(IList<PosterConfigs> posterConfigs, IList<PosterHistories> posterHistories)
- {
- if (posterConfigs?.Count > 0)
- {
- Logger.WriteLineInfo($"Starting Clear PosterConfigs Data");
- var configIds = posterConfigs.Select(c => c.Id).ToList();
- //删除正式表
- var builder = Builders<PosterConfigs>.Filter;
- var filter = builder.In(x => x.Id, configIds);
- var result = MongoDbClientSingle.Instance.PosterConfigs.DeleteMany(filter);
- Logger.WriteLineInfo($"Clear PosterConfigs Data Completed, Count: " + posterConfigs.Count);
- }
- if (posterHistories?.Count > 0)
- {
- Logger.WriteLineInfo($"Starting Clear PosterHistories Data");
- var historiesIds = posterHistories.Select(c => c.Id).ToList();
- //删除正式表
- var builder = Builders<PosterHistories>.Filter;
- var filter = builder.In(x => x.Id, historiesIds);
- var result = MongoDbClientSingle.Instance.PosterHistories.DeleteMany(filter);
- Logger.WriteLineInfo($"Clear PosterHistories Data Completed, Count: " + posterHistories.Count);
- }
- return true;
- }
- }
- }
|