TANG JIANG 1 жил өмнө
parent
commit
615e2805de

+ 63 - 9
src/DataSharing.Application/Receivers/ProvinceReceiver.cs

@@ -14,6 +14,7 @@ using DataSharing.Share.Dtos.Province.XieTong.Send;
 using DataSharing.Share.Enums;
 using DataSharing.WebPortal;
 using DotNetCore.CAP;
+using FluentValidation;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.TrCallCenter;
@@ -28,6 +29,7 @@ using XF.Domain.Cache;
 using XF.Domain.Dependency;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
+using static System.Runtime.InteropServices.JavaScript.JSType;
 
 namespace DataSharing.Application.Receivers
 {
@@ -343,6 +345,10 @@ namespace DataSharing.Application.Receivers
                 //处理通话记录时间
                 SetCallTime(dataCall);
 
+                var validator = new SubmitCaseRecordInfoValidator();
+                var validResult = await validator.ValidateAsync(dataCall, cancellationToken);
+                if (!validResult.IsValid)
+                    throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
                 #region 处理请求参数
                 var requestCall = new ProvinceListRequest<SubmitCaseRecordInfo>(configProvince.ClientId, configProvince.ClientSecret);
                 requestCall.SetData(new List<SubmitCaseRecordInfo>() { dataCall });
@@ -402,7 +408,10 @@ namespace DataSharing.Application.Receivers
             if (!dto.IsProvince)
             {
                 var data = await InitDataAsync(dto, cancellationToken);
-
+                var validator = new SubmitCaseInfoValidator();
+                var validResult = await validator.ValidateAsync(data, cancellationToken);
+                if (!validResult.IsValid)
+                    throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
                 #region 处理请求参数
                 var configProvince = _channelConfigurationManager.GetConfigurationProvince();
                 var request = new ProvinceListRequest<SubmitCaseInfo>(configProvince.ClientId, configProvince.ClientSecret);
@@ -429,7 +438,10 @@ namespace DataSharing.Application.Receivers
             if (dto.ExpiredTimeChanged || dto.Order.ActualHandleStepName == "话务部")
             {
                 var submitCaseInfo = await InitDataAsync(dto.Order, cancellationToken);
-
+                var validator = new SubmitCaseInfoValidator();
+                var validResult = await validator.ValidateAsync(submitCaseInfo, cancellationToken);
+                if (!validResult.IsValid)
+                    throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
                 #region 处理请求参数
                 var configProvince = _channelConfigurationManager.GetConfigurationProvince();
                 var requestSubmitCaseInfo = new ProvinceListRequest<SubmitCaseInfo>(configProvince.ClientId, configProvince.ClientSecret);
@@ -491,7 +503,10 @@ namespace DataSharing.Application.Receivers
             if (dto != null && dto.Order != null && !dto.Order.IsProvince)
             {
                 var data = await InitDataAsync(dto.Order, cancellationToken);
-
+                var validator = new SubmitCaseInfoValidator();
+                var validResult = await validator.ValidateAsync(data, cancellationToken);
+                if (!validResult.IsValid)
+                    throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
                 #region 处理请求参数
                 var configProvince = _channelConfigurationManager.GetConfigurationProvince();
                 var request = new ProvinceListRequest<SubmitCaseInfo>(configProvince.ClientId, configProvince.ClientSecret);
@@ -547,7 +562,10 @@ namespace DataSharing.Application.Receivers
 
             //处理通话记录时间
             SetCallTime(data);
-
+            var validator = new SubmitCaseRecordInfoValidator();
+            var validResult = await validator.ValidateAsync(data, cancellationToken);
+            if (!validResult.IsValid)
+                throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
             #region 处理请求参数
             var configProvince = _channelConfigurationManager.GetConfigurationProvince();
             var request = new ProvinceListRequest<SubmitCaseRecordInfo>(configProvince.ClientId, configProvince.ClientSecret);
@@ -581,7 +599,10 @@ namespace DataSharing.Application.Receivers
 
             //处理通话记录时间
             SetCallTime(data);
-
+            var validator = new SubmitCaseRecordInfoValidator();
+            var validResult = await validator.ValidateAsync(data, cancellationToken);
+            if (!validResult.IsValid)
+                throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
             #region 处理请求参数
             var configProvince = _channelConfigurationManager.GetConfigurationProvince();
             var request = new ProvinceListRequest<SubmitCaseRecordInfo>(configProvince.ClientId, configProvince.ClientSecret);
@@ -1054,7 +1075,6 @@ namespace DataSharing.Application.Receivers
             if (!string.IsNullOrEmpty(dto.Order.ActualHandleOrgCode) && dto.Order.ActualHandleOrgCode == "001")
                 dto.Order.ActualHandleOrgName = "热线中心";
 
-
             #region 写本地办理数据-用于查询办理流程
             //写本地办理数据-用于查询办理流程
             var orderWorkFlow = _mapper.Map<DsOrderWorkFlow>(dto.WorkflowTrace);
@@ -1068,10 +1088,12 @@ namespace DataSharing.Application.Receivers
             //省上下来的工单走协同的接口
             if (dto.Order.Source == ESource.ProvinceStraight && dto.Order.IsProvince)
             {
-
                 var data = _mapper.Map<GetCaseProcessReceiveInfo>(dto);
                 data.TacheName = "70:" + data.DeptName;
-
+                var validator = new GetCaseProcessReceiveInfoValidator();
+                var validResult = await validator.ValidateAsync(data, cancellationToken);
+                if (!validResult.IsValid)
+                    throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
                 #region 处理请求参数
                 var request = new ProvinceRequest<GetCaseProcessReceiveInfo>(configProvince.ClientId, configProvince.ClientSecret);
                 request.SetData(data);
@@ -1091,6 +1113,11 @@ namespace DataSharing.Application.Receivers
                 var data = _mapper.Map<SubmitCaseProcessInfo>(dto);
                 data.TacheName = "70:" + data.DeptName;
 
+                var validator = new SubmitCaseProcessInfoValidator();
+                var validResult = await validator.ValidateAsync(data, cancellationToken);
+                if (!validResult.IsValid)
+                    throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
+
                 #region 处理请求参数
                 var requestSubmitCaseProcessInfo = new ProvinceListRequest<SubmitCaseProcessInfo>(configProvince.ClientId, configProvince.ClientSecret);
                 requestSubmitCaseProcessInfo.SetData(new List<SubmitCaseProcessInfo>() { data });
@@ -1208,7 +1235,10 @@ namespace DataSharing.Application.Receivers
 
                 data.VisitType = visitType;
                 data.CliengGuid = Guid.NewGuid().ToString();
-
+                var validator = new GetVisitInfoReceiveInfoValidator();
+                var validResult = await validator.ValidateAsync(data, cancellationToken);
+                if (!validResult.IsValid)
+                    throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
                 #region 处理请求参数
                 var request = new ProvinceRequest<GetVisitInfoReceiveInfo>(configProvince.ClientId, configProvince.ClientSecret);
                 request.SetData(data);
@@ -1227,6 +1257,10 @@ namespace DataSharing.Application.Receivers
                 data.VisitType = visitType;
                 data.CliengGuid = Guid.NewGuid().ToString();
 
+                var validator = new SubmitVisitInfoValidator();
+                var validResult = await validator.ValidateAsync(data, cancellationToken);
+                if (!validResult.IsValid)
+                    throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
                 #region 处理请求参数
                 var request = new ProvinceListRequest<SubmitVisitInfo>(configProvince.ClientId, configProvince.ClientSecret);
                 request.SetData(new List<SubmitVisitInfo>() { data });
@@ -1291,6 +1325,10 @@ namespace DataSharing.Application.Receivers
                 data.FinishTime = finishTime;
                 data.FdBackTime = finishTime;
             }
+            var validator = new SubmitCaseResultInfoValidator();
+            var validResult = await validator.ValidateAsync(data, cancellationToken);
+            if (!validResult.IsValid)
+                throw new UserFriendlyException(string.Join(',', validResult.Errors.Select(d => d.ErrorMessage)));
 
             #region 处理请求参数
             var configProvince = _channelConfigurationManager.GetConfigurationProvince();
@@ -1560,6 +1598,22 @@ namespace DataSharing.Application.Receivers
                     break;
             }
             #endregion
+            switch (dto.SourceChannelCode.ToUpper())
+            {
+                case "RGDH":
+                case "WX":
+                case "WB":
+                case "AP":
+                case "WZ":
+                case "YJ":
+                case "SCZWFWW":
+                case "XCX":
+                    break;
+                default:
+                    sendCaseInfo.CaseSource = "QT";
+                    break;
+            }
+            sendCaseInfo.CaseSource = sendCaseInfo.CaseSource;
 
             var sendCaseInfoData = _mapper.Map<DsSendCaseInfo>(sendCaseInfo);
             sendCaseInfoData.OrderID = dto.Id;

+ 23 - 0
src/DataSharing.Application/Validators/GetCaseProcessReceiveInfoValidator.cs

@@ -0,0 +1,23 @@
+using DataSharing.Share.Dtos.Province.XieTong.Send;
+using FluentValidation;
+
+namespace DataSharing.Application.Validators
+{
+    public class GetCaseProcessReceiveInfoValidator : AbstractValidator<GetCaseProcessReceiveInfo>
+    {
+        public GetCaseProcessReceiveInfoValidator()
+        {
+            RuleFor(d => d.AreaCode).NotEmpty();
+            RuleFor(d => d.CaseSerial).NotEmpty();
+            RuleFor(d => d.DeptName).NotEmpty();
+            RuleFor(d => d.TacheName).NotEmpty();
+            RuleFor(d => d.ProcessTime).NotEmpty();
+            RuleFor(d => d.ProcessName).NotEmpty();
+            RuleFor(d => d.ProcessNote).NotEmpty();
+           // RuleFor(d => d.TrowGuid).NotEmpty();
+            RuleFor(d => d.CliengGuid).NotEmpty();
+            RuleFor(d => d.EndAreaCode).NotEmpty();
+            RuleFor(d => d.EndAreaName).NotEmpty();
+        }
+    }
+}

+ 20 - 0
src/DataSharing.Application/Validators/GetVisitInfoReceiveInfoValidator.cs

@@ -0,0 +1,20 @@
+using DataSharing.Share.Dtos.Province.XieTong.Send;
+using FluentValidation;
+
+namespace DataSharing.Application.Validators
+{
+    public class GetVisitInfoReceiveInfoValidator : AbstractValidator<GetVisitInfoReceiveInfo>
+    {
+        public GetVisitInfoReceiveInfoValidator()
+        {
+            RuleFor(d => d.CaseSerial).NotEmpty();
+            RuleFor(d => d.VisitType).NotEmpty();
+            RuleFor(d => d.VisitName).NotEmpty();
+            RuleFor(d => d.VisitTime).NotEmpty();
+            RuleFor(d => d.VisitRemark).NotEmpty();
+            RuleFor(d => d.SubjectResultSatify).NotEmpty();
+            RuleFor(d => d.AreaCode).NotEmpty();
+            RuleFor(d => d.CliengGuid).NotEmpty();
+        }
+    }
+}

+ 22 - 6
src/DataSharing.Application/Validators/SubmitCaseInfoValidator.cs

@@ -1,9 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using DataSharing.Share.Dtos.Province.HuiJu;
+using DataSharing.Share.Dtos.Province.HuiJu;
 using FluentValidation;
 
 namespace DataSharing.Application.Validators
@@ -13,6 +8,27 @@ namespace DataSharing.Application.Validators
         public SubmitCaseInfoValidator()
         {
             RuleFor(d => d.CaseTitle).NotEmpty();
+            RuleFor(d => d.CaseRegister).NotEmpty();
+            RuleFor(d => d.CaseRegisterNo).NotEmpty();
+            RuleFor(d => d.CaseDate).NotEmpty();
+            RuleFor(d => d.CaseSource).NotEmpty();
+            RuleFor(d => d.PhoneNumber).NotEmpty();
+            RuleFor(d => d.AppLicantName).NotEmpty();
+            RuleFor(d => d.AppLicantSex).NotEmpty();
+            RuleFor(d => d.CaseType).NotEmpty();
+            RuleFor(d => d.CaseAccord).NotEmpty();
+            RuleFor(d => d.CaseContent).NotEmpty();
+            RuleFor(d => d.CaseProcessType).NotEmpty();
+            RuleFor(d => d.CaseIsPublic).NotEmpty();
+            RuleFor(d => d.CaseIsSecrect).NotEmpty();
+            RuleFor(d => d.CaseIsVisit).NotEmpty();
+            RuleFor(d => d.CaseValid).NotEmpty();
+            RuleFor(d => d.CaseIsUrgent).NotEmpty();
+            RuleFor(d => d.AreaCode).NotEmpty();
+            RuleFor(d => d.CaseSerial).NotEmpty();
+            RuleFor(d => d.EventDate).NotEmpty();
+            RuleFor(d => d.ThemeSerial).NotEmpty();
+            RuleFor(d => d.CliengGuid).NotEmpty();
         }
     }
 }

+ 23 - 0
src/DataSharing.Application/Validators/SubmitCaseProcessInfoValidator.cs

@@ -0,0 +1,23 @@
+using DataSharing.Share.Dtos.Province.HuiJu;
+using FluentValidation;
+
+namespace DataSharing.Application.Validators
+{
+    public class SubmitCaseProcessInfoValidator : AbstractValidator<SubmitCaseProcessInfo>
+    {
+        public SubmitCaseProcessInfoValidator()
+        {
+            RuleFor(d => d.AreaCode).NotEmpty();
+            RuleFor(d => d.CaseSerial).NotEmpty();
+            RuleFor(d => d.DeptName).NotEmpty();
+            RuleFor(d => d.TacheName).NotEmpty();
+            RuleFor(d => d.ProcessTime).NotEmpty();
+            RuleFor(d => d.ProcessName).NotEmpty();
+            RuleFor(d => d.ProcessNote).NotEmpty();
+            RuleFor(d => d.CaseId).NotEmpty();
+            RuleFor(d => d.CliengGuid).NotEmpty();
+            RuleFor(d => d.EndAreaCode).NotEmpty();
+            RuleFor(d => d.EndAreaName).NotEmpty();
+        }
+    }
+}

+ 18 - 0
src/DataSharing.Application/Validators/SubmitCaseRecordInfoValidator.cs

@@ -0,0 +1,18 @@
+using DataSharing.Share.Dtos.Province.HuiJu;
+using FluentValidation;
+
+namespace DataSharing.Application.Validators
+{
+    public class SubmitCaseRecordInfoValidator : AbstractValidator<SubmitCaseRecordInfo>
+    {
+        public SubmitCaseRecordInfoValidator()
+        {
+            RuleFor(d => d.AreaCode).NotEmpty();
+            RuleFor(d => d.CaseSerial).NotEmpty();
+            RuleFor(d => d.PhoneNumber).NotEmpty();
+            RuleFor(d => d.PhoneStatus).NotEmpty();
+            RuleFor(d => d.IsPhoneCall).NotEmpty();
+            RuleFor(d => d.InIvr).NotEmpty();
+        }
+    }
+}

+ 29 - 0
src/DataSharing.Application/Validators/SubmitCaseResultInfoValidator.cs

@@ -0,0 +1,29 @@
+using DataSharing.Share.Dtos.Province.HuiJu;
+using FluentValidation;
+
+namespace DataSharing.Application.Validators
+{
+    public class SubmitCaseResultInfoValidator : AbstractValidator<SubmitCaseResultInfo>
+    {
+        public SubmitCaseResultInfoValidator()
+        {
+            RuleFor(d => d.CaseSerial).NotEmpty();
+            RuleFor(d => d.DeptName).NotEmpty();
+            RuleFor(d => d.FinishTime).NotEmpty();
+            RuleFor(d => d.FinishName).NotEmpty();
+            RuleFor(d => d.FinishNote).NotEmpty();
+            RuleFor(d => d.AreaCode).NotEmpty();
+            RuleFor(d => d.EndDept).NotEmpty();
+            RuleFor(d => d.EndName).NotEmpty();
+            RuleFor(d => d.ConcactType).NotEmpty();
+            RuleFor(d => d.FinishType).NotEmpty();
+            RuleFor(d => d.SignTime).NotEmpty();
+            RuleFor(d => d.FdBackTime).NotEmpty();
+            RuleFor(d => d.SendTime).NotEmpty();
+            RuleFor(d => d.FdBack).NotEmpty();
+            RuleFor(d => d.EndAreaCode).NotEmpty();
+            RuleFor(d => d.EndAreaName).NotEmpty();
+            RuleFor(d => d.CliengGuid).NotEmpty();
+        }
+    }
+}

+ 21 - 0
src/DataSharing.Application/Validators/SubmitVisitInfoValidator.cs

@@ -0,0 +1,21 @@
+using DataSharing.Share.Dtos.Province.HuiJu;
+using FluentValidation;
+
+namespace DataSharing.Application.Validators
+{
+    internal class SubmitVisitInfoValidator : AbstractValidator<SubmitVisitInfo>
+    {
+        public SubmitVisitInfoValidator()
+        {
+            RuleFor(d => d.AreaCode).NotEmpty();
+            RuleFor(d => d.CaseSerial).NotEmpty();
+            RuleFor(d => d.VisitTime).NotEmpty();
+            RuleFor(d => d.VisitName).NotEmpty();
+            RuleFor(d => d.VisitRemark).NotEmpty();
+            RuleFor(d => d.SubjectResultSatify).NotEmpty();
+            RuleFor(d => d.FirstSatisfaction).NotEmpty();
+            RuleFor(d => d.CliengGuid).NotEmpty();
+            RuleFor(d => d.VisitType).NotEmpty();
+        }
+    }
+}