ZrAdminNetCore/ZR.Service/Liveforum/T_MessagesService.cs
2025-11-17 21:40:25 +08:00

105 lines
3.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Infrastructure.Attribute;
using Infrastructure.Extensions;
using ZR.LiveForum.Model.Liveforum.Dto;
using ZR.LiveForum.Model.Liveforum;
using ZR.Repository;
using ZR.Service.Liveforum.ILiveforumService;
namespace ZR.Service.Liveforum
{
/// <summary>
/// 消息记录Service业务层处理
/// </summary>
[AppService(ServiceType = typeof(IT_MessagesService), ServiceLifetime = LifeTime.Transient)]
public class T_MessagesService : BaseService<T_Messages>, IT_MessagesService
{
/// <summary>
/// 查询消息记录列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public PagedInfo<T_MessagesDto> GetList(T_MessagesQueryDto parm)
{
var predicate = QueryExp(parm);
var response = Queryable()
//.OrderBy("Id desc")
.Where(predicate.ToExpression())
.ToPage<T_Messages, T_MessagesDto>(parm);
return response;
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public T_Messages GetInfo(long Id)
{
var response = Queryable()
.Where(x => x.Id == Id)
.First();
return response;
}
/// <summary>
/// 添加消息记录
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public T_Messages AddT_Messages(T_Messages model)
{
return Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 修改消息记录
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateT_Messages(T_Messages model)
{
return Update(model, true);
}
/// <summary>
/// 查询导出表达式
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
private static Expressionable<T_Messages> QueryExp(T_MessagesQueryDto parm)
{
var predicate = Expressionable.Create<T_Messages>();
predicate = predicate.AndIF(parm.ReceiverId != null, it => it.ReceiverId == parm.ReceiverId);
predicate = predicate.AndIF(parm.MessageType != null, it => it.MessageType == parm.MessageType);
return predicate;
}
/// <summary>
/// 发送系统通知消息
/// </summary>
/// <param name="receiverId">接收者用户ID</param>
/// <param name="messageContent">消息内容</param>
/// <param name="contentId">关联的内容ID可选</param>
/// <returns></returns>
public T_Messages SendSystemNotification(long receiverId, string messageContent, long? contentId = null)
{
var message = new T_Messages
{
ReceiverId = receiverId,
SenderId = null, // 系统消息
MessageType = 4, // 系统通知
ContentType = 3, // 用户
ContentId = contentId,
MessageContent = messageContent,
IsRead = false,
CreatedAt = DateTime.Now
};
return AddT_Messages(message);
}
}
}