dss 2 жил өмнө
parent
commit
ba0a42b46f

+ 23 - 10
src/Hotline.Api/Controllers/HotSpotController.cs

@@ -2,7 +2,8 @@
 using Hotline.Settings.Hotspots;
 using Hotline.Settings.TimeLimits;
 using Hotline.Share.Dtos;
-using Hotline.Share.Dtos.Order;
+using Hotline.Share.Dtos.Settings;
+using Hotline.Share.Enums.Settings;
 using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
 using XF.Domain.Exceptions;
@@ -65,6 +66,18 @@ namespace Hotline.Api.Controllers
 
 
         #region 时限管理
+
+        /// <summary>
+        /// 获取时限配置页面基础数据
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("timelimit-basedata")]
+        public async Task<List<TimeLimitBaseDataModel>> GetTimeLimitBaseData()
+        {
+            return TimeLimitBaseData.GetBaseData();
+        }
+
+
         /// <summary>
         /// 新增时限管理
         /// </summary>
@@ -74,7 +87,7 @@ namespace Hotline.Api.Controllers
         public async Task<string> AddTimeLimit([FromBody]AddTimeLimitDto dto)
         {
             var model = _mapper.Map<TimeLimit>(dto);
-            model.TimeLimitState = Share.Enums.Order.ETimeLimitState.Draft;
+            model.TimeLimitState = ETimeLimitState.Draft;
             return await _timeLimitDomainService.AddAsync(model, HttpContext.RequestAborted);
         }
 
@@ -131,7 +144,7 @@ namespace Hotline.Api.Controllers
             {
                 throw UserFriendlyException.SameMessage("无效数据");
             }
-            if (model.TimeLimitState != Share.Enums.Order.ETimeLimitState.Draft)
+            if (model.TimeLimitState != ETimeLimitState.Draft)
             {
                 throw UserFriendlyException.SameMessage("无法删除,请刷新页面");
             }
@@ -151,13 +164,13 @@ namespace Hotline.Api.Controllers
             {
                 throw UserFriendlyException.SameMessage("无效数据");
             }
-            if (model.TimeLimitState == Share.Enums.Order.ETimeLimitState.Enable)
+            if (model.TimeLimitState == ETimeLimitState.Enable)
             {
                 throw UserFriendlyException.SameMessage("该配置已生效");
             }
-            var list = await _timeLimitRepository.QueryAsync(x => x.WorkflowCode == model.WorkflowCode && x.TimeLimitState == Share.Enums.Order.ETimeLimitState.Enable);
-            list.ForEach(x => x.TimeLimitState = Share.Enums.Order.ETimeLimitState.Disable);
-            model.TimeLimitState = Share.Enums.Order.ETimeLimitState.Enable;
+            var list = await _timeLimitRepository.QueryAsync(x => x.WorkflowCode == model.WorkflowCode && x.TimeLimitState == ETimeLimitState.Enable);
+            list.ForEach(x => x.TimeLimitState = ETimeLimitState.Disable);
+            model.TimeLimitState = ETimeLimitState.Enable;
             list.Add(model);
             await _timeLimitRepository.UpdateRangeAsync(list, HttpContext.RequestAborted);
         }
@@ -175,15 +188,15 @@ namespace Hotline.Api.Controllers
             {
                 throw UserFriendlyException.SameMessage("无效数据");
             }
-            if (model.TimeLimitState == Share.Enums.Order.ETimeLimitState.Draft)
+            if (model.TimeLimitState == ETimeLimitState.Draft)
             {
                 throw UserFriendlyException.SameMessage("该配置未生效,无法禁用");
             }
-            if (model.TimeLimitState == Share.Enums.Order.ETimeLimitState.Disable)
+            if (model.TimeLimitState == ETimeLimitState.Disable)
             {
                 throw UserFriendlyException.SameMessage("该配置已禁用");
             }
-            model.TimeLimitState = Share.Enums.Order.ETimeLimitState.Disable;
+            model.TimeLimitState = ETimeLimitState.Disable;
             await _timeLimitRepository.UpdateAsync(model, HttpContext.RequestAborted);
         }
         #endregion

+ 3 - 3
src/Hotline.Share/Dtos/Order/TimeLimitDto.cs → src/Hotline.Share/Dtos/Settings/TimeLimitDto.cs

@@ -1,7 +1,7 @@
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Requests;
 
-namespace Hotline.Share.Dtos.Order
+namespace Hotline.Share.Dtos.Settings
 {
     public record AddTimeLimitDto
     {
@@ -129,12 +129,12 @@ namespace Hotline.Share.Dtos.Order
 
     #endregion
 
-    public record UpdateTimeLimitDto:AddTimeLimitDto
+    public record UpdateTimeLimitDto : AddTimeLimitDto
     {
         public string Id { get; set; }
     }
 
-    public record QueryPagedTimeLimitPagedDto: PagedKeywordRequest
+    public record QueryPagedTimeLimitPagedDto : PagedKeywordRequest
     {
 
     }

+ 2 - 2
src/Hotline.Share/Enums/Order/ETimeLimitState.cs → src/Hotline.Share/Enums/Settings/ETimeLimitState.cs

@@ -5,7 +5,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace Hotline.Share.Enums.Order
+namespace Hotline.Share.Enums.Settings
 {
     public enum ETimeLimitState
     {
@@ -14,6 +14,6 @@ namespace Hotline.Share.Enums.Order
         [Description("启用")]
         Enable = 1,
         [Description("禁用")]
-        Disable =2,
+        Disable = 2,
     }
 }

+ 11 - 0
src/Hotline.Share/Enums/Settings/ETimeLimitType.cs

@@ -0,0 +1,11 @@
+
+namespace Hotline.Share.Enums.Settings
+{
+    public enum ETimeLimitType
+    {
+        Enum = 0,
+        HotPots = 1,
+        DicData =2,
+        DefaultTime = 3,
+    }
+}

+ 32 - 5
src/Hotline/Settings/TimeLimits/TimeLimit.cs

@@ -1,5 +1,5 @@
-using Hotline.Share.Dtos.Order;
-using Hotline.Share.Enums.Order;
+using Hotline.Share.Dtos.Settings;
+using Hotline.Share.Enums.Settings;
 using SqlSugar;
 using XF.Domain.Repository;
 
@@ -34,7 +34,7 @@ namespace Hotline.Settings.TimeLimits
     }
 
 
-    public class TimeLimitBaseData
+    public class TimeLimitBaseDataModel
     {
         public string Id { get; set; }
 
@@ -45,11 +45,38 @@ namespace Hotline.Settings.TimeLimits
         /// </summary>
         public string WorkflowCodes { get; set; }
 
-        //public ETimeLimitType TimeLimitType { get; set; }
-
+        public ETimeLimitType TimeLimitType { get; set; }
 
+        public string TypeCode { get; set; }
 
         //public static GetBaseData
+        public TimeLimitBaseDataModel(string id,string name,string workflowCodes, ETimeLimitType timelimitType,string typeCode)
+        {
+            Id = id;
+            Name = name;
+            WorkflowCodes = workflowCodes;
+            TimeLimitType = timelimitType;
+            TypeCode = typeCode;
+        }
     }
 
+
+    public static class TimeLimitBaseData
+    {
+        public static List<TimeLimitBaseDataModel> GetBaseData()
+        {
+            return new List<TimeLimitBaseDataModel>()
+            {
+                new TimeLimitBaseDataModel("82fde961-b1a7-11ed-ad8e-005056a2d053","受理类型", "Order", ETimeLimitType.Enum, "EAcceptType"),
+                new TimeLimitBaseDataModel("33b756f6-b1a9-11ed-ad8e-005056a2d053", "热点分类","Order",ETimeLimitType.HotPots,"HotPots"),
+                new TimeLimitBaseDataModel("c45da596-b1aa-11ed-ad8e-005056a2d053", "推送分类", "Order", ETimeLimitType.DicData, "PushType"),
+                new TimeLimitBaseDataModel("ee78d588-b1aa-11ed-ad8e-005056a2d053", "来源渠道", "Order", ETimeLimitType.DicData, "SourceChannel"),
+                new TimeLimitBaseDataModel("8f9209d1-b1ab-11ed-ad8e-005056a2d053", "来电人身份", "Order", ETimeLimitType.Enum, "EIdentityType"),
+                new TimeLimitBaseDataModel("d6100e08-b1ab-11ed-ad8e-005056a2d053", "工单类型", "Order", ETimeLimitType.DicData, "OrderType"),
+                new TimeLimitBaseDataModel("f21424ff-b1ab-11ed-ad8e-005056a2d053", "证件类型", "Order", ETimeLimitType.DicData, "CertType"),
+                new TimeLimitBaseDataModel("bda69be9-b1b2-11ed-ad8e-005056a2d053", "紧急程度", "Order", ETimeLimitType.Enum, "EEmergencyLevel"),
+                new TimeLimitBaseDataModel("cd3b29dd-b1bf-11ed-ad8e-005056a2d053","默认参数","ZengBie,KnowledgeAdd",ETimeLimitType.DefaultTime,"DefaultTime")
+            };
+        }
+    }
 }

+ 13 - 0
src/Hotline/Settings/TimeLimits/TimeLimitDomainService.cs

@@ -26,5 +26,18 @@ namespace Hotline.Settings.TimeLimits
             }
             await _timeLimitRepository.UpdateAsync(model, cancellationToken);
         }
+
+
+        //public async Task<(string, int)> Get(string WorkflowCode,DateTime BeginTime,Dictionary<string,string> param)
+        //{
+        //    //1>> 取出对应已启用的配置
+        //    var model = await _timeLimitRepository.GetAsync(x => x.WorkflowCode == WorkflowCode && x.TimeLimitState == Share.Enums.Settings.ETimeLimitState.Enable);
+        //    if (model!=null)
+        //    {
+
+        //    }
+        //}
+
+
     }
 }