Эх сурвалжийг харах

Merge branch 'master' of http://110.188.24.182:10023/Fengwo/hotline

xf 1 жил өмнө
parent
commit
28f6ab2fa9

+ 35 - 3
src/Hotline.Api/Controllers/ArticleController.cs

@@ -8,7 +8,9 @@ using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Article;
 using Hotline.Share.Dtos.FlowEngine;
 using Hotline.Share.Dtos.Order;
+using Hotline.Share.Dtos.Users;
 using Hotline.Share.Enums.Article;
+using Hotline.Users;
 using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.OpenApi.Writers;
@@ -31,8 +33,9 @@ namespace Hotline.Api.Controllers
         private readonly ISessionContext _sessionContext;
         private readonly IRepository<CircularRecord> _circularRecordRepository;
         private readonly IRepository<CircularReadGroup> _circularReadGroupRepository;
+        private readonly IRepository<User> _userRepository;
 
-        public ArticleController(IRepository<Bulletin> bulletinRepository,IMapper mapper, ISystemDomainService systemDomainService, ISystemOrganizeRepository organizeRepository, IWorkflowApplication workflowApplication, IRepository<Circular> circularRepository,ISessionContext sessionContext,IRepository<CircularRecord> circularRecordRepository,IRepository<CircularReadGroup> circularReadGroupRepository)
+        public ArticleController(IRepository<Bulletin> bulletinRepository,IMapper mapper, ISystemDomainService systemDomainService, ISystemOrganizeRepository organizeRepository, IWorkflowApplication workflowApplication, IRepository<Circular> circularRepository,ISessionContext sessionContext,IRepository<CircularRecord> circularRecordRepository,IRepository<CircularReadGroup> circularReadGroupRepository,IRepository<User> userRepository)
         {
             _bulletinRepository = bulletinRepository;
             _mapper = mapper;
@@ -43,8 +46,26 @@ namespace Hotline.Api.Controllers
             _sessionContext = sessionContext;
             _circularRecordRepository = circularRecordRepository;
             _circularReadGroupRepository = circularReadGroupRepository;
+            _userRepository = userRepository;
         }
         #region 通知
+
+        /// <summary>
+        /// 获取所有用户不分页
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("alluser")]
+        public async Task<List<UserDto>> GetAllUser()
+        {
+            var list = await _userRepository.Queryable(includeDeleted: false)
+                .Includes(d => d.Account)
+                .Includes(d => d.Organization)
+                .OrderByDescending(x=>x.CreationTime)
+                .ToListAsync();
+            return new List<UserDto>(_mapper.Map<IReadOnlyList<UserDto>>(list));
+        }
+
+
         /// <summary>
         /// 查询通知列表
         /// </summary>
@@ -94,6 +115,16 @@ namespace Hotline.Api.Controllers
             model.ReadedNum = 0;
             model.NeedReadNum = model.CircularReadGroups.Count;
             var id = await _circularRepository.AddAsync(model, HttpContext.RequestAborted);
+            //子表
+            var list = dto.Data.CircularReadGroups;
+            var readGroupList = new List<CircularReadGroup>();
+            foreach (var item in list)
+            {
+                var readGroup = _mapper.Map<CircularReadGroup>(item);
+                readGroup.CircularId = id;
+                readGroupList.Add(readGroup);
+                await _circularReadGroupRepository.AddRangeAsync(readGroupList);
+            }
             try
             {
                 var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
@@ -131,8 +162,9 @@ namespace Hotline.Api.Controllers
         {
             var rsp = new
             {
-                CircularType = _systemDomainService.GetSysDicDataByCodeAsync(SysDicTypeConsts.CircularType),
+                CircularType = await _systemDomainService.GetSysDicDataByCodeAsync(SysDicTypeConsts.CircularType),
                 OrgsOptions = await _organizeRepository.GetOrgJson(),
+                CircularTypeEnum = EnumExts.GetDescriptions<ECircularType>()
             };
             return rsp;
         }
@@ -296,7 +328,7 @@ namespace Hotline.Api.Controllers
             var rsp = new
             {
                 BulletinType = await _systemDomainService.GetSysDicDataByCodeAsync(SysDicTypeConsts.BulletinType),
-                PushRanges = EnumExts.GetDescriptions<EPushRange>(),
+                PushRanges = await _systemDomainService.GetSysDicDataByCodeAsync(SysDicTypeConsts.BulletinPushRange),
                 OrgsOptions = await _organizeRepository.GetOrgJson(),
             };
             return rsp;

+ 45 - 7
src/Hotline.Share/Dtos/Article/BulletinDto.cs

@@ -5,6 +5,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using XF.Utility.EnumExtensions;
 
 namespace Hotline.Share.Dtos.Article
 {
@@ -45,7 +46,7 @@ namespace Hotline.Share.Dtos.Article
 		/// <summary>
 		/// 发布范围(多选)  位枚举  EPushRange
 		/// </summary>
-		public int PushRanges { get; set; }
+		public List<Kv> PushRanges { get; set; }
 
         /// <summary>
         /// 来源单位ID
@@ -70,7 +71,12 @@ namespace Hotline.Share.Dtos.Article
         public string? CreatorId { get; set; }
 
         public string? CreatorName { get; set; }
-    }
+
+        public string BulletinStateText => BulletinState.GetDescription();
+
+        public string PushRangesText => PushRanges.Any() ? string.Join("、", PushRanges.Select(x => x.Value)) : "-";
+
+	}
 
     public record CircularDto
     {
@@ -108,6 +114,8 @@ namespace Hotline.Share.Dtos.Article
         /// </summary>
         public ECircularType CircularType { get; set; }
 
+        public string CircularTypeText => CircularType.GetDescription();
+
         /// <summary>
         /// 通知时间
         /// </summary>
@@ -122,6 +130,8 @@ namespace Hotline.Share.Dtos.Article
         /// 通知状态
         /// </summary>
         public ECircularState CircularState { get; set; }
+
+        public string CircularStateText => CircularState.GetDescription();
         /// <summary>
         /// 来源单位ID
         /// </summary>
@@ -169,18 +179,46 @@ namespace Hotline.Share.Dtos.Article
 
     public record AddCircularDto
     {
+        /// <summary>
+        /// 标题
+        /// </summary>
         public string Title { get; set; }
-
+        /// <summary>
+        /// 内容
+        /// </summary>
         public string Content { get; set; }
-
+        /// <summary>
+        /// 通知类型
+        /// </summary>
         public string CircularTypeId { get; set; }
-
+        /// <summary>
+        /// 通知类型名称
+        /// </summary>
         public string CircularTypeName { get; set; }
-
+        /// <summary>
+        /// 通知对象
+        /// </summary>
+        public ECircularType CircularType { get; set; }
+        /// <summary>
+        /// 是否必读
+        /// </summary>
         public bool IsMustRead { get; set; }
 
+        /// <summary>
+        /// 失效时间
+        /// </summary>
         public DateTime LostEfficacyTime { get; set; }
 
+        /// <summary>
+        /// 来源单位ID
+        /// </summary>
+        public string SourceOrgId { get; set; }
+
+        /// <summary>
+        /// 来源单位名称
+        /// </summary>
+        public string SourceOrgName { get; set; }
+
         public List<CircularReadGroupDto> CircularReadGroups { get; set; }
     }
 
@@ -215,7 +253,7 @@ namespace Hotline.Share.Dtos.Article
 		/// <summary>
 		/// 发布范围  EPushRange
 		/// </summary>
-		public int PushRanges { get; set; }
+		public List<Kv> PushRanges { get; set; }
 
         /// <summary>
         /// 来源单位ID

+ 0 - 2
src/Hotline.Share/Enums/Article/EBulletinState.cs

@@ -9,13 +9,11 @@ namespace Hotline.Share.Enums.Article
         /// </summary>
         [Description("审批中")]
         InReview  = 1,
-
         /// <summary>
         /// 审批通过
         /// </summary>
         [Description("审批通过")]
         ReviewPass = 2,
-
         /// <summary>
         /// 审批驳回
         /// </summary>

+ 4 - 2
src/Hotline/Article/Bulletin.cs

@@ -1,4 +1,5 @@
-using Hotline.Share.Enums.Article;
+using Hotline.Share.Dtos;
+using Hotline.Share.Enums.Article;
 using SqlSugar;
 using XF.Domain.Repository;
 
@@ -41,7 +42,8 @@ namespace Hotline.Article
 		/// <summary>
 		/// 发布范围(多选) 位枚举  EPushRange
 		/// </summary>
-		public int PushRanges { get; set; }
+		[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
+		public List<Kv>? PushRanges { get; set; }
 
         /// <summary>
         /// 来源单位ID

+ 7 - 2
src/Hotline/Settings/SysDicTypeConsts.cs

@@ -171,7 +171,12 @@ public class SysDicTypeConsts
     public const string BulletinType = "BulletinType";
 
     /// <summary>
-    /// 通知类型
+    /// 公告范围
     /// </summary>
-    public const string CircularType = "CircularType";
+    public const string BulletinPushRange = "BulletinPushRange";
+
+	/// <summary>
+	/// 通知类型
+	/// </summary>
+	public const string CircularType = "CircularType";
 }