Przeglądaj źródła

Merge branch 'release' of http://110.188.24.182:10023/Fengwo/hotline into release

田爽 6 miesięcy temu
rodzic
commit
03d32f5784

+ 77 - 77
src/Hotline.Application.Contracts/Validators/Order/AddOrderDtoValidator.cs

@@ -12,120 +12,120 @@ public class AddOrderDtoValidator : AbstractValidator<AddOrderDto>
 
         #region 医疗服务中心受理单
 
-        RuleFor(d => d.OrderExtension.MedName).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("医院名称最多200字符");
-        RuleFor(d => d.OrderExtension.MedAddress).MaximumLength(500).When(d=>d.OrderExtension!=null).WithMessage("医院地址最多500字符");
-        RuleFor(d => d.OrderExtension.MedDepartment).MaximumLength(100).When(d=>d.OrderExtension!=null).WithMessage("科室最多200字符");
-        RuleFor(d => d.OrderExtension.MedDoctor).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("医生最多200字符");
-        RuleFor(d => d.OrderExtension.MedPatient).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("病人姓名最多200字符");
-        RuleFor(d => d.OrderExtension.MedNo).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("就诊卡号最多200字符");
-        RuleFor(d => d.OrderExtension.MedIdNo).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("身份证号最多200字符");
+        RuleFor(d => d.OrderExtension.MedName).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("医院名称最多200字符");
+        RuleFor(d => d.OrderExtension.MedAddress).MaxLengthWithChineseChar(500).When(d=>d.OrderExtension!=null).WithMessage("医院地址最多500字符");
+        RuleFor(d => d.OrderExtension.MedDepartment).MaxLengthWithChineseChar(100).When(d=>d.OrderExtension!=null).WithMessage("科室最多100字符");
+        RuleFor(d => d.OrderExtension.MedDoctor).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("医生最多50字符");
+        RuleFor(d => d.OrderExtension.MedPatient).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("病人姓名最多200字符");
+        RuleFor(d => d.OrderExtension.MedNo).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("就诊卡号最多50字符");
+        RuleFor(d => d.OrderExtension.MedIdNo).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("身份证号最多50字符");
         #endregion
 
         #region 电视购物及商铺购买退换货中心受理单
-        RuleFor(d => d.OrderExtension.ExchTv).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("电视台(商铺)最多50字符");
-        RuleFor(d => d.OrderExtension.ExchProduct).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("产品名称最多200字符");
-        RuleFor(d => d.OrderExtension.ExchName).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("商家名称最多200字符");
-        RuleFor(d => d.OrderExtension.ExchAddress).MaximumLength(500).When(d=>d.OrderExtension!=null).WithMessage("商家地址最多500字符");
-        RuleFor(d => d.OrderExtension.ExchConsignee).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("收货人最多200字符");
-        RuleFor(d => d.OrderExtension.ExchConsigneeAddress).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("收货地址最多200字符");
+        RuleFor(d => d.OrderExtension.ExchTv).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("电视台(商铺)最多50字符");
+        RuleFor(d => d.OrderExtension.ExchProduct).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("产品名称最多200字符");
+        RuleFor(d => d.OrderExtension.ExchName).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("商家名称最多200字符");
+        RuleFor(d => d.OrderExtension.ExchAddress).MaxLengthWithChineseChar(500).When(d=>d.OrderExtension!=null).WithMessage("商家地址最多500字符");
+        RuleFor(d => d.OrderExtension.ExchConsignee).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("收货人最多200字符");
+        RuleFor(d => d.OrderExtension.ExchConsigneeAddress).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("收货地址最多200字符");
         #endregion
 
         #region 高速公路投诉中心受理单
-        RuleFor(d => d.OrderExtension.ExpwyEntrance).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("高速入口最多200字符");
-        RuleFor(d => d.OrderExtension.ExpwyExit).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("高速出口最多200字符");
-        RuleFor(d => d.OrderExtension.ExpwyNo).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("高速入口最多50字符");
+        RuleFor(d => d.OrderExtension.ExpwyEntrance).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("高速入口最多200字符");
+        RuleFor(d => d.OrderExtension.ExpwyExit).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("高速出口最多200字符");
+        RuleFor(d => d.OrderExtension.ExpwyNo).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("高速入口最多50字符");
         #endregion
 
         #region 电视台虚假广告中心受理单
-        RuleFor(d => d.OrderExtension.AdTv).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("电视台最多50字符");
-        RuleFor(d => d.OrderExtension.AdProduct).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("产品名称最多200字符");
+        RuleFor(d => d.OrderExtension.AdTv).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("电视台最多50字符");
+        RuleFor(d => d.OrderExtension.AdProduct).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("产品名称最多200字符");
         #endregion
 
         #region 四川政务服务网技术中心受理单
 
-        RuleFor(d => d.OrderExtension.ZwfwwAccount).MaximumLength(20).When(d=>d.OrderExtension!=null).WithMessage("服务账号最多20字符");
-        RuleFor(d => d.OrderExtension.ZwfwwContact).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("联系方式最多50字符");
+        RuleFor(d => d.OrderExtension.ZwfwwAccount).MaxLengthWithChineseChar(20).When(d=>d.OrderExtension!=null).WithMessage("服务账号最多20字符");
+        RuleFor(d => d.OrderExtension.ZwfwwContact).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("联系方式最多50字符");
         #endregion
 
         #region 四川省12366热线诉求交办单
-        RuleFor(d => d.OrderExtension.Location12366Sq).MaximumLength(500).When(d=>d.OrderExtension!=null).WithMessage("主管税务机关最多500字符");
-        RuleFor(d => d.OrderExtension.Info12366Sq).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("被投诉单位或个人信息最多200字符");
-        RuleFor(d => d.OrderExtension.Type12366Sq).MaximumLength(10).When(d=>d.OrderExtension!=null).WithMessage("投诉类型最多10字符");
+        RuleFor(d => d.OrderExtension.Location12366Sq).MaxLengthWithChineseChar(500).When(d=>d.OrderExtension!=null).WithMessage("主管税务机关最多500字符");
+        RuleFor(d => d.OrderExtension.Info12366Sq).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("被投诉单位或个人信息最多200字符");
+        RuleFor(d => d.OrderExtension.Type12366Sq).MaxLengthWithChineseChar(10).When(d=>d.OrderExtension!=null).WithMessage("投诉类型最多10字符");
         #endregion
 
         #region 四川省12366热线咨询交办单
-        RuleFor(d => d.OrderExtension.Location12366Zx).MaximumLength(500).When(d=>d.OrderExtension!=null).WithMessage("主管税务机关最多500字符");
-        RuleFor(d => d.OrderExtension.Info12366Zx).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("被投诉单位或个人信息最多200字符");
+        RuleFor(d => d.OrderExtension.Location12366Zx).MaxLengthWithChineseChar(500).When(d=>d.OrderExtension!=null).WithMessage("主管税务机关最多500字符");
+        RuleFor(d => d.OrderExtension.Info12366Zx).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("被投诉单位或个人信息最多200字符");
         #endregion
 
         #region 12328服务监督中心受理单
-        RuleFor(d => d.OrderExtension.AcceptType12328).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("受理方式最多50字符");
-        RuleFor(d => d.OrderExtension.Client12328).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("客户最多200字符");
+        RuleFor(d => d.OrderExtension.AcceptType12328).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("受理方式最多50字符");
+        RuleFor(d => d.OrderExtension.Client12328).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("客户最多200字符");
         #endregion
 
         #region 邮政业消费者申诉受理单
-        RuleFor(d => d.OrderExtension.MailClaimantName).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("申诉人姓名最多50字符");
-        RuleFor(d => d.OrderExtension.MailClaimantPhone).MaximumLength(12).When(d=>d.OrderExtension!=null).WithMessage("申诉人电话最多12字符");
-        RuleFor(d => d.OrderExtension.MailClaimantEnterprise).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("申诉企业最多200字符");
-        RuleFor(d => d.OrderExtension.MailSenderName).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("寄件人姓名最多50字符");
-        RuleFor(d => d.OrderExtension.MailSenderPhone).MaximumLength(12).When(d=>d.OrderExtension!=null).WithMessage("寄件人电话最多12字符");
-        RuleFor(d => d.OrderExtension.MailSenderAddress).MaximumLength(500).When(d=>d.OrderExtension!=null).WithMessage("寄件人地址最多500字符");
-        RuleFor(d => d.OrderExtension.MailReceiverName).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("收件人姓名最多50字符");
-        RuleFor(d => d.OrderExtension.MailReceiverPhone).MaximumLength(12).When(d=>d.OrderExtension!=null).WithMessage("收件人电话最多12字符");
-        RuleFor(d => d.OrderExtension.MailReceiverAddress).MaximumLength(500).When(d=>d.OrderExtension!=null).WithMessage("收件人地址最多500字符");
+        RuleFor(d => d.OrderExtension.MailClaimantName).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("申诉人姓名最多50字符");
+        RuleFor(d => d.OrderExtension.MailClaimantPhone).MaxLengthWithChineseChar(12).When(d=>d.OrderExtension!=null).WithMessage("申诉人电话最多12字符");
+        RuleFor(d => d.OrderExtension.MailClaimantEnterprise).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("申诉企业最多200字符");
+        RuleFor(d => d.OrderExtension.MailSenderName).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("寄件人姓名最多50字符");
+        RuleFor(d => d.OrderExtension.MailSenderPhone).MaxLengthWithChineseChar(12).When(d=>d.OrderExtension!=null).WithMessage("寄件人电话最多12字符");
+        RuleFor(d => d.OrderExtension.MailSenderAddress).MaxLengthWithChineseChar(500).When(d=>d.OrderExtension!=null).WithMessage("寄件人地址最多500字符");
+        RuleFor(d => d.OrderExtension.MailReceiverName).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("收件人姓名最多50字符");
+        RuleFor(d => d.OrderExtension.MailReceiverPhone).MaxLengthWithChineseChar(12).When(d=>d.OrderExtension!=null).WithMessage("收件人电话最多12字符");
+        RuleFor(d => d.OrderExtension.MailReceiverAddress).MaxLengthWithChineseChar(500).When(d=>d.OrderExtension!=null).WithMessage("收件人地址最多500字符");
         #endregion
 
         #region 环保举报业务受理单
-        RuleFor(d => d.OrderExtension.EpEmail).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("邮箱最多50字符");
-        RuleFor(d => d.OrderExtension.EpAddress).MaximumLength(500).When(d=>d.OrderExtension!=null).WithMessage("通讯地址最多500字符");
-        RuleFor(d => d.OrderExtension.EpObject).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("举报对象最多200字符");
-        RuleFor(d => d.OrderExtension.EpObjectAddress).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("详细地址最多200字符");
-        RuleFor(d => d.OrderExtension.EpIndustryType).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("行业类型最多50字符");
-        RuleFor(d => d.OrderExtension.EpKeyPoint).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("重点要素最多50字符");
+        RuleFor(d => d.OrderExtension.EpEmail).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("邮箱最多50字符");
+        RuleFor(d => d.OrderExtension.EpAddress).MaxLengthWithChineseChar(500).When(d=>d.OrderExtension!=null).WithMessage("通讯地址最多500字符");
+        RuleFor(d => d.OrderExtension.EpObject).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("举报对象最多200字符");
+        RuleFor(d => d.OrderExtension.EpObjectAddress).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("详细地址最多200字符");
+        RuleFor(d => d.OrderExtension.EpIndustryType).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("行业类型最多50字符");
+        RuleFor(d => d.OrderExtension.EpKeyPoint).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("重点要素最多50字符");
         #endregion
 
         #region 投诉人信息
-        RuleFor(d => d.OrderExtension.LicenceTypeCode).MaximumLength(10).When(d => d.OrderExtension != null).WithMessage("证件类型最多10字符");
-        RuleFor(d => d.OrderExtension.LicenceType).MaximumLength(50).When(d => d.OrderExtension != null).WithMessage("证件类型名称最多50字符");
-        RuleFor(d => d.OrderExtension.IdentityTypeCode).MaximumLength(4).When(d => d.OrderExtension != null).WithMessage("提供方类型最多4字符");
-        RuleFor(d => d.OrderExtension.IdentityType).MaximumLength(50).When(d => d.OrderExtension != null).WithMessage("提供方类型名称最多50字符");
-        RuleFor(d => d.OrderExtension.IdentityCode).MaximumLength(10).When(d => d.OrderExtension != null).WithMessage("提供方身份最多10字符");
-        RuleFor(d => d.OrderExtension.Identity).MaximumLength(50).When(d => d.OrderExtension != null).WithMessage("提供方身份名称最多50字符");
-        RuleFor(d => d.OrderExtension.NationalityCode).MaximumLength(1).When(d => d.OrderExtension != null).WithMessage("国籍最多1字符");
-        RuleFor(d => d.OrderExtension.Nationality).MaximumLength(50).When(d => d.OrderExtension != null).WithMessage("国籍名称最多50字符");
-        RuleFor(d => d.OrderExtension.NationCode).MaximumLength(4).When(d => d.OrderExtension != null).WithMessage("民族最多4字符");
-        RuleFor(d => d.OrderExtension.Nation).MaximumLength(50).When(d => d.OrderExtension != null).WithMessage("民族名称最多50字符");
-        RuleFor(d => d.OrderExtension.LicenceNo).MaximumLength(64).When(d=>d.OrderExtension!=null).WithMessage("证件号码最多64字符");
-        RuleFor(d => d.OrderExtension.PostalCode).MaximumLength(10).When(d=>d.OrderExtension!=null).WithMessage("邮政编码最多10字符");
-        RuleFor(d => d.OrderExtension.Email).MaximumLength(100).When(d=>d.OrderExtension!=null).WithMessage("电子邮箱最多100字符");
-        RuleFor(d => d.OrderExtension.OtherContact).MaximumLength(64).When(d=>d.OrderExtension!=null).WithMessage("其他联系方式最多64字符");
+        RuleFor(d => d.OrderExtension.LicenceTypeCode).MaxLengthWithChineseChar(10).When(d => d.OrderExtension != null).WithMessage("证件类型最多10字符");
+        RuleFor(d => d.OrderExtension.LicenceType).MaxLengthWithChineseChar(50).When(d => d.OrderExtension != null).WithMessage("证件类型名称最多50字符");
+        RuleFor(d => d.OrderExtension.IdentityTypeCode).MaxLengthWithChineseChar(4).When(d => d.OrderExtension != null).WithMessage("提供方类型最多4字符");
+        RuleFor(d => d.OrderExtension.IdentityType).MaxLengthWithChineseChar(50).When(d => d.OrderExtension != null).WithMessage("提供方类型名称最多50字符");
+        RuleFor(d => d.OrderExtension.IdentityCode).MaxLengthWithChineseChar(10).When(d => d.OrderExtension != null).WithMessage("提供方身份最多10字符");
+        RuleFor(d => d.OrderExtension.Identity).MaxLengthWithChineseChar(50).When(d => d.OrderExtension != null).WithMessage("提供方身份名称最多50字符");
+        RuleFor(d => d.OrderExtension.NationalityCode).MaxLengthWithChineseChar(1).When(d => d.OrderExtension != null).WithMessage("国籍最多1字符");
+        RuleFor(d => d.OrderExtension.Nationality).MaxLengthWithChineseChar(50).When(d => d.OrderExtension != null).WithMessage("国籍名称最多50字符");
+        RuleFor(d => d.OrderExtension.NationCode).MaxLengthWithChineseChar(4).When(d => d.OrderExtension != null).WithMessage("民族最多4字符");
+        RuleFor(d => d.OrderExtension.Nation).MaxLengthWithChineseChar(50).When(d => d.OrderExtension != null).WithMessage("民族名称最多50字符");
+        RuleFor(d => d.OrderExtension.LicenceNo).MaxLengthWithChineseChar(64).When(d=>d.OrderExtension!=null).WithMessage("证件号码最多64字符");
+        RuleFor(d => d.OrderExtension.PostalCode).MaxLengthWithChineseChar(10).When(d=>d.OrderExtension!=null).WithMessage("邮政编码最多10字符");
+        RuleFor(d => d.OrderExtension.Email).MaxLengthWithChineseChar(100).When(d=>d.OrderExtension!=null).WithMessage("电子邮箱最多100字符");
+        RuleFor(d => d.OrderExtension.OtherContact).MaxLengthWithChineseChar(64).When(d=>d.OrderExtension!=null).WithMessage("其他联系方式最多64字符");
         #endregion
 
         #region 投诉对象信息
-        RuleFor(d => d.OrderExtension.EnterpriseName).MaximumLength(100).When(d=>d.OrderExtension!=null).WithMessage("企业名称最多100字符");
-        RuleFor(d => d.OrderExtension.UnifiedSocialCreditCode).MaximumLength(30).When(d=>d.OrderExtension!=null).WithMessage("统一社会信用代码最多30字符");
-        RuleFor(d => d.OrderExtension.RegisterAddress).MaximumLength(500).When(d=>d.OrderExtension!=null).WithMessage("企业注册地址最多500字符");
-        RuleFor(d => d.OrderExtension.RegisterNumber).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("注册号最多50字符");
-        RuleFor(d => d.OrderExtension.EnterpriseContact).MaximumLength(70).When(d=>d.OrderExtension!=null).WithMessage("联系人最多70字符");
-        RuleFor(d => d.OrderExtension.MarketTypeCode).MaximumLength(64).When(d => d.OrderExtension != null).WithMessage("市场主体类型代码最多64字符");
-        RuleFor(d => d.OrderExtension.MarketType).MaximumLength(200).When(d => d.OrderExtension != null).WithMessage("市场主体类型名称最多200字符");
-        RuleFor(d => d.OrderExtension.IndustryClassifyCode).MaximumLength(64).When(d => d.OrderExtension != null).WithMessage("行业类型代码最多64字符");
-        RuleFor(d => d.OrderExtension.IndustryClassify).MaximumLength(200).When(d => d.OrderExtension != null).WithMessage("行业类型名称最多10字符");
+        RuleFor(d => d.OrderExtension.EnterpriseName).MaxLengthWithChineseChar(100).When(d=>d.OrderExtension!=null).WithMessage("企业名称最多100字符");
+        RuleFor(d => d.OrderExtension.UnifiedSocialCreditCode).MaxLengthWithChineseChar(30).When(d=>d.OrderExtension!=null).WithMessage("统一社会信用代码最多30字符");
+        RuleFor(d => d.OrderExtension.RegisterAddress).MaxLengthWithChineseChar(500).When(d=>d.OrderExtension!=null).WithMessage("企业注册地址最多500字符");
+        RuleFor(d => d.OrderExtension.RegisterNumber).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("注册号最多50字符");
+        RuleFor(d => d.OrderExtension.EnterpriseContact).MaxLengthWithChineseChar(70).When(d=>d.OrderExtension!=null).WithMessage("联系人最多70字符");
+        RuleFor(d => d.OrderExtension.MarketTypeCode).MaxLengthWithChineseChar(64).When(d => d.OrderExtension != null).WithMessage("市场主体类型代码最多64字符");
+        RuleFor(d => d.OrderExtension.MarketType).MaxLengthWithChineseChar(200).When(d => d.OrderExtension != null).WithMessage("市场主体类型名称最多200字符");
+        RuleFor(d => d.OrderExtension.IndustryClassifyCode).MaxLengthWithChineseChar(64).When(d => d.OrderExtension != null).WithMessage("行业类型代码最多64字符");
+        RuleFor(d => d.OrderExtension.IndustryClassify).MaxLengthWithChineseChar(200).When(d => d.OrderExtension != null).WithMessage("行业类型名称最多200字符");
         #endregion
 
         #region 投诉详情
-        RuleFor(d => d.OrderExtension.ExternalOrderNo).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("订单号最多50字符");
-        RuleFor(d => d.OrderExtension.Patentee).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("专利权人最多50字符");
-        RuleFor(d => d.OrderExtension.PatentName).MaximumLength(200).When(d=>d.OrderExtension!=null).WithMessage("专利名称最多200字符");
-        RuleFor(d => d.OrderExtension.PatentNo).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("专利号最多50字符");
-        RuleFor(d => d.OrderExtension.ProductName).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("产品名称最多50字符");
-        RuleFor(d => d.OrderExtension.ApprovalNumber).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("批准文号最多50字符");
-        RuleFor(d => d.OrderExtension.ProductBatchNo).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("产品批号最多50字符");
-        RuleFor(d => d.OrderExtension.ProductStandard).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("产品规格最多50字符");
-        RuleFor(d => d.OrderExtension.Manufacturer).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("生产厂家最多50字符");
-        RuleFor(d => d.OrderExtension.SalesEnterprise).MaximumLength(50).When(d=>d.OrderExtension!=null).WithMessage("销售企业最多50字符");
-        RuleFor(d => d.OrderExtension.ConsumerAddress).MaximumLength(100).When(d=>d.OrderExtension!=null).WithMessage("消费者地址最多100字符");
-        RuleFor(d => d.OrderExtension.BusinessPosition.Street).MaximumLength(100).When(d=>d.OrderExtension!=null).WithMessage("经营详细地址最多100字符"); 
+        RuleFor(d => d.OrderExtension.ExternalOrderNo).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("订单号最多50字符");
+        RuleFor(d => d.OrderExtension.Patentee).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("专利权人最多50字符");
+        RuleFor(d => d.OrderExtension.PatentName).MaxLengthWithChineseChar(200).When(d=>d.OrderExtension!=null).WithMessage("专利名称最多200字符");
+        RuleFor(d => d.OrderExtension.PatentNo).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("专利号最多50字符");
+        RuleFor(d => d.OrderExtension.ProductName).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("产品名称最多50字符");
+        RuleFor(d => d.OrderExtension.ApprovalNumber).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("批准文号最多50字符");
+        RuleFor(d => d.OrderExtension.ProductBatchNo).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("产品批号最多50字符");
+        RuleFor(d => d.OrderExtension.ProductStandard).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("产品规格最多50字符");
+        RuleFor(d => d.OrderExtension.Manufacturer).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("生产厂家最多50字符");
+        RuleFor(d => d.OrderExtension.SalesEnterprise).MaxLengthWithChineseChar(50).When(d=>d.OrderExtension!=null).WithMessage("销售企业最多50字符");
+        RuleFor(d => d.OrderExtension.ConsumerAddress).MaxLengthWithChineseChar(100).When(d=>d.OrderExtension!=null).WithMessage("消费者地址最多100字符");
+        RuleFor(d => d.OrderExtension.BusinessPosition.Street).MaxLengthWithChineseChar(100).When(d=>d.OrderExtension!=null).WithMessage("经营详细地址最多100字符"); 
         #endregion
     }
 

+ 3 - 0
src/Hotline.Application.Contracts/Validators/ValidatorExtensions.cs

@@ -10,4 +10,7 @@ public static class ValidatorExtensions
     /// </summary>
     public static IRuleBuilderOptions<TDto, string> IsGuidStructureString<TDto>(this IRuleBuilderInitial<TDto, string> initial) =>
         initial.Cascade(CascadeMode.Stop).NotEmpty().Must(d => d.IsGuidString());
+    
+    public static IRuleBuilderOptions<TDto, string> MaxLengthWithChineseChar<TDto>(this IRuleBuilderInitial<TDto, string> initial, int maxLength) =>
+        initial.Cascade(CascadeMode.Stop).Must(d => d.GetChineseCharLength() < maxLength);
 }

+ 21 - 0
src/XF.Domain/Extensions/StringExtensions.cs

@@ -54,5 +54,26 @@ namespace XF.Domain.Extensions
             }
             return sb.ToString();
         }
+        
+        public static int GetChineseCharLength(this string str)
+        {
+            if (str.Length == 0)
+                return 0;
+            ASCIIEncoding ascii = new ASCIIEncoding();
+            int tempLen = 0; 
+            byte[] s = ascii.GetBytes(str);
+            for (int i = 0; i < s.Length; i++)
+            {
+                if ((int)s[i] == 63)
+                {
+                    tempLen += 2;
+                }
+                else
+                {
+                    tempLen += 1;
+                }
+            }
+            return tempLen;
+        }
     }
 }