Jason 1 vuosi sitten
vanhempi
commit
2ed5a0a515
1 muutettua tiedostoa jossa 18 lisäystä ja 4 poistoa
  1. 18 4
      src/Hotline.Api/Controllers/ArticleController.cs

+ 18 - 4
src/Hotline.Api/Controllers/ArticleController.cs

@@ -34,8 +34,9 @@ namespace Hotline.Api.Controllers
         private readonly IRepository<CircularRecord> _circularRecordRepository;
         private readonly IRepository<CircularReadGroup> _circularReadGroupRepository;
         private readonly IRepository<User> _userRepository;
+        private readonly ICircularRecordDomainService _circularRecordDomainService;
 
-        public ArticleController(IRepository<Bulletin> bulletinRepository,IMapper mapper, ISystemDomainService systemDomainService, ISystemOrganizeRepository organizeRepository, IWorkflowApplication workflowApplication, IRepository<Circular> circularRepository,ISessionContext sessionContext,IRepository<CircularRecord> circularRecordRepository,IRepository<CircularReadGroup> circularReadGroupRepository,IRepository<User> userRepository)
+        public ArticleController(IRepository<Bulletin> bulletinRepository,IMapper mapper, ISystemDomainService systemDomainService, ISystemOrganizeRepository organizeRepository, IWorkflowApplication workflowApplication, IRepository<Circular> circularRepository,ISessionContext sessionContext,IRepository<CircularRecord> circularRecordRepository,IRepository<CircularReadGroup> circularReadGroupRepository,IRepository<User> userRepository, ICircularRecordDomainService circularRecordDomainService)
         {
             _bulletinRepository = bulletinRepository;
             _mapper = mapper;
@@ -47,6 +48,7 @@ namespace Hotline.Api.Controllers
             _circularRecordRepository = circularRecordRepository;
             _circularReadGroupRepository = circularReadGroupRepository;
             _userRepository = userRepository;
+            _circularRecordDomainService = circularRecordDomainService;
         }
         #region 通知
 
@@ -188,7 +190,7 @@ namespace Hotline.Api.Controllers
             if (model.CircularType == ECircularType.Person)
             {
                 //个人阅读
-                var readGroup = model.CircularReadGroups.FirstOrDefault(x => x.UserId == _sessionContext.UserId && !x.IsRead);
+                var readGroup = model.CircularReadGroups.FirstOrDefault(x => x.UserId == _sessionContext.RequiredUserId && !x.IsRead);
                 if (readGroup!=null)
                 {
                     readGroup.IsRead = true;
@@ -199,14 +201,26 @@ namespace Hotline.Api.Controllers
                         readGroup.IsTimeOut = false;
                     await _circularReadGroupRepository.UpdateAsync(readGroup, HttpContext.RequestAborted);
                     //处理计数
-
+                    await _circularRecordDomainService.RecordUserHandle(_sessionContext.RequiredUserId, false, HttpContext.RequestAborted);
                 }
             }
             else
             {
                 //部门阅读
+                var readGroup = model.CircularReadGroups.FirstOrDefault(x => x.OrgId == _sessionContext.RequiredOrgId && !x.IsRead);
+                if (readGroup!=null)
+                {
+                    readGroup.IsRead = true;
+                    readGroup.ReadTime = DateTime.Now;
+                    if (DateTime.Now > model.LostEfficacyTime)
+                        readGroup.IsTimeOut = true;
+                    else
+                        readGroup.IsTimeOut = false;
+                    await _circularReadGroupRepository.UpdateAsync(readGroup, HttpContext.RequestAborted);
+                    //处理部门计数
+                    await _circularRecordDomainService.RecordOrgHandle(_sessionContext.RequiredOrgId, false, HttpContext.RequestAborted);
+                }
             }
-
             return _mapper.Map<CircularDto>(model);
         }