You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

109 lines
3.9 KiB

using System;
using System.Data;
using System.Threading.Tasks;
using Yitter.IdGenerator;
using Znyc.Cloudcar.Admin.Commons.Cache;
using Znyc.Cloudcar.Admin.Commons.Services;
using Znyc.Cloudcar.Admin.Security.Dtos;
using Znyc.Cloudcar.Admin.Security.Entitys;
using Znyc.Cloudcar.Admin.Security.IRepositories;
using Znyc.Cloudcar.Admin.Security.IServices;
namespace Znyc.Cloudcar.Admin.Security.Services
{
/// <summary>
/// </summary>
public class MessageLogsService : BaseService<MessageLogsEntity, MessageLogsOutputDto, long>, IMessageLogsService
{
private readonly IMessageLogsRepository _messageLogsRepository;
private readonly IMessageRepository _messageRepository;
public MessageLogsService(
IMessageLogsRepository messageLogsRepository,
IMessageRepository messageRepository
) : base(messageLogsRepository)
{
_messageLogsRepository = messageLogsRepository;
_messageRepository = messageRepository;
}
/// <summary>
/// 同步新增实体。
/// </summary>
/// <param name="entity">实体</param>
/// <param name="trans">事务对象</param>
/// <returns></returns>
public override long Insert(MessageLogsEntity entity, IDbTransaction trans = null)
{
entity.Id = YitIdHelper.NextId();
long result = repository.Insert(entity, trans);
return result;
}
/// <summary>
/// 异步更新实体。
/// </summary>
/// <param name="entity">实体</param>
/// <param name="id">主键ID</param>
/// <param name="trans">事务对象</param>
/// <returns></returns>
public override async Task<bool> UpdateAsync(MessageLogsEntity entity, long id, IDbTransaction trans = null)
{
bool result = await repository.UpdateAsync(entity, id, trans);
return result;
}
/// <summary>
/// 异步步新增实体。
/// </summary>
/// <param name="entity">实体</param>
/// <param name="trans">事务对象</param>
/// <returns></returns>
public override async Task<int> InsertAsync(MessageLogsEntity entity, IDbTransaction trans = null)
{
entity.Id = YitIdHelper.NextId();
int result = await repository.InsertAsync(entity, trans);
return result;
}
/// <summary>
/// 添加消息记录
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<bool> AddAsync(MessageInputDto input)
{
MessageEntity entity = new MessageEntity
{
Id = YitIdHelper.NextId(),
SendId = input.CreatedUserId,
EquipmentId = input.EquipmentId,
EquipmentTitle = input.EquipmentTitle,
MessageTitle = input.MessageTitle,
GroupId = 0,
Content = "",
SendTime = DateTime.Now,
CreatedTime = DateTime.Now,
CreatedUserId = input.CreatedUserId,
ModifiedTime = DateTime.Now
};
int id = await _messageRepository.InsertAsync(entity);
MessageLogsEntity messageLogs = new MessageLogsEntity
{
Id = YitIdHelper.NextId(),
ReceiverId = input.UserId,
MessageId = entity.Id,
State = 0, //未读
CreatedTime = DateTime.Now,
ModifiedTime = DateTime.Now,
CreatedUserId = input.CreatedUserId
};
await _messageLogsRepository.InsertAsync(messageLogs);
CacheHelper cacheHelper = new CacheHelper();
string key = string.Format("unread:number:{0}", input.UserId);
cacheHelper.Remove(key);
return true;
}
}
}