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
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;
|
|
}
|
|
}
|
|
}
|