Example #1
0
        public async Task <ResponseMessage> NoticeCallbackAsync(UserNoticeCallbackRequest userNoticeCallbackRequest)
        {
            ResponseMessage response = new ResponseMessage();

            if (userNoticeCallbackRequest == null)
            {
                throw new ArgumentNullException(nameof(userNoticeCallbackRequest));
            }
            //找到本地审核流程
            var examineFlow = await _examineFlowStore.ExamineFlowGetAsync(a => a.Where(b => b.TaskGuid == userNoticeCallbackRequest.TaskGuid));

            if (examineFlow == null)
            {
                response.Code    = ResponseCodeDefines.NotFound;
                response.Message = "未在本地找到该审核流程";
            }
            //找到所有通知的人
            var userIds = await _permissionExpansionManager.GetPermissionUserIds(userNoticeCallbackRequest.PermissionItemId);

            if (userIds == null || userIds?.Count == 0)
            {
                response.Code    = ResponseCodeDefines.NotFound;
                response.Message = "未找到通知的人";
            }
            examineFlow.CurrentStepId = userNoticeCallbackRequest.CurrentStepId;
            await Store.NoticeCallbackAsync(userIds, examineFlow);

            //发送通知消息
            SendMessageRequest sendMessageRequest = new SendMessageRequest();

            sendMessageRequest.MessageTypeCode = "ExamineNotice";
            MessageItem messageItem = new MessageItem();

            messageItem.UserIds          = userIds;
            messageItem.MessageTypeItems = new List <TypeItem> {
                new TypeItem {
                    Key = "NOTICETYPE", Value = ExamineContentTypeConvert.GetContentTypeString(examineFlow.ContentType)
                },
                new TypeItem {
                    Key = "NAME", Value = examineFlow.ContentName
                },
                new TypeItem {
                    Key = "TIME", Value = DateTime.Now.ToString("MM-dd hh:mm")
                }
            };
            sendMessageRequest.MessageList = new List <MessageItem> {
                messageItem
            };
            try
            {
                MessageLogger.Info("发送通知消息协议:\r\n{0}", JsonHelper.ToJson(sendMessageRequest));
                _restClient.Post(ApplicationContext.Current.MessageServerUrl, sendMessageRequest, "POST", new NameValueCollection());
            }
            catch (Exception e)
            {
                MessageLogger.Error("发送通知消息出错:\r\n{0}", e.ToString());
            }

            return(response);
        }
Example #2
0
        public async Task <ResponseMessage> UserNoticeCallback([FromBody] UserNoticeCallbackRequest userNoticeCallbackRequest)
        {
            ResponseMessage response = new ResponseMessage();

            try
            {
                return(await _examineNoticeManager.NoticeCallbackAsync(userNoticeCallbackRequest));
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ServiceError;
                response.Message = e.ToString();
                Logger.Error($"审核告知回调报错:\r\n{e.ToString()},\r\n请求参数为:\r\n" + (userNoticeCallbackRequest != null ? JsonHelper.ToJson(userNoticeCallbackRequest) : ""));
            }
            return(response);
        }