Browse Source

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

qinchaoyue 5 tháng trước cách đây
mục cha
commit
34eddaf552

+ 12 - 3
src/Hotline.Api/Controllers/KnowledgeCommonController.cs

@@ -3,6 +3,7 @@ using Hotline.Permissions;
 using Hotline.Share.Dtos.Knowledge;
 using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
+using SqlSugar;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
@@ -137,10 +138,18 @@ namespace Hotline.Api.Controllers
         /// <param name="IsEnable">不传查询所有</param>
         /// <returns></returns>
         [HttpGet("treelist")]
-        public async Task<List<KnowledgeType>> GetTreeList(bool? IsEnable)
+        public async Task<List<KnowledgeTypeDto>> GetTreeList(bool? IsEnable)
         {
-            return await _knowledgeTypeRepository.Queryable().WhereIF(IsEnable.HasValue, p => p.IsEnable == IsEnable)
-				 .Where(x => x.KnowledgeTypeOrgs.Any(to => to.OrgId == _sessionContext.RequiredOrgId) || x.KnowledgeTypeOrgs.Any() == false).OrderBy(p => p.Sort).ToTreeAsync(it => it.children, it => it.ParentId, null,it=> it.Id);
+            return await _knowledgeTypeRepository.Queryable().WhereIF(IsEnable.HasValue, x =>x.IsEnable == IsEnable)
+				 //.Where(x => x.KnowledgeTypeOrgs.Any(to => to.OrgId == _sessionContext.RequiredOrgId) || x.KnowledgeTypeOrgs.Any() == false)
+				 .Where(x=> SqlFunc.Subqueryable<KnowledgeTypeOrg>().Where(to=>to.TypeId == x.Id && to.OrgId == _sessionContext.RequiredOrgId).Any())
+				 .Select(x=> new KnowledgeTypeDto()
+				 {
+                     Id = x.Id.SelectAll(),
+                     KnowledgeNum = SqlFunc.Subqueryable<KnowledgeRelationType>().Where(kr=>kr.KnowledgeTypeId == x.Id).DistinctCount(kr=>kr.KnowledgeId)
+
+				 })
+				 .OrderBy(x => x.Sort).ToTreeAsync(it => it.children, it => it.ParentId, null,it=> it.Id);
         }
 
         /// <summary>

+ 3 - 2
src/Hotline.Api/Controllers/WebPortalController.cs

@@ -969,7 +969,7 @@ namespace Hotline.Api.Controllers
         /// <returns></returns>
         [AllowAnonymous]
         [HttpPost("orderacceptance")]
-        public async Task<OpenResponse> OrderAcceptance([FromBody] WebFlowAccept dto)
+        public async Task<OpenResponse> OrderAcceptance([FromBody] WebFlowAcceptDto dto)
         {
             //电话号码去空格
             if (!string.IsNullOrEmpty(dto.Mobile))
@@ -1006,7 +1006,8 @@ namespace Hotline.Api.Controllers
                 dto.Pwd = result.Password;
                 dto.Code = result.No;
                 dto.OrderId = result.Id;
-                await _webFlowAcceptRepository.AddAsync(dto, HttpContext.RequestAborted);
+                var dtoData= _mapper.Map<WebFlowAccept>(dto);
+                await _webFlowAcceptRepository.AddAsync(dtoData, HttpContext.RequestAborted);
 
             }
             else

+ 10 - 0
src/Hotline.Application/Knowledge/KnowApplication.cs

@@ -63,6 +63,10 @@ namespace Hotline.Application.Knowledge
         /// <returns></returns>
         public async Task<(int, IList<KnowledgeDataDto>)> GetKnowList(KnowPagedListDto pagedDto, CancellationToken cancellationToken)
         {
+	        if (!_sessionContext.OrgIsCenter)
+	        {
+		        pagedDto.Attribution = "部门知识库";
+	        }
             var typeSpliceName = string.Empty;
             var hotspotHotSpotFullName = string.Empty;
             if (!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId))
@@ -98,6 +102,7 @@ namespace Hotline.Application.Knowledge
                 .WhereIF(pagedDto.Status ==  EKnowledgeStatus.NewDrafts ,x=>x.Status == EKnowledgeStatus.Drafts || x.Status == EKnowledgeStatus.Revert)
                 .WhereIF(pagedDto.NewDraftsStatus is EKnowledgeStatus.Drafts , x=>x.Status == EKnowledgeStatus.Drafts)
                 .WhereIF(pagedDto.NewDraftsStatus is EKnowledgeStatus.Revert, x => x.Status == EKnowledgeStatus.Revert)
+                .WhereIF(!string.IsNullOrEmpty(pagedDto.Attribution),x=>x.Attribution == pagedDto.Attribution)
 				.OrderByDescending(d => d.CreationTime)
                 .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize, cancellationToken);
             //返回数据
@@ -283,6 +288,11 @@ namespace Hotline.Application.Knowledge
                 hotspotHotSpotFullName = hotspot?.HotSpotFullName;
             }
 
+            if (!_sessionContext.OrgIsCenter)
+            {
+	            dto.Attribution = "部门知识库";
+            }
+
             var sugar = _knowledgeRepository
                 .Queryable(false, false, false)
                 .Includes(x => x.User)

+ 14 - 4
src/Hotline.Share/Dtos/Knowledge/KnowledgeDto.cs

@@ -33,10 +33,15 @@ namespace Hotline.Share.Dtos.Knowledge
     /// </summary>
     public class AddKnowledgeDto : KnowledgeDto
     {
-        /// <summary>
-        /// 知识Code
-        /// </summary>
-        public string Code { get; set; }
+	    /// <summary>
+	    /// 知识来源
+	    /// </summary>
+	    public string? Source { get; set; }
+
+		/// <summary>
+		/// 知识Code
+		/// </summary>
+		public string Code { get; set; }
 
         /// <summary>
         /// 标签名称
@@ -268,6 +273,11 @@ namespace Hotline.Share.Dtos.Knowledge
 
         public List<FileJson>? FileJson { get; set; }
 
+        /// <summary>
+        /// 来源
+        /// </summary>
+        public string? Source { get; set; }
+
 	}
 
     public class KnowledgeBaseDto {

+ 59 - 13
src/Hotline.Share/Dtos/Knowledge/KnowledgePagedDto.cs

@@ -21,20 +21,61 @@ namespace Hotline.Share.Dtos.Knowledge
 	/// <param name="EKnowledgeWorkFlowStatus">审核状态</param>
 	public record KnowledgeApprovalPagedListDto(EKnowledgeApplyType? EKnowledgeApplyType, EKnowledgeWorkFlowStatus? EKnowledgeWorkFlowStatus) : PagedKeywordRequest;
 
-    /// <summary>
-    /// 知识检索
-    /// </summary>
-    /// <param name="RetrievalType">检索类型</param>
-    /// <param name="Attribution">归属</param>
-    /// <param name="Sort">排序字段</param>
-    /// <param name="CreateOrgId">部门id</param>
-    /// <param name="HotspotId">热点id</param>
-    /// <param name="HotspotName">热点名称</param>;
-    /// <param name="KnowledgeTypeId">类型id</param>
-    /// <param name="Content">受理内容</param>
-    public record KnowledgeRetrievalPagedListDto(EKnowledgeRetrievalType? RetrievalType,string? Attribution,string Sort, string? CreateOrgId, string? HotspotId, string? HotspotName, string? KnowledgeTypeId, string? Content) : PagedKeywordRequest;
+	/// <summary>
+	/// 知识检索
+	/// </summary>
+	/// <param name="RetrievalType">检索类型</param>
+	/// <param name="Attribution">归属</param>
+	/// <param name="Sort">排序字段</param>
+	/// <param name="CreateOrgId">部门id</param>
+	/// <param name="HotspotId">热点id</param>
+	/// <param name="HotspotName">热点名称</param>;
+	/// <param name="KnowledgeTypeId">类型id</param>
+	/// <param name="Content">受理内容</param>
+	public record KnowledgeRetrievalPagedListDto : PagedKeywordRequest
+	{
+		/// <summary>
+		/// 检索类型
+		/// </summary>
+		public EKnowledgeRetrievalType? RetrievalType { get; set; }
 
-    /// <summary>
+		/// <summary>
+		/// 归属
+		/// </summary>
+		public string? Attribution { get; set; }
+
+		/// <summary>
+		/// 排序字段
+		/// </summary>
+		public string Sort { get; set; }
+
+		/// <summary>
+		/// 部门id
+		/// </summary>
+		public string? CreateOrgId { get; set; }
+
+		/// <summary>
+		/// 热点id
+		/// </summary>
+		public string? HotspotId { get; set; }
+
+		/// <summary>
+		/// 热点名称
+		/// </summary>
+		public string? HotspotName { get; set; }
+
+		/// <summary>
+		/// 类型id
+		/// </summary>
+		public string? KnowledgeTypeId { get; set; }
+
+		/// <summary>
+		/// 受理内容
+		/// </summary>
+		public string? Content { get; set; }
+	};
+
+	/// <summary>
     /// 来电弹屏知识库查询
     /// </summary>
     /// <param name="HotspotId">热点ID</param>
@@ -111,5 +152,10 @@ namespace Hotline.Share.Dtos.Knowledge
         /// </summary>
         public string? ModuleCode { get; set; }
 
+		/// <summary>
+		///   归属
+		/// </summary>
+		public string? Attribution { get; set; }
+
 	}
 }

+ 8 - 1
src/Hotline.Share/Dtos/Knowledge/KnowledgeTypeDto.cs

@@ -77,5 +77,12 @@
         /// 树形分类
         /// </summary>
         public List<TreeListDto> TreeLists { get; set; } = new();
-    }
+
+        /// <summary>
+        /// 子级
+        /// </summary>
+        public List<KnowledgeTypeDto> children { get; set; }
+
+        public int KnowledgeNum { get; set; }
+	}
 }

+ 6 - 4
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -29,10 +29,12 @@ namespace Hotline.Share.Dtos.Order
 
         public DateTime CreationTime { get; set; }
 
-        /// <summary>
-        /// 工单状态
-        /// </summary>
-        public EOrderStatus Status { get; set; }
+        public string ActualHandleOrgName { get; set; }
+
+		/// <summary>
+		/// 工单状态
+		/// </summary>
+		public EOrderStatus Status { get; set; }
 
         public string StatusText => Status.GetDescription();
     }

+ 40 - 0
src/Hotline.Share/Dtos/WebPortal/ArticleDetailsDto.cs

@@ -7,6 +7,16 @@ namespace Hotline.Share.Dtos.WebPortal
     /// </summary>
     public class ArticleIdDto
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 公告ID
         /// </summary>
@@ -15,6 +25,16 @@ namespace Hotline.Share.Dtos.WebPortal
 
     public class ArticleIdByNumDto
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 公告分类
         /// </summary>
@@ -41,6 +61,16 @@ namespace Hotline.Share.Dtos.WebPortal
     /// </summary>
     public class ArticlePreviousAndNextDto
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 公告ID
         /// </summary>
@@ -207,6 +237,16 @@ namespace Hotline.Share.Dtos.WebPortal
     /// </summary>
     public record QueryArticleListDto : PagedRequest
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 公告分类
         /// </summary>

+ 68 - 0
src/Hotline.Share/Dtos/WebPortal/GetOrderCodePwd.cs

@@ -9,7 +9,24 @@ namespace Hotline.Share.Dtos.WebPortal
     /// </summary>
     public class GetOrderCodePwd
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
         public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
         public string Pwd { get; set; }
     }
 
@@ -18,6 +35,17 @@ namespace Hotline.Share.Dtos.WebPortal
     /// </summary>
     public class QueryOrderListByNumDto
     {
+
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         public int Num { get; set; }
     }
 
@@ -26,6 +54,16 @@ namespace Hotline.Share.Dtos.WebPortal
     /// </summary>
     public record QueryOrderListByUserDto : PagedRequest
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 信件编号
         /// </summary>
@@ -37,6 +75,16 @@ namespace Hotline.Share.Dtos.WebPortal
     /// </summary>
     public record QueryOrderListDto : PagedRequest
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 来电/信人身份
         /// </summary>
@@ -405,6 +453,16 @@ namespace Hotline.Share.Dtos.WebPortal
     /// </summary>
     public class OrderFormByMonthDto
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 开始时间
         /// </summary>
@@ -437,6 +495,16 @@ namespace Hotline.Share.Dtos.WebPortal
     /// </summary>
     public class GetVailDataDto()
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         public string Key { get; set; }
 
         public string Value { get; set; }

+ 23 - 0
src/Hotline.Share/Dtos/WebPortal/QueryKnowledgeList.cs

@@ -5,6 +5,16 @@ namespace Hotline.Share.Dtos.WebPortal
 {
     public record QueryKnowledgeList : PagedRequest
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 知识标题
         /// </summary>
@@ -23,6 +33,19 @@ namespace Hotline.Share.Dtos.WebPortal
 
     public class QueryKnowledgeInfo
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
         public string Id { get; set; }
     }
 

+ 11 - 0
src/Hotline.Share/Dtos/WebPortal/UserModelDto.cs

@@ -2,6 +2,17 @@
 {
     public class UserModelDto
     {
+
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 数据获取状态
         /// true

+ 10 - 0
src/Hotline.Share/Dtos/WebPortal/WaitVisitListDataDto.cs

@@ -2,6 +2,16 @@
 {
     public class OrderVisitListDataDto
     {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
         /// <summary>
         /// 工单ID
         /// </summary>

+ 128 - 0
src/Hotline.Share/Dtos/WebPortal/WebFlowAcceptDto.cs

@@ -0,0 +1,128 @@
+using Hotline.Share.Dtos.File;
+using Hotline.Share.Enums.Order;
+
+namespace Hotline.Share.Dtos.WebPortal
+{
+    public class WebFlowAcceptDto
+    {
+        /// <summary>
+        /// 账号
+        /// </summary>
+        public string? ClientId { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string? ClientSecret { get; set; }
+
+        /// <summary>
+        /// 门户网站注册用户
+        /// </summary>
+        public string? WebUserID { get; set; }
+
+        /// <summary>
+        /// 来电/信人身份
+        /// </summary>
+        public EIdentityType? IdentityType { get; set; } = EIdentityType.Citizen;
+
+        /// <summary>
+        /// 工单Id
+        /// </summary>
+        public string? OrderId { get; set; }
+
+        /// <summary>
+        /// 姓名
+        /// </summary>
+        public string LKName { get; set; }
+
+        /// <summary>
+        /// 性别
+        /// </summary>
+        public string? Sex { get; set; }
+
+        /// <summary>
+        /// 是否保密
+        /// </summary>
+        public string? IsSecret { get; set; }
+
+        /// <summary>
+        /// 邮箱
+        /// </summary>
+        public string? Mail { get; set; }
+
+        /// <summary>
+        /// 身份证
+        /// </summary>
+        public string? IDCard { get; set; }
+
+        /// <summary>
+        /// 电话
+        /// </summary>
+        public string Mobile { get; set; }
+
+        /// <summary>
+        /// 微博/微信账号
+        /// </summary>
+        public string? AccountNum { get; set; }
+
+        /// <summary>
+        /// 地址
+        /// </summary>
+        public string? Address { get; set; }
+
+        /// <summary>
+        /// 标题
+        /// </summary>
+        public string Title { get; set; }
+
+        /// <summary>
+        /// 信件内容
+        /// </summary>
+        public string Content { get; set; }
+
+        /// <summary>
+        /// 来源方式
+        /// </summary>
+        public string? FromID { get; set; }
+
+        /// <summary>
+        /// 受理类型ID
+        /// </summary>
+        public string PurTypeID { get; set; }
+
+        /// <summary>
+        /// 受理类型名称
+        /// </summary>
+        public string PurTypeName { get; set; }
+
+        /// <summary>
+        /// 热点类型ID
+        /// </summary>
+        public string? ConTypeID { get; set; }
+
+        /// <summary>
+        /// 信件编号
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 查询密码
+        /// </summary>
+        public string Pwd { get; set; }
+
+        /// <summary>
+        /// 来信IP
+        /// </summary>
+        public string? IP { get; set; }
+
+        /// <summary>
+        /// 微信Id
+        /// </summary>
+        public string? WXOpenid { get; set; }
+
+        /// <summary>
+        /// 附件
+        /// </summary>
+        public List<FileDto>? Files { get; set; } = new();
+    }
+}

+ 6 - 0
src/Hotline/KnowledgeBase/Knowledge.cs

@@ -216,4 +216,10 @@ public class Knowledge : WorkflowEntity//   WorkflowEntity  FullStateEntity
 	/// </summary>
 	[SugarColumn(ColumnDescription = "收藏数量")]
 	public int? CollectCount { get; set; } = 0;
+
+	/// <summary>
+	/// 知识来源
+	/// </summary>
+	[SugarColumn(ColumnDescription = "知识来源")]
+	public string? Source { get; set; }
 }

+ 0 - 7
src/Hotline/KnowledgeBase/KnowledgeType.cs

@@ -45,13 +45,6 @@ public class KnowledgeType : FullStateEntity
     /// </summary>
     public int? OldTypeId { get; set; }
 
-	/// <summary>
-	/// 子级
-	/// </summary>
-	[SqlSugar.SugarColumn(IsIgnore = true)]
-    public List<KnowledgeType> children { get; set; }
-
-
     /// <summary>
     /// 类型关联机构
     /// </summary>