Jason 1 year ago
parent
commit
4c5bf7056f

+ 1 - 1
src/Hotline.Api/Controllers/IPPbxController.cs

@@ -94,7 +94,7 @@ namespace Hotline.Api.Controllers
         [HttpPost("on-duty")]
         public async Task<TrOnDutyResponseDto> OnDuty([FromBody] TrOnDutyDto dto)
         {
-            return await _userDomainService.TrOnDutyAsync(_sessionContext.RequiredUserId, dto.TelId, dto.TelNo, HttpContext.RequestAborted);
+            return await _userDomainService.TrOnDutyAsync(_sessionContext.RequiredUserId, dto.TelId, dto.TelNo,dto.TelPwd,dto.Description, HttpContext.RequestAborted);
         }
 
         /// <summary>

+ 2 - 0
src/Hotline.Share/Dtos/TrCallCenter/TrTelDao.cs

@@ -64,6 +64,8 @@ namespace Hotline.Share.Dtos.TrCallCenter
     {
         public string? TelId { get; set; }
         public string? TelNo { get; set; }
+        public string? TelPwd { get; set; }
+        public string? Description { get; set; }
     }
 
     public class TrOnDutyResponseDto

+ 2 - 1
src/Hotline/Users/IUserDomainService.cs

@@ -32,7 +32,8 @@ namespace Hotline.Users
         /// <param name="TelNo"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        Task<TrOnDutyResponseDto> TrOnDutyAsync(string userId, string? TelId, string? TelNo, CancellationToken cancellationToken);
+
+        Task<TrOnDutyResponseDto> TrOnDutyAsync(string userId, string? TelId, string? TelNo,string? TelPwd,string? Description, CancellationToken cancellationToken);
 
         /// <summary>
         /// 下班

+ 9 - 9
src/Hotline/Users/UserDomainService.cs

@@ -123,15 +123,13 @@ namespace Hotline.Users
         /// <param name="TelNo"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public async Task<TrOnDutyResponseDto> TrOnDutyAsync(string userId,string? TelId,string? TelNo,CancellationToken cancellationToken)
+        public async Task<TrOnDutyResponseDto> TrOnDutyAsync(string userId, string? TelId, string? TelNo, string? TelPwd, string? Description,CancellationToken cancellationToken)
         {
             var workingTel = await _workRepository.GetCurrentWorkByUserAsync(userId, cancellationToken);
             if (workingTel is not null)
             {
-                var telModel = await _trClient.QueryTelsAsync(new Tr.Sdk.Tels.QueryTelRequest() { TelNo = TelNo }, cancellationToken);
-                return new TrOnDutyResponseDto() { TelNo = workingTel.TelNo, TelPwd = telModel[0].Password,Description = telModel[0].Description };
+                return new TrOnDutyResponseDto() { TelNo = workingTel.TelNo, TelPwd = workingTel.TelPwd, Description = workingTel.Description };
             }
-                
 
             //检查配置
             bool IsNeedTelNo = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.IsNeedTelNo).SettingValue[0]);
@@ -157,10 +155,7 @@ namespace Hotline.Users
                 rsp.TelPwd = telModel[0].Password;
                 rsp.Description = telModel[0].Description;
             }
-            if (!IsNeedTelNo || !IsTelNeedVerify)
-            {
-                rsp.TelPwd = string.Empty;
-            }
+            
 
             rsp.TelNo = TelNo;
           
@@ -169,8 +164,13 @@ namespace Hotline.Users
             if (telIsWorking)
                 throw UserFriendlyException.SameMessage("当前分机已被占用");
 
-            var work = new Work(userId, user.Name, TelId, TelNo);
+            var work = new Work(userId, user.Name, TelId, TelNo,rsp.TelPwd,rsp.Description);
             await _workRepository.AddAsync(work, cancellationToken);
+
+            if (!IsNeedTelNo || !IsTelNeedVerify)
+            {
+                rsp.TelPwd = string.Empty;
+            }
             return rsp;
         }
 

+ 16 - 0
src/Hotline/Users/Work.cs

@@ -41,6 +41,11 @@ public class Work : CreationModificationEntity
     [SugarColumn(ColumnDescription = "工作时长(单位:秒)")]
     public double? WorkingDuration { get; private set; }
 
+    [SugarColumn(IsIgnore = true)]
+    public string? TelPwd { get; set; }
+
+    [SugarColumn(IsIgnore = true)]
+    public string? Description { get; set; }
     ///// <summary>
     ///// SignalR.ConnectionId
     ///// </summary>
@@ -52,6 +57,17 @@ public class Work : CreationModificationEntity
 
     }
 
+    public Work(string userId, string name, string telId, string telNo, string? telPwd, string? description)
+    {
+        StartTime = DateTime.Now;
+        UserId = userId;
+        UserName = name;
+        TelId = telId;
+        TelNo = telNo;
+        TelPwd = telPwd;
+        Description = description;
+    }
+
     public Work(string userId, string name, string telId, string telNo)
     {
         StartTime = DateTime.Now;