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 { /// /// 消息记录Service业务层处理 /// [AppService(ServiceType = typeof(IT_MessagesService), ServiceLifetime = LifeTime.Transient)] public class T_MessagesService : BaseService, IT_MessagesService { /// /// 查询消息记录列表 /// /// /// public PagedInfo GetList(T_MessagesQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() //.OrderBy("Id desc") .Where(predicate.ToExpression()) .ToPage(parm); return response; } /// /// 获取详情 /// /// /// public T_Messages GetInfo(long Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加消息记录 /// /// /// public T_Messages AddT_Messages(T_Messages model) { return Insertable(model).ExecuteReturnEntity(); } /// /// 修改消息记录 /// /// /// public int UpdateT_Messages(T_Messages model) { return Update(model, true); } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExp(T_MessagesQueryDto parm) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(parm.ReceiverId != null, it => it.ReceiverId == parm.ReceiverId); predicate = predicate.AndIF(parm.MessageType != null, it => it.MessageType == parm.MessageType); return predicate; } /// /// 发送系统通知消息 /// /// 接收者用户ID /// 消息内容 /// 关联的内容ID(可选) /// 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); } } }