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

+ 15 - 7
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwSms.java

@@ -1,15 +1,23 @@
 package com.sckw.stream.model;
 
 import com.sckw.stream.enums.SmsCodeEnum;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import java.util.Map;
+import lombok.*;
+import lombok.experimental.Accessors;
 
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
+import java.util.Map;
+/**
+ * @desc: 发送短信对象
+ * @author: yzc
+ * @date: 2023-06-16 14:04
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
 public class SckwSms {
+    public SckwSms(){
+        this.signName = "矿拉拉";
+    }
 
     /**
      * 短信模板code

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

@@ -83,7 +83,7 @@ public class KwmMessageUserService {
     /**
      * @param messageUsers
      * @return void
-     * @desc: 批量插入
+     * @desc: 批量插入(不直接批量插入,防止daoAspect切面失效)
      * @author: yzc
      * @date: 2023-06-09 15:58
      */

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

@@ -75,10 +75,12 @@ public class MessageService {
             return;
         }
         List<Long> ids = reqVO.getMsgIds();
+        //msgIds不为空直接更新用户消息为已读
         if (CollectionUtils.isNotEmpty(ids)) {
             List<Long> list = ids.stream().filter(msgIds::contains).toList();
             kwmMessageUserService.readByUserAndMsgIds(1L, list);
         } else {
+            //msgIds为空根据category及type更新用户消息为已读
             List<KwmMessage> messageList = kwmMessageService.getList(msgIds, reqVO.getCategory(), reqVO.getType(), 0);
             if (CollectionUtils.isEmpty(messageList)) {
                 return;
@@ -103,10 +105,12 @@ public class MessageService {
             return;
         }
         List<Long> ids = reqVO.getMsgIds();
+        //msgIds不为空直接删除用户消息
         if (CollectionUtils.isNotEmpty(ids)) {
             List<Long> list = ids.stream().filter(msgIds::contains).toList();
             kwmMessageUserService.delByUserAndMsgIds(1L, list);
         } else {
+            //msgIds为空,根据category及type查找删除用户消息
             List<KwmMessage> messageList = kwmMessageService.getList(msgIds, reqVO.getCategory(), reqVO.getType(), null);
             if (CollectionUtils.isEmpty(messageList)) {
                 return;
@@ -138,27 +142,34 @@ public class MessageService {
      */
     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)) {
             return Collections.emptyList();
         }
         List<Long> msgIds = messageUserMap.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());
             e.setStatus(kwmMessageUser.getStatus());
             e.setCreateTime(kwmMessageUser.getCreateTime());
         });
+        //消息按状态升序、创建时间降序排序,无category按category分组,有category按type分组
         Map<String, List<KwmMessage>> collect;
         if (StringUtils.isNotBlank(category)) {
-            collect = messages.stream().sorted(Comparator.comparingInt(KwmMessage::getStatus).thenComparing(KwmMessage::getCreateTime, Comparator.reverseOrder())).collect(Collectors.groupingBy(KwmMessage::getType));
+            collect = messages.stream().sorted(Comparator.comparingInt(KwmMessage::getStatus)
+                    .thenComparing(KwmMessage::getCreateTime, Comparator.reverseOrder())).collect(Collectors.groupingBy(KwmMessage::getType));
         } else {
-            collect = messages.stream().sorted(Comparator.comparingInt(KwmMessage::getStatus).thenComparing(KwmMessage::getCreateTime, Comparator.reverseOrder())).collect(Collectors.groupingBy(KwmMessage::getCategory));
+            collect = messages.stream().sorted(Comparator.comparingInt(KwmMessage::getStatus)
+                    .thenComparing(KwmMessage::getCreateTime, Comparator.reverseOrder())).collect(Collectors.groupingBy(KwmMessage::getCategory));
         }
+        //组装响应参数:消息分组第一条、统计未读数量
         List<MessagesStatisticsResVO> list = new ArrayList<>(collect.size());
         collect.values().forEach(e -> {
             KwmMessage message = e.get(0);
@@ -182,6 +193,7 @@ public class MessageService {
         //TODO 当前线程获取用户id
         KwmMessage message = kwmMessageService.getById(id);
         List<Long> ids = Collections.singletonList(id);
+        //更新用户消息为已读状态
         kwmMessageUserService.readByUserAndMsgIds(1L, ids);
         return message;
     }

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

@@ -43,6 +43,7 @@ public class SckwMessageHandlerService {
             log.error("message消息处理用户id为空,不处理");
             return;
         }
+        //构建message对象
         MessageEnum messageEnum = sckwMessage.getMessageEnum();
         KwmMessage kwmMessage = KwmMessage.builder().category(messageEnum.getCategory()).type(messageEnum.getType()).title(messageEnum.getTitle())
                 .content(messageEnum.getContent()).clientType(messageEnum.getPushType()).url(sckwMessage.getMsgUrl())
@@ -50,6 +51,7 @@ public class SckwMessageHandlerService {
         kwmMessage.setStatus(0);
         kwmMessage.setCreateBy(sckwMessage.getCreateBy());
         Long msgId = kwmMessageService.insert(kwmMessage);
+        //多个用户id,构建多个KwmMessageUser对象保存
         List<String> userIdList = Arrays.asList(userIds.split(","));
         List<KwmMessageUser> messageUsers = Lists.newArrayList();
         userIdList.forEach(e -> {

+ 0 - 1
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SmsService.java

@@ -44,7 +44,6 @@ public class SmsService {
         }
         SckwSms sckwSms = new SckwSms();
         sckwSms.setTelephone(param.getPhone());
-        sckwSms.setSignName("矿拉拉");
         sckwSms.setTemplateCode(SmsCodeEnum.VERIFICATION_CODE);
         Map<String, Object> params = new HashMap<>();
         params.put("code", NumberUtils.createRandomVcode());