TANG JIANG 2 anos atrás
pai
commit
b5d311458a

+ 1 - 1
src/Sharing.Api/Controllers/HotlineMessageReceiveController.cs

@@ -77,7 +77,7 @@ namespace Sharing.Api.Controllers
         }
 
         /// <summary>
-        /// 服务工单交办处理过程
+        /// 服务工单交办处理过程  
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>

+ 12 - 1
src/Sharing.Province/DefaultPusher.cs

@@ -1,7 +1,6 @@
 using Sharing.Province.Dtos;
 using Sharing.Province.Dtos.HuiJu;
 using Sharing.Province.Dtos.XieTong.Send;
-using XF.Domain.Dependency;
 
 namespace Sharing.Province;
 
@@ -52,4 +51,16 @@ public class DefaultPusher : IProvincePusher
         var response = await _xieTongClient.RequestAsync<GetCaseProcessReceiveRequest, ProvinceResponse>(request, cancellationToken);
         return response.ReturnInfo;
     }
+
+    /// <summary>
+    /// 服务工单交办评价
+    /// </summary>
+    /// <param name="request"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<BaseProvinceResponse> PushGetVisitInfoReceiveAsync(GetVisitInfoReceiveRequest request, CancellationToken cancellationToken)
+    {
+        var response = await _xieTongClient.RequestAsync<GetVisitInfoReceiveRequest, ProvinceResponse>(request, cancellationToken);
+        return response.ReturnInfo;
+    }
 }

+ 72 - 0
src/Sharing.Province/Dtos/XieTong/Send/GetVisitInfoReceiveRequest.cs

@@ -0,0 +1,72 @@
+using Microsoft.AspNetCore.Http;
+using System.Text.Json.Serialization;
+
+namespace Sharing.Province.Dtos.XieTong.Send
+{
+    /// <summary>
+    /// 服务工单交办评价
+    /// </summary>
+    public class GetVisitInfoReceiveRequest : ProvinceRequest<GetVisitInfoReceiveData>
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <returns></returns>
+        public override string GetRequestUrl() => "get_visit_info_receive";
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <returns></returns>
+        public override string GetHttpMethod() => HttpMethods.Post;
+    }
+
+    /// <summary>
+    /// 服务工单交办评价
+    /// </summary>
+    public class GetVisitInfoReceiveData
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        [JsonPropertyName("jsonList")]
+        public IReadOnlyList<GetVisitInfoReceiveInfo> GetVisitInfoReceiveInfos { get; set; }
+    }
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public class GetVisitInfoReceiveInfo : BaseModel
+    {
+        /// <summary>
+        /// 回访评价方式
+        /// </summary>
+        [JsonPropertyName("VISIT_TYPE")]
+        public string VisitType { get; set; }
+
+        /// <summary>
+        /// 回访人员
+        /// </summary>
+        [JsonPropertyName("VISIT_NAME")]
+        public string VisitName { get; set; }
+
+        /// <summary>
+        /// 回访时间
+        /// </summary>
+        [JsonPropertyName("VISIT_TIME")]
+        public string VisitTime { get; set; }
+
+        /// <summary>
+        /// 回访评价情况
+        /// </summary>
+        [JsonPropertyName("VISIT_REMARK")]
+        public string VisitRemark { get; set; }
+
+        /// <summary>
+        /// 回访结果满意度
+        /// </summary>
+        [JsonPropertyName("SUBJECT_RESULT_SATIFY")]
+        public string SubjectResultSatify { get; set; }
+
+    }
+}

+ 8 - 14
src/Sharing.Province/Handlers/GetCaseProcessReceiveHandler.cs

@@ -3,17 +3,11 @@ using MediatR;
 using Sharing.Notifications;
 using Sharing.Province.Dtos.XieTong.Send;
 using Sharing.Province.XieTong.Send;
-using Sharing.Repository.Province.XieTong.Send;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 
 namespace Sharing.Province.Handlers
 {
     /// <summary>
-    /// 
+    /// 服务工单交办评价
     /// </summary>
     public class GetCaseProcessReceiveHandler : INotificationHandler<GetCaseProcessReceiveNotification>
     {
@@ -22,13 +16,13 @@ namespace Sharing.Province.Handlers
         private readonly IMapper _mapper;
         private readonly IGetCaseProcessReceiveRepository _getCaseProcessReceiveRepository;
 
-      /// <summary>
-      /// 
-      /// </summary>
-      /// <param name="channelConfigurationManager"></param>
-      /// <param name="pusherProvider"></param>
-      /// <param name="mapper"></param>
-      /// <param name="getCaseProcessReceiveRepository"></param>
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="channelConfigurationManager"></param>
+        /// <param name="pusherProvider"></param>
+        /// <param name="mapper"></param>
+        /// <param name="getCaseProcessReceiveRepository"></param>
         public GetCaseProcessReceiveHandler(IChannelConfigurationManager channelConfigurationManager, PusherProvider pusherProvider, IMapper mapper
             , IGetCaseProcessReceiveRepository getCaseProcessReceiveRepository)
         {

+ 74 - 0
src/Sharing.Province/Handlers/GetVisitInfoReceiveHandler.cs

@@ -0,0 +1,74 @@
+using MapsterMapper;
+using MediatR;
+using Sharing.Notifications;
+using Sharing.Province.Dtos.XieTong.Send;
+using Sharing.Province.XieTong.Send;
+using Sharing.Repository.Province.XieTong.Send;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Sharing.Province.Handlers
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class GetVisitInfoReceiveHandler : INotificationHandler<GetVisitInfoReceiveNotification>
+    {
+        private readonly IChannelConfigurationManager _channelConfigurationManager;
+        private readonly PusherProvider _pusherProvider;
+        private readonly IMapper _mapper;
+        private readonly IGetVisitInfoReceiveRepository _getVisitInfoReceiveRepository;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="channelConfigurationManager"></param>
+        /// <param name="pusherProvider"></param>
+        /// <param name="mapper"></param>
+        /// <param name="getVisitInfoReceiveRepository"></param>
+        public GetVisitInfoReceiveHandler(IChannelConfigurationManager channelConfigurationManager, PusherProvider pusherProvider, IMapper mapper
+            , IGetVisitInfoReceiveRepository getVisitInfoReceiveRepository)
+        {
+            _channelConfigurationManager = channelConfigurationManager;
+            _pusherProvider = pusherProvider;
+            _mapper = mapper;
+            _getVisitInfoReceiveRepository = getVisitInfoReceiveRepository;
+        }
+
+        /// <summary>
+        /// 服务工单交办评价
+        /// </summary>
+        /// <param name="notification"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task Handle(GetVisitInfoReceiveNotification notification, CancellationToken cancellationToken = default)
+        {
+            var pusher = _pusherProvider.CreatePusher(_channelConfigurationManager);
+
+            var dataReceive = _mapper.Map<GetVisitInfoReceiveInfo>(notification.Data);
+            var data = new GetVisitInfoReceiveData
+            {
+                GetVisitInfoReceiveInfos = new List<GetVisitInfoReceiveInfo>
+                {
+                    dataReceive
+                }
+            };
+
+            var request = new GetVisitInfoReceiveRequest();
+            request.SetData(data);
+
+            var response = await pusher.PushGetVisitInfoReceiveAsync(request, cancellationToken);
+
+            //如果推送成功修改数据状态
+            if (response != null && response.Code == "1")
+            {
+                notification.Data.SyncState = "1";
+                notification.Data.ReturnResult = Newtonsoft.Json.JsonConvert.SerializeObject(response);
+                await _getVisitInfoReceiveRepository.UpdateAsync(notification.Data);
+            }
+        }
+    }
+}

+ 8 - 0
src/Sharing.Province/IProvincePusher.cs

@@ -31,4 +31,12 @@ public interface IProvincePusher
     /// <param name="cancellationToken"></param>
     /// <returns></returns>
     Task<BaseProvinceResponse> PushGetCaseProcessReceiveAsync(GetCaseProcessReceiveRequest request, CancellationToken cancellationToken);
+
+    /// <summary>
+    /// 服务工单交办评价
+    /// </summary>
+    /// <param name="request"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task<BaseProvinceResponse> PushGetVisitInfoReceiveAsync(GetVisitInfoReceiveRequest request, CancellationToken cancellationToken);
 }

+ 11 - 0
src/Sharing.Province/SmartPusher.cs

@@ -33,4 +33,15 @@ public class SmartPusher : IProvincePusher
     {
         throw new NotImplementedException();
     }
+
+    /// <summary>
+    /// 服务工单交办评价
+    /// </summary>
+    /// <param name="request"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<BaseProvinceResponse> PushGetVisitInfoReceiveAsync(GetVisitInfoReceiveRequest request, CancellationToken cancellationToken)
+    {
+        throw new NotImplementedException();
+    }
 }

+ 19 - 0
src/Sharing.Repository/Province/XieTong/Send/GetVisitInfoReceiveRepository.cs

@@ -0,0 +1,19 @@
+using Sharing.Province.XieTong.Send;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using XF.Domain.Dependency;
+
+namespace Sharing.Repository.Province.XieTong.Send
+{
+    public class GetVisitInfoReceiveRepository : BaseRepository<GetVisitInfoReceive>, IGetVisitInfoReceiveRepository, IScopeDependency
+    {
+        public GetVisitInfoReceiveRepository(ISugarUnitOfWork<SharingDbContext> uow) : base(uow)
+        {
+
+        }
+    }
+}

+ 11 - 0
src/Sharing/Notifications/GetVisitInfoReceiveNotification.cs

@@ -0,0 +1,11 @@
+using MediatR;
+using Sharing.Province.XieTong.Send;
+
+namespace Sharing.Notifications
+{
+    /// <summary>
+    /// 服务工单交办评价    
+    /// </summary>
+    /// <param name="Data"></param>
+    public record GetVisitInfoReceiveNotification(GetVisitInfoReceive Data) : INotification;
+}

+ 43 - 0
src/Sharing/Province/XieTong/Send/GetVisitInfoReceive.cs

@@ -0,0 +1,43 @@
+using Sharing.Province.HuiJu.Send;
+using SqlSugar;
+using System.ComponentModel;
+
+namespace Sharing.Province.XieTong.Send
+{
+    /// <summary>
+    /// 服务工单交办评价 
+    /// </summary>
+    [Description("服务工单交办评价")]
+    public class GetVisitInfoReceive : BaseSendResult
+    {
+        /// <summary>
+        /// 回访评价方式
+        /// </summary>
+        [SugarColumn(ColumnDescription = "回访评价方式", ColumnDataType = "varchar(50)")]
+        public string VisitType { get; set; }
+
+        /// <summary>
+        /// 回访人员
+        /// </summary>
+        [SugarColumn(ColumnDescription = "回访人员", ColumnDataType = "varchar(200)")]
+        public string VisitName { get; set; }
+
+        /// <summary>
+        /// 回访时间
+        /// </summary>
+        [SugarColumn(ColumnDescription = "回访时间")]
+        public string VisitTime { get; set; }
+
+        /// <summary>
+        /// 回访评价情况
+        /// </summary>
+        [SugarColumn(ColumnDescription = "回访评价情况", ColumnDataType = "varchar(1000)")]
+        public string VisitRemark { get; set; }
+
+        /// <summary>
+        /// 回访结果满意度
+        /// </summary>
+        [SugarColumn(ColumnDescription = "回访结果满意度", ColumnDataType = "varchar(4)")]
+        public string SubjectResultSatify { get; set; }
+    }
+}

+ 13 - 0
src/Sharing/Province/XieTong/Send/IGetVisitInfoReceiveRepository.cs

@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using XF.Domain.Repository;
+
+namespace Sharing.Province.XieTong.Send
+{
+    public interface IGetVisitInfoReceiveRepository:IRepository<GetVisitInfoReceive>
+    {
+    }
+}