76 lines
2.4 KiB
C#
76 lines
2.4 KiB
C#
using LangGuan.Command.Model.EntityModel;
|
|
using Microsoft.Extensions.Configuration;
|
|
using MongoDB.Bson;
|
|
using MongoDB.Driver;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq.Expressions;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace LangGuan.Services
|
|
{
|
|
public class RadarItemService : BaseService<RadarItems>
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="config"></param>
|
|
public RadarItemService(IConfiguration config) : base(config, nameof(RadarItems))
|
|
{
|
|
}
|
|
/// <summary>
|
|
/// 批量新加
|
|
/// </summary>
|
|
/// <param name="radarItems"></param>
|
|
/// <returns></returns>
|
|
public async Task AddMany(IEnumerable<RadarItems> radarItems)
|
|
{
|
|
await base.CreateManyAsync(radarItems);
|
|
}
|
|
/// <summary>
|
|
/// 取结果
|
|
/// </summary>
|
|
/// <param name="ids"></param>
|
|
/// <returns></returns>
|
|
public async Task<IEnumerable<RadarItems>> GetByPids(IEnumerable<string> ids)
|
|
{
|
|
FilterDefinitionBuilder<RadarItems> builderFilter = Builders<RadarItems>.Filter;
|
|
FilterDefinition<RadarItems> filter = builderFilter.In("pid", ids);
|
|
var result = await base.FindListyFilter(filter);
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 取单条
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
public async Task<List<IEnumerable<double>>> GetByPid(string id)
|
|
{
|
|
Expression<Func<RadarItems, bool>> exp = num => num.pid == id;
|
|
var result = (await base.GetListWithExp(exp)).ToList().Select(s => s.Signal).ToList(); ;
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
public async Task<int> getcount(string id)
|
|
{
|
|
Expression<Func<RadarItems, bool>> exp = num => num.pid == id;
|
|
var query = await base.GetListWithExp(exp);
|
|
var ids = query.Select(s => s.Id).ToList();
|
|
if (ids.Count > 36)
|
|
{
|
|
ids = ids.Take(ids.Count - 36).ToList();
|
|
foreach (var item in ids)
|
|
{
|
|
await base.RemoveAsync(item);
|
|
}
|
|
}
|
|
return query.Count();
|
|
}
|
|
}
|
|
}
|