Jelajahi Sumber

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

xf 1 Minggu lalu
induk
melakukan
006c40f7f9

+ 3 - 9
src/Hotline.Api/Controllers/OrderController.cs

@@ -4599,18 +4599,12 @@ public class OrderController : BaseController
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!));
 
         //随手拍
-        if (_systemSettingCacheManager.Snapshot && !string.IsNullOrEmpty(dto.IndustryId))
+        if (_systemSettingCacheManager.Snapshot)
         {
-            query.Where(d => d.OrderSnapshot.IndustryId == dto.IndustryId);
+            query = query.WhereIF(dto.IndustryId.NotNullOrEmpty(),  d => d.OrderSnapshot.IndustryId == dto.IndustryId);
+            query = query.WhereIF(dto.IsSnapshot.HasValue && dto.IsSnapshot.Value == true, d => d.OrderSnapshot.Id != null);
         }
 
-        //var (total, items) = await _orderRepository.Queryable()
-        //    .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Contact == dto.PhoneNo)
-        //    .WhereIF(!string.IsNullOrEmpty(dto.OrderId), d => d.Id != dto.OrderId)
-        //    .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
-        //    .OrderByDescending(d => d.CreationTime)
-        //    .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
-
         var (total, items) = await query
             .OrderByDescending(d => d.CreationTime)
             .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);

+ 3 - 2
src/Hotline.Application/Exam/QueryExtensions/ExamManages/OfflineExamQueryExtensions.cs

@@ -21,8 +21,9 @@ namespace Hotline.Application.Exam.QueryExtensions.ExamManages
             .AndIF(offlineExamAnalysisPagedRequest.StartTime.IsNotNull(), x => x.StartTime >= offlineExamAnalysisPagedRequest.StartTime)
             .AndIF(offlineExamAnalysisPagedRequest.EndTime.IsNotNull(), x => x.StartTime <= offlineExamAnalysisPagedRequest.EndTime)
             .AndIF(offlineExamAnalysisPagedRequest.Keyword.IsNotEmpty(), x => x.ExamName.Contains(offlineExamAnalysisPagedRequest.Keyword))
-            .AndIF(offlineExamAnalysisPagedRequest.MinScore.IsNotNull(), x => x.Score > offlineExamAnalysisPagedRequest.MinScore)
-            .AndIF(offlineExamAnalysisPagedRequest.MaxScore.IsNotNull(), x => x.Score < offlineExamAnalysisPagedRequest.MaxScore)
+            .AndIF(offlineExamAnalysisPagedRequest.MinScore.IsNotNull(), x => x.Score >= offlineExamAnalysisPagedRequest.MinScore)
+            .AndIF(offlineExamAnalysisPagedRequest.MaxScore.IsNotNull(), x => x.Score <= offlineExamAnalysisPagedRequest.MaxScore)
+            .AndIF(offlineExamAnalysisPagedRequest.MaxScore.IsNotNull() && offlineExamAnalysisPagedRequest.MinScore.IsNull(), x => x.Score <= offlineExamAnalysisPagedRequest.MaxScore || x.Score == null)
             .ToExpression();
 
             return expression;

+ 2 - 1
src/Hotline.Application/Quality/QualityApplication.cs

@@ -459,8 +459,9 @@ namespace Hotline.Application.Quality
 					await _qualityRepository.Updateable().SetColumns(x => new Hotline.Quality.Quality { TransferState = EQualityTransferState.Succeed,Transfer = transfers }).Where(x => x.Id == quality.Id).ExecuteCommandAsync();
 					await _qualityTransferRecordsRepository.Updateable().SetColumns(x => new QualityTransferRecords { TransferState = EQualityTransferState.Succeed,IsFinished = true }).Where(x => x.QualityId == quality.Id).ExecuteCommandAsync();
 				}
-				catch (Exception)
+				catch (Exception e)
 				{
+					_logger.LogError($" 兴唐 语音转写报错!,报错原因: \r\n{e.Message}");
 					await _qualityRepository.Updateable().SetColumns(x => new Hotline.Quality.Quality { TransferState = EQualityTransferState.Lose}).Where(x => x.Id == quality.Id).ExecuteCommandAsync();
 					await _qualityTransferRecordsRepository.Updateable().SetColumns(x => new QualityTransferRecords { TransferState = EQualityTransferState.Lose, IsFinished = true }).Where(x => x.QualityId == quality.Id).ExecuteCommandAsync();
 					throw;

+ 1 - 1
src/Hotline.Repository.SqlSugar/Exam/Repositories/ExamManages/OfflineExamAnalysisRepository.cs

@@ -16,7 +16,7 @@ namespace Hotline.Repository.SqlSugar.Exam.Repositories.ExamManages
     {
         public OfflineExamAnalysisRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider) : base(uow, dataPermissionFilterBuilder, serviceProvider)
         {
-            Validator = new OfflineExamAnalysisValidator();
+            Validator = new OfflineExamAnalysisValidator(this);
         }
     }
 }

+ 7 - 2
src/Hotline.Repository.SqlSugar/Exam/Validators/ExamManages/OfflineExamAnalysisValidator.cs

@@ -15,9 +15,9 @@ namespace Hotline.Repository.SqlSugar.Exam.Validators.ExamManages
 {
     public class OfflineExamAnalysisValidator : BaseValidator<ExamOfflineExamAnalysis>
     {
-        private readonly IExamManageRepository _examManageRepository;
+        private readonly IOfflineExamAnalysisRepository _offlineExamAnalysisRepository;
 
-        public OfflineExamAnalysisValidator()
+        public OfflineExamAnalysisValidator(IOfflineExamAnalysisRepository offlineExamAnalysisRepository)
         {
             RuleSet(ValidatorTypeConstants.Create, () =>
             {
@@ -32,6 +32,8 @@ namespace Hotline.Repository.SqlSugar.Exam.Validators.ExamManages
 
                 ValidateRuleWithModify();
             });
+
+            this._offlineExamAnalysisRepository = offlineExamAnalysisRepository;
         }
 
         protected override void BaseValidateRule()
@@ -40,10 +42,13 @@ namespace Hotline.Repository.SqlSugar.Exam.Validators.ExamManages
             RuleFor(m => m.UserName).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.UserName))));
             RuleFor(m => m.DepartmentName).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.DepartmentName))));
             RuleFor(m => m.ExamName).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.ExamName))));
+            RuleFor(m => m.StartTime).Must((c,v)=>v!=DateTime.MinValue).WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.StartTime))));
+            RuleFor(m => m.EndTime).Must((c, v) => v != DateTime.MinValue).WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.EndTime))));
             RuleFor(m => m.TotalScore).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.TotalScore))));
             RuleFor(m => m.Score).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.Score))));
             RuleFor(m => m.CutoffScore).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.CutoffScore))));
             RuleFor(m => m.TotalScore).Must((c, v) => c.Score <= v).WithMessage(x => string.Format(ExamErrorMessage.Greater, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.Score)),x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.TotalScore))));
+            RuleFor(m => m.UserName).Must((c,v)=> !_offlineExamAnalysisRepository.Queryable().Any(x=>x.UserName == v && x.ExamName == c.ExamName && x.StartTime == c.StartTime)).WithMessage(x => string.Format(ExamErrorMessage.IsRepeat, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.UserName))));
         }
 
         protected override void ValidateRuleWithAdd()

+ 5 - 0
src/Hotline.Share/Dtos/Order/QueryOrderHistoryDto.cs

@@ -16,5 +16,10 @@ namespace Hotline.Share.Dtos.Order
         /// 随手拍行业类型
         /// </summary>
         public string? IndustryId { get; set; }
+
+        /// <summary>
+        /// 是否随手拍
+        /// </summary>
+        public bool? IsSnapshot { get; set; }
     }
 }

+ 3 - 3
src/Hotline/Exams/ExamManages/ExamOfflineExamAnalysis.cs

@@ -55,15 +55,15 @@ namespace Hotline.Exams.ExamManages
         /// <summary>
         /// 考试开始时间
         /// </summary>
-        [SugarColumn(ColumnDescription = "考试开始时间")]
-        [Description("考试开始时间")]
+        [SugarColumn(ColumnDescription = "开始时间")]
+        [Description("开始时间")]
         public DateTime StartTime { get; set; }
 
         /// <summary>
         /// 考试结束时间
         /// </summary>
         [SugarColumn(ColumnDescription = "考试结束时间")]
-        [Description("考试结束时间")]
+        [Description("结束时间")]
         public DateTime? EndTime { get; set; }
     }
 }

+ 2 - 2
src/Hotline/Exams/ExamManages/OfflineExamAnalysisExcel.cs

@@ -32,13 +32,13 @@ namespace Hotline.Exams.ExamManages
         /// <summary>
         /// 考试开始时间
         /// </summary>
-        [ExcelColumnName("考试开始时间")]
+        [ExcelColumnName("开始时间")]
         public DateTime StartTime { get; set; }
 
         /// <summary>
         /// 考试结束时间
         /// </summary>
-        [ExcelColumnName("考试结束时间")]
+        [ExcelColumnName("结束时间")]
         public DateTime? EndTime { get; set; }
 
         /// <summary>