Просмотр исходного кода

消息服务相关接口补上用户信息查询

yzc 3 лет назад
Родитель
Сommit
f8a3546720

+ 2 - 2
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/KwmMessageUserService.java

@@ -72,7 +72,7 @@ public class KwmMessageUserService {
      * @date: 2023-06-09 15:07
      */
     @Transactional(rollbackFor = Exception.class)
-    public void delByUserAndMsgIds(long userId, List<Long> msgIds) {
+    public void delByUserAndMsgIds(Long userId, List<Long> msgIds) {
         LambdaUpdateWrapper<KwmMessageUser> wrapper = new LambdaUpdateWrapper<>();
         wrapper.set(KwmMessageUser::getDelFlag, 1)
                 .eq(KwmMessageUser::getUserId, userId).in(KwmMessageUser::getMsgId, msgIds);
@@ -100,7 +100,7 @@ public class KwmMessageUserService {
      * @Param userId:
      * @return: com.sckw.message.model.KwmMessageUser
      */
-    public KwmMessageUser getByMsgIdAndUserId(Long msgId, long userId) {
+    public KwmMessageUser getByMsgIdAndUserId(Long msgId, Long userId) {
         LambdaQueryWrapper<KwmMessageUser> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(KwmMessageUser::getUserId, userId).eq(KwmMessageUser::getMsgId, msgId)
                 .eq(KwmMessageUser::getDelFlag, 0).last("LIMIT 1");

+ 25 - 22
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/MessageService.java

@@ -1,5 +1,6 @@
 package com.sckw.message.service;
 
+import com.sckw.core.model.auth.context.LoginUserHolder;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
@@ -42,15 +43,14 @@ public class MessageService {
      * @date: 2023-06-09 14:21
      */
     public List<KwmMessage> selectMessages(FindMessagesReqVO params) {
-        //TODO 当前线程获取用户id
-        List<KwmMessageUser> messageUsers = kwmMessageUserService.getByUserId(1L);
+        List<KwmMessageUser> messageUsers = kwmMessageUserService.getByUserId(LoginUserHolder.getUserId());
         Map<Long, KwmMessageUser> map = messageUsers.stream().collect(Collectors.toMap(KwmMessageUser::getMsgId, e -> e, (k1, k2) -> k1));
         if (CollectionUtils.isEmpty(map)) {
             return Collections.emptyList();
         }
         List<Long> msgIds = map.keySet().stream().toList();
         List<KwmMessage> list = kwmMessageService.getList(msgIds, params.getCategory(), params.getType(), null);
-        list.forEach(e->{
+        list.forEach(e -> {
             KwmMessageUser messageUser = map.get(e.getId());
             e.setStatus(messageUser.getStatus());
             e.setCreateTime(messageUser.getCreateTime());
@@ -69,8 +69,8 @@ public class MessageService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void read(ReadMessagesReqVO reqVO) {
-        //TODO 当前线程获取用户id
-        List<Long> msgIds = kwmMessageUserService.getMsgIdsByUserId(1L);
+        Long userId = LoginUserHolder.getUserId();
+        List<Long> msgIds = kwmMessageUserService.getMsgIdsByUserId(userId);
         if (CollectionUtils.isEmpty(msgIds)) {
             return;
         }
@@ -78,7 +78,7 @@ public class MessageService {
         //msgIds不为空直接更新用户消息为已读
         if (CollectionUtils.isNotEmpty(ids)) {
             List<Long> list = ids.stream().filter(msgIds::contains).toList();
-            kwmMessageUserService.readByUserAndMsgIds(1L, list);
+            kwmMessageUserService.readByUserAndMsgIds(userId, list);
         } else {
             //msgIds为空根据category及type更新用户消息为已读
             List<KwmMessage> messageList = kwmMessageService.getList(msgIds, reqVO.getCategory(), reqVO.getType(), 0);
@@ -86,7 +86,7 @@ public class MessageService {
                 return;
             }
             List<Long> updateMsgIds = messageList.stream().map(KwmMessage::getId).toList();
-            kwmMessageUserService.readByUserAndMsgIds(1L, updateMsgIds);
+            kwmMessageUserService.readByUserAndMsgIds(userId, updateMsgIds);
         }
     }
 
@@ -99,8 +99,8 @@ public class MessageService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void delete(DeleteMessagesReqVO reqVO) {
-        //TODO 当前线程获取用户id
-        List<Long> msgIds = kwmMessageUserService.getMsgIdsByUserId(1L);
+        Long userId = LoginUserHolder.getUserId();
+        List<Long> msgIds = kwmMessageUserService.getMsgIdsByUserId(userId);
         if (CollectionUtils.isEmpty(msgIds)) {
             return;
         }
@@ -108,7 +108,7 @@ public class MessageService {
         //msgIds不为空直接删除用户消息
         if (CollectionUtils.isNotEmpty(ids)) {
             List<Long> list = ids.stream().filter(msgIds::contains).toList();
-            kwmMessageUserService.delByUserAndMsgIds(1L, list);
+            kwmMessageUserService.delByUserAndMsgIds(userId, list);
         } else {
             //msgIds为空,根据category及type查找删除用户消息
             List<KwmMessage> messageList = kwmMessageService.getList(msgIds, reqVO.getCategory(), reqVO.getType(), null);
@@ -116,7 +116,7 @@ public class MessageService {
                 return;
             }
             List<Long> delMsgIds = messageList.stream().map(KwmMessage::getId).toList();
-            kwmMessageUserService.delByUserAndMsgIds(1L, delMsgIds);
+            kwmMessageUserService.delByUserAndMsgIds(userId, delMsgIds);
         }
     }
 
@@ -128,8 +128,8 @@ public class MessageService {
      * @date: 2023-06-13 9:05
      */
     public List<KwmMessage> select(SelectMessagesReqVO reqVO) {
-        //TODO 当前线程获取用户id
-        FindMessagePageParam findMessagePageParam = FindMessagePageParam.builder().userId(1L).category(reqVO.getCategory()).type(reqVO.getType()).build();
+        FindMessagePageParam findMessagePageParam = FindMessagePageParam.builder().userId(LoginUserHolder.getUserId())
+                .category(reqVO.getCategory()).type(reqVO.getType()).build();
         return kwmMessageService.findPage(findMessagePageParam);
     }
 
@@ -141,22 +141,21 @@ public class MessageService {
      * @date: 2023-06-13 10:19
      */
     public List<MessagesStatisticsResVO> statistics(String category) {
-        //TODO 当前线程获取用户id
         //获取用户未删除消息
-        List<KwmMessageUser> messageUserList = kwmMessageUserService.getByUserId(1L);
-        Map<Long, KwmMessageUser> messageUserMap = messageUserList.stream().collect(Collectors.toMap(KwmMessageUser::getMsgId, e -> e, (k1, k2) -> k1));
-        if (CollectionUtils.isEmpty(messageUserMap)) {
+        List<KwmMessageUser> messageUsers = kwmMessageUserService.getByUserId(LoginUserHolder.getUserId());
+        Map<Long, KwmMessageUser> map = messageUsers.stream().collect(Collectors.toMap(KwmMessageUser::getMsgId, e -> e, (k1, k2) -> k1));
+        if (CollectionUtils.isEmpty(map)) {
             return Collections.emptyList();
         }
-        List<Long> msgIds = messageUserMap.keySet().stream().toList();
+        List<Long> msgIds = map.keySet().stream().toList();
         //根据消息ids获取message详情
         List<KwmMessage> messages = kwmMessageService.statistics(msgIds, category);
         if (CollectionUtils.isEmpty(messages)) {
             return Collections.emptyList();
         }
         //设置用户消息状态及创建时间
-        messages.forEach(e->{
-            KwmMessageUser kwmMessageUser = messageUserMap.get(e.getId());
+        messages.forEach(e -> {
+            KwmMessageUser kwmMessageUser = map.get(e.getId());
             e.setStatus(kwmMessageUser.getStatus());
             e.setCreateTime(kwmMessageUser.getCreateTime());
         });
@@ -190,11 +189,15 @@ public class MessageService {
      */
     @Transactional(rollbackFor = Exception.class)
     public KwmMessage detail(Long id) {
-        //TODO 当前线程获取用户id
+        Long userId = LoginUserHolder.getUserId();
+        KwmMessageUser messageUser = kwmMessageUserService.getByMsgIdAndUserId(id, userId);
+        if (Objects.isNull(messageUser)) {
+            return KwmMessage.builder().build();
+        }
         KwmMessage message = kwmMessageService.getById(id);
         List<Long> ids = Collections.singletonList(id);
         //更新用户消息为已读状态
-        kwmMessageUserService.readByUserAndMsgIds(1L, ids);
+        kwmMessageUserService.readByUserAndMsgIds(userId, ids);
         return message;
     }
 }

+ 1 - 4
sckw-modules/sckw-message/src/main/resources/mapper/KwmMessageMapper.xml

@@ -10,10 +10,7 @@
     left join kwm_message_user mu
     on m.id = mu.msg_id
     <where>
-        m.del_flag = 0 and mu.del_flag = 0
-        <if test="item.userId != null">
-          and mu.user_id = #{item.userId}
-        </if>
+        m.del_flag = 0 and mu.del_flag = 0 and mu.user_id = #{item.userId}
         <if test="item.category != null and item.category != ''">
           and m.category = #{item.category}
         </if>