Browse Source

1. 登录接口 将公告未读和消息未读分开(消息未读:messageUnReadCount,公告未读:announcementUnReadCount)
2. 获取消息未读条数接口(/api/System/PotsMessageUnreadTotalCount)返回体data返回两个int类型的整数(消息未读:messageUnReadCount,公告未读:announcementUnReadCount)

leiy 10 months ago
parent
commit
ffcc466e17

+ 4 - 1
OASystem/OASystem.Api/Controllers/AuthController.cs

@@ -77,6 +77,7 @@ namespace OASystem.API.Controllers
             string role = string.Empty;
             int uId = 0;
             int unReadCount = 0;
+            int announcementUnReadCount = 0;
             if (userData.Data != null)
             {
                 uId = (userData.Data as UserLoginInfoView).UserId;
@@ -84,6 +85,7 @@ namespace OASystem.API.Controllers
                 role = (userData.Data as UserLoginInfoView).JobName;
                 authData = _SystemMenuPermissionRepository.QueryMenuLoad(uId, dto.PortType);
                 unReadCount = await _messageRep.GetUnReadCount(uId);
+                announcementUnReadCount = await _messageRep.GetAnnouncementUnReadCount(uId);
             }
 
             //_hubContext.Login(uId, uName);
@@ -91,7 +93,8 @@ namespace OASystem.API.Controllers
             {
                 UserInfo = userData == null ? null : userData.Data,
                 AuthData = authData == null ? null : authData.Data,
-                UnReadCount = unReadCount
+                UnReadCount = unReadCount,
+                AnnouncementUnReadCount = announcementUnReadCount
             };
 
             DateTime createZebraTime = DateTime.Now;

+ 10 - 2
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -239,13 +239,21 @@ namespace OASystem.API.Controllers
 
             try
             {
+                int messageUnReadCount = 0;
+                int announcementUnReadCount = 0;
                 var data = await _messageRep.GetUnReadCount(dto.UserId);
                 if (data != null)
                 {
-                    return Ok(JsonView(true, "操作成功!", data));
+                    messageUnReadCount = data;
+
+                }
+                var data1 = await _messageRep.GetAnnouncementUnReadCount(dto.UserId);
+                if (data1 != null)
+                {
+                    announcementUnReadCount = data1;
                 }
 
-                return Ok(JsonView(false, "操作失败!"));
+                return Ok(JsonView(true, "操作成功!", new { messageUnReadCount = messageUnReadCount, announcementUnReadCount = announcementUnReadCount }));
             }
             catch (Exception ex)
             {

+ 7 - 0
OASystem/OASystem.Domain/ViewModels/LoginView.cs

@@ -29,4 +29,11 @@ public class LoginView
     /// 未读消息条数
     /// </summary>
     public int UnReadCount { get; set; }
+
+
+    /// <summary>
+    /// 公告未读
+    /// 未读消息条数
+    /// </summary>
+    public int AnnouncementUnReadCount { get; set; }
 }

+ 16 - 0
OASystem/OASystem.Infrastructure/Repositories/System/MessageRepository.cs

@@ -277,6 +277,22 @@ namespace OASystem.Infrastructure.Repositories.System
             return _unReadCount;
         }
 
+        /// <summary>
+        /// 获取公告消息消息未读消息条数
+        /// </summary>
+        /// <param name="uId">可读用户Id</param>
+        /// <returns></returns>
+        public async Task<int> GetAnnouncementUnReadCount(int userId)
+        {
+            int _unReadCount = 0;
+            string msgSqlWhere = $"Select COUNT(*) As UnreadCount From  Sys_MessageReadAuth  smra Left Join Sys_Message sm On sm.Id = smra.MsgId Where IsRead = 0 And smra.IsDel = 0 And sm.IsDel = 0  And sm.Type = 1 And ReadableUId = {userId}";
+            var _readableMsg = _sqlSugar.SqlQueryable<MessageUnreadTotalCountView>(msgSqlWhere).First();
+
+            _unReadCount = _readableMsg.UnreadCount;
+
+            return _unReadCount;
+        }
+
         /// <summary>
         /// 获取消息详细
         /// </summary>