MissiveService.Recall.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using System.Threading.Tasks;
  2. using Datory;
  3. using GxPress.Common.Exceptions;
  4. using System.Transactions;
  5. namespace GxPress.Service.Implement.Missive
  6. {
  7. public partial class MissiveService
  8. {
  9. /// <summary>
  10. /// 站内信撤回
  11. /// </summary>
  12. /// <param name="missiveId"></param>
  13. /// <returns></returns>
  14. public async Task<bool> RecallAsync(int missiveId)
  15. {
  16. //删除
  17. var missive = await _missiveRepository.GetAsync(missiveId);
  18. if (missive == null)
  19. throw new BusinessException("站内信不存在!");
  20. // var createdDate = Convert.ToDateTime(missive.CreatedDate);
  21. // if (createdDate.AddMinutes(5) > DateTime.Now)
  22. // throw new BusinessException("发送数据超过5分钟不能撤回!");
  23. using (TransactionScope transactionScope = new TransactionScope())
  24. {
  25. //删除middle下面的站内信
  26. await _middleRepository.DeleteAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), missive.Id).Where(nameof(Entity.Middle.Middle.FolderType), 5).Where(nameof(Entity.Middle.Middle.IsAdmin), false));
  27. //修改为草稿箱
  28. await _middleRepository.UpdateAsync(Q.Where(nameof(Entity.Middle.Middle.MiddleId), missive.Id).Where(nameof(Entity.Middle.Middle.FolderType), 5).Where(nameof(Entity.Middle.Middle.IsAdmin), true).Set(nameof(Entity.Middle.Middle.NoticeAddresseeType),2));
  29. transactionScope.Complete();
  30. }
  31. return true;
  32. }
  33. }
  34. }