浏览代码

增加培训Code

guqiang 1 月之前
父节点
当前提交
74539b2c68

+ 13 - 0
src/Hotline.Api/Controllers/Exam/TrainTemplateController.cs

@@ -81,5 +81,18 @@ namespace Hotline.Api.Controllers.Exam
 
             return trainTemplateDto;
         }
+
+        /// <summary>
+        /// 获取培训模版
+        /// </summary>
+        /// <param name="trainTemplatePagedRequest"></param>
+        /// <returns></returns>
+        [HttpGet(TrainTemplateApiRoute.GetList)]
+        public async Task<List<TrainTemplateViewResponse>> GetList([FromQuery] TrainTemplatePagedRequest trainTemplatePagedRequest)
+        {
+            var result = await _trainTemplateService.GetListAsync(trainTemplatePagedRequest);
+
+            return result.Item2;
+        }
     }
 }

+ 15 - 0
src/Hotline.Application/Exam/Core/Constants/BusiConstants.cs

@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Application.Exam.Core.Constants
+{
+    public  class BusiConstants
+    {
+        public const string TrainCode = "PX";
+
+        public const string TrainTemplateCode = "PXMB";
+    }
+}

+ 25 - 0
src/Hotline.Application/Exam/Core/Utilities/CodeUtility.cs

@@ -0,0 +1,25 @@
+using Exam.Trains;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Application.Exam.Core.Utilities
+{
+    public static class CodeUtility
+    {
+        public static string GenerateCode(string codePrefix, int length, string code)
+        {
+            var number = string.Empty;
+
+            number = code.Substring(code.Length - length, length);
+
+            var value = int.Parse(number) + 1;
+
+            code = $"{codePrefix}{DateTime.Now.ToString("yyyyMMdd")}{value.ToString().PadLeft(length, '0')}";
+
+            return code;
+        }
+    }
+}

+ 18 - 0
src/Hotline.Application/Exam/Service/Trains/TrainPlanService.cs

@@ -9,6 +9,8 @@ using Exam.Repository.Sqlsugar.Repositories;
 using Exam.Share;
 using Exam.Share.ViewResponses.Train;
 using Exam.Trains;
+using Hotline.Application.Exam.Core.Constants;
+using Hotline.Application.Exam.Core.Utilities;
 using Hotline.Application.Exam.Extensions;
 using Hotline.Application.Exam.QueryExtensions.Trains;
 using Hotline.Exams.Trains;
@@ -92,6 +94,8 @@ namespace Hotline.Application.Exam.Service.Trains
         {
             base.StartTran();
 
+            actionRequest.Code = await GenerateCode(BusiConstants.TrainCode,3);
+
             var id = await base.AddAsync(actionRequest, cancellationToken);
 
             ResolveTemplateId(actionRequest, id);
@@ -360,6 +364,20 @@ namespace Hotline.Application.Exam.Service.Trains
 
             return trainRecords;
         }
+        
+        private async Task<string> GenerateCode(string codePrefix, int length)
+        {
+            var trainPlan = await _repository.Queryable().Where(x => x.CreationTime.Date == DateTime.Now).FirstAsync();
+
+
+            var code = string.Empty;
+            if (trainPlan != null)
+            {
+                code = trainPlan.Code;
+            }
+            code = CodeUtility.GenerateCode(codePrefix, length, code);
+            return code;
+        }
         #endregion
     }
 }

+ 20 - 0
src/Hotline.Application/Exam/Service/Trains/TrainTemplateService.cs

@@ -12,7 +12,9 @@ using Exam.Repository.Sqlsugar.Repositories;
 using Exam.Share.ViewResponses.Train;
 using Exam.TestPapers;
 using Exam.Trains;
+using Hotline.Application.Exam.Core.Constants;
 using Hotline.Application.Exam.Core.Extensions;
+using Hotline.Application.Exam.Core.Utilities;
 using Hotline.Application.Exam.Extensions;
 using Hotline.Application.Exam.QueryExtensions.Trains;
 using Hotline.Exams.TestPapers;
@@ -115,6 +117,8 @@ namespace Hotline.Application.Exam.Service.Trains
         {
             base.StartTran();
 
+            actionRequest.Code = await GenerateCode(BusiConstants.TrainTemplateCode,3);
+
             var id = await base.AddAsync(actionRequest, cancellationToken);
 
             ResolveTemplateId(actionRequest, id);
@@ -148,6 +152,7 @@ namespace Hotline.Application.Exam.Service.Trains
             return id;
 
         }
+
         public override async Task UpdateAsync(UpdateTrainTemplateDto actionRequest, CancellationToken cancellationToken)
         {
             base.StartTran();
@@ -576,6 +581,21 @@ namespace Hotline.Application.Exam.Service.Trains
 
             return trainKnowladges;
         }
+
+        private async Task<string> GenerateCode(string codePrefix, int length)
+        {
+            var trainTemplate = await _repository.Queryable().Where(x => x.CreationTime.Date == DateTime.Now).FirstAsync();
+
+            var code = string.Empty;
+            if (trainTemplate != null)
+            {
+                code = trainTemplate.Code;
+            }
+
+            code = CodeUtility.GenerateCode(codePrefix,length,code);
+
+            return code;
+        }
         #endregion
 
         #region protected method