添加项目文件。

This commit is contained in:
2023-03-13 15:00:34 +08:00
parent 42bf06ca3e
commit 1d73df3235
1205 changed files with 185078 additions and 0 deletions

View File

@@ -0,0 +1,123 @@
using JNPF.Common.Extension;
using JNPF.Common.Filter;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.LinqBuilder;
using JNPF.Message.Entitys.Dto.MessageMonitor;
using JNPF.Message.Entitys.Entity;
using JNPF.Systems.Entitys.Permission;
using JNPF.Systems.Interfaces.Permission;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace JNPF.Message.Service;
/// <summary>
/// 消息监控
/// 版 本V3.2
/// 版 权拓通智联科技有限公司http://www.tuotong-tech.com
/// 日 期2021-06-01.
/// </summary>
[ApiDescriptionSettings(Tag = "Message", Name = "MessageMonitor", Order = 240)]
[Route("api/message/[controller]")]
public class MessageMonitorService : IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<MessageMonitorEntity> _repository;
private readonly IUsersService _usersService;
public MessageMonitorService(
ISqlSugarRepository<MessageMonitorEntity> repository,
IUsersService usersService)
{
_repository = repository;
_usersService = usersService;
}
#region Get
/// <summary>
/// 列表.
/// </summary>
/// <param name="input">请求参数.</param>
/// <returns></returns>
[HttpGet("")]
public async Task<dynamic> GetList([FromQuery] MessageMonitorQuery input)
{
var whereLambda = LinqExpression.And<MessageMonitorEntity>();
whereLambda = whereLambda.And(a => a.DeleteMark == null);
var start = new DateTime();
var end = new DateTime();
if (input.endTime != null && input.startTime != null)
{
start = Convert.ToDateTime(string.Format("{0:yyyy-MM-dd 00:00:00}", input.startTime?.TimeStampToDateTime()));
end = Convert.ToDateTime(string.Format("{0:yyyy-MM-dd 23:59:59}", input.endTime?.TimeStampToDateTime()));
whereLambda = whereLambda.And(a => SqlFunc.Between(a.SendTime, start, end));
}
// 关键字用户、IP地址、功能名称
if (!string.IsNullOrEmpty(input.keyword))
whereLambda = whereLambda.And(a => a.Title.Contains(input.keyword));
if (input.messageSource.IsNotEmptyOrNull())
whereLambda = whereLambda.And(a => a.MessageSource.Contains(input.messageSource));
if (input.messageType.IsNotEmptyOrNull())
whereLambda = whereLambda.And(m => m.MessageType.Contains(input.messageType));
var list = await _repository.AsSugarClient().Queryable<MessageMonitorEntity>()
.Where(whereLambda)
.OrderBy(a => a.CreatorTime, OrderByType.Desc)
.OrderBy(a => a.LastModifyTime, OrderByType.Desc)
.Select(a => new MessageMonitorListOutput
{
id = a.Id,
messageType = SqlFunc.Subqueryable<MessageDataTypeEntity>().Where(u => u.Type == "1" && u.EnCode == a.MessageType).Select(u => u.FullName),
messageSource = SqlFunc.Subqueryable<MessageDataTypeEntity>().Where(u => u.Type == "4" && u.EnCode == a.MessageSource).Select(u => u.FullName),
title = a.Title,
sendTime = a.SendTime,
}).ToPagedListAsync(input.currentPage, input.pageSize);
return PageResult<MessageMonitorListOutput>.SqlSugarPageResult(list);
}
/// <summary>
/// 详情.
/// </summary>
/// <returns></returns>
[HttpGet("detail/{id}")]
public async Task<dynamic> GetInfo(string id)
{
return await _repository.AsSugarClient().Queryable<MessageMonitorEntity>().Where(a => a.Id == id && a.DeleteMark == null).Select(a => new MessageMonitorListOutput
{
id = a.Id,
messageType = SqlFunc.Subqueryable<MessageDataTypeEntity>().Where(u => u.Type == "1" && u.EnCode == a.MessageType).Select(u => u.FullName),
messageSource = SqlFunc.Subqueryable<MessageDataTypeEntity>().Where(u => u.Type == "4" && u.EnCode == a.MessageSource).Select(u => u.FullName),
title = a.Title,
sendTime = a.SendTime,
receiveUser = SqlFunc.Subqueryable<UserEntity>().Where(u => u.Id == SqlFunc.ToString(a.ReceiveUser)).Select(u => SqlFunc.MergeString(u.RealName, "/", u.Account)),
content = a.Content
}).FirstAsync();
}
#endregion
#region POST
/// <summary>
/// 批量删除.
/// </summary>
/// <param name="input">请求参数.</param>
/// <returns></returns>
[HttpDelete("batchRemove")]
public async Task Delete([FromBody] MessageMonitorDelInput input)
{
await _repository.AsDeleteable().In(it => it.Id, input.ids).ExecuteCommandAsync();
}
/// <summary>
/// 一键删除.
/// </summary>
/// <returns></returns>
[HttpDelete("empty")]
public async Task Delete()
{
await _repository.DeleteAsync(x => x.DeleteMark == null);
}
#endregion
}