Ejemplo n.º 1
0
        public virtual async Task SaveResidentUserAsync(string userId, BuildingsOnSiteRequest buildingsOnSiteRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (buildingsOnSiteRequest == null)
            {
                throw new ArgumentNullException(nameof(buildingsOnSiteRequest));
            }
            var building = await _buildingsStore.GetAsync(a => a.Where(b => b.Id == buildingsOnSiteRequest.Id && !b.IsDeleted));

            if (building == null)
            {
                return;
            }
            building.ResidentUser1 = buildingsOnSiteRequest.ResidentUser1;
            building.ResidentUser2 = buildingsOnSiteRequest.ResidentUser2;
            building.ResidentUser3 = buildingsOnSiteRequest.ResidentUser3;
            building.ResidentUser4 = buildingsOnSiteRequest.ResidentUser4;
            building.UpdateTime    = DateTime.Now;
            building.UpdateUser    = userId;
            await _buildingsStore.UpdateAsync(building, cancellationToken);
        }
        public async Task <ResponseMessage> PutBuildingsOnSite(UserInfo user, [FromBody] BuildingsOnSiteRequest buildingsOnSiteRequest)
        {
            Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})指派驻场(PutBuildingsOnSite):\r\n请求参数为:\r\n" + (buildingsOnSiteRequest != null ? JsonHelper.ToJson(buildingsOnSiteRequest) : ""));

            ResponseMessage response = new ResponseMessage();

            if (!ModelState.IsValid)
            {
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = ModelState.GetAllErrors();
                Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})指派驻场(PutBuildingsOnSite)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (buildingsOnSiteRequest != null ? JsonHelper.ToJson(buildingsOnSiteRequest) : ""));
                return(response);
            }
            try
            {
                if (!await _permissionExpansionManager.HavePermission(user.Id, "APPOINT_SCENE"))
                {
                    response.Code    = ResponseCodeDefines.NotAllow;
                    response.Message = "权限不足";
                    Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})指派驻场(PutBuildingsOnSite)失败:没有权限");
                    return(response);
                }
                else
                {
                    GatewayInterface.Dto.ExamineSubmitRequest examineSubmitRequest = new GatewayInterface.Dto.ExamineSubmitRequest();
                    examineSubmitRequest.ContentId   = buildingsOnSiteRequest.Id;
                    examineSubmitRequest.ContentType = "BuildingsOnSite";
                    examineSubmitRequest.ContentName = buildingsOnSiteRequest.Name;
                    examineSubmitRequest.Content     = JsonHelper.ToJson(buildingsOnSiteRequest);
                    examineSubmitRequest.Source      = "";
                    examineSubmitRequest.CallbackUrl = "通过http回调时再设置回调地址";
                    examineSubmitRequest.Action      = "BuildingsOnSite";
                    examineSubmitRequest.TaskName    = $"指派驻场:{buildingsOnSiteRequest.Name}";
                    examineSubmitRequest.Desc        = $"指派驻场{buildingsOnSiteRequest.ResidentUserName1},{buildingsOnSiteRequest.ResidentUserName2},{buildingsOnSiteRequest.ResidentUserName3}";
                    examineSubmitRequest.Ext1        = buildingsOnSiteRequest.ResidentUserName1;
                    examineSubmitRequest.Ext2        = buildingsOnSiteRequest.ResidentUserName2;
                    examineSubmitRequest.Ext3        = buildingsOnSiteRequest.ResidentUserName3;
                    examineSubmitRequest.Ext4        = buildingsOnSiteRequest.ResidentUserName4;

                    GatewayInterface.Dto.UserInfo userInfo = new GatewayInterface.Dto.UserInfo()
                    {
                        Id               = user.Id,
                        KeyWord          = user.KeyWord,
                        OrganizationId   = user.OrganizationId,
                        OrganizationName = user.OrganizationName,
                        UserName         = user.UserName
                    };

                    var _examineInterface = ApplicationContext.Current.Provider.GetRequiredService <IExamineInterface>();
                    var response2         = await _examineInterface.Submit(userInfo, examineSubmitRequest);

                    if (response2.Code != ResponseCodeDefines.SuccessCode)
                    {
                        response.Code    = ResponseCodeDefines.ServiceError;
                        response.Message = "向审核中心发起审核请求失败:" + response2.Message;
                        return(response);
                    }

                    //await _buildingsManager.SaveResidentUserAsync(user.Id, buildingsOnSiteRequest, HttpContext.RequestAborted);
                }
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ServiceError;
                response.Message = e.ToString();
                Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})指派驻场(PutBuildingsOnSite)报错:\r\n{e.ToString()},\r\n请求参数为:\r\n" + (buildingsOnSiteRequest != null ? JsonHelper.ToJson(buildingsOnSiteRequest) : ""));
            }
            return(response);
        }