From 5bdad1351c0018a28a394fce98e7a7f4eddafe3e Mon Sep 17 00:00:00 2001
From: WSJ <996387929@qq.com>
Date: Sat, 8 Jul 2023 18:28:20 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A1=A8=E6=83=85=E5=8C=85?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../chat/domain/entity/msg/EmojisMsgDTO.java | 29 ++++++++++
.../chat/domain/entity/msg/MessageExtra.java | 5 ++
.../chat/domain/enums/MessageTypeEnum.java | 1 +
.../strategy/msg/EmojisMsgHandler.java | 58 +++++++++++++++++++
4 files changed, 93 insertions(+)
create mode 100644 mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/msg/EmojisMsgDTO.java
create mode 100644 mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/service/strategy/msg/EmojisMsgHandler.java
diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/msg/EmojisMsgDTO.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/msg/EmojisMsgDTO.java
new file mode 100644
index 0000000..d8aaa2c
--- /dev/null
+++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/msg/EmojisMsgDTO.java
@@ -0,0 +1,29 @@
+package com.abin.mallchat.common.chat.domain.entity.msg;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * Description: 表情图片消息入参
+ * Author: abin
+ * Date: 2023-06-04
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class EmojisMsgDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("下载地址")
+ @NotBlank
+ private String url;
+}
+
+
diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/msg/MessageExtra.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/msg/MessageExtra.java
index 9a68c74..ffbc008 100644
--- a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/msg/MessageExtra.java
+++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/entity/msg/MessageExtra.java
@@ -36,4 +36,9 @@ public class MessageExtra implements Serializable {
private SoundMsgDTO soundMsgDTO;
//文件消息
private VideoMsgDTO videoMsgDTO;
+
+ /**
+ * 表情图片信息
+ */
+ private EmojisMsgDTO emojisMsgDTO;
}
diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/enums/MessageTypeEnum.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/enums/MessageTypeEnum.java
index cc262a9..7d66214 100644
--- a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/enums/MessageTypeEnum.java
+++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/domain/enums/MessageTypeEnum.java
@@ -22,6 +22,7 @@ public enum MessageTypeEnum {
FILE(4, "文件"),
SOUND(5, "语音"),
VIDEO(6, "视频"),
+ EMOJIS(7, "表情"),
;
private final Integer type;
diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/service/strategy/msg/EmojisMsgHandler.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/service/strategy/msg/EmojisMsgHandler.java
new file mode 100644
index 0000000..1012160
--- /dev/null
+++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/service/strategy/msg/EmojisMsgHandler.java
@@ -0,0 +1,58 @@
+package com.abin.mallchat.custom.chat.service.strategy.msg;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.abin.mallchat.common.chat.dao.MessageDao;
+import com.abin.mallchat.common.chat.domain.entity.Message;
+import com.abin.mallchat.common.chat.domain.entity.msg.EmojisMsgDTO;
+import com.abin.mallchat.common.chat.domain.entity.msg.ImgMsgDTO;
+import com.abin.mallchat.common.chat.domain.entity.msg.MessageExtra;
+import com.abin.mallchat.common.chat.domain.enums.MessageTypeEnum;
+import com.abin.mallchat.common.common.utils.AssertUtil;
+import com.abin.mallchat.custom.chat.domain.vo.request.ChatMessageReq;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Optional;
+
+/**
+ * Description:表情消息
+ * Author: abin
+ * Date: 2023-06-04
+ */
+@Component
+public class EmojisMsgHandler extends AbstractMsgHandler {
+ @Autowired
+ private MessageDao messageDao;
+
+ @Override
+ MessageTypeEnum getMsgTypeEnum() {
+ return MessageTypeEnum.EMOJIS;
+ }
+
+ @Override
+ public void checkMsg(ChatMessageReq request, Long uid) {
+ EmojisMsgDTO body = BeanUtil.toBean(request.getBody(), EmojisMsgDTO.class);
+ AssertUtil.allCheckValidateThrow(body);
+ }
+
+ @Override
+ public void saveMsg(Message msg, ChatMessageReq request) {
+ EmojisMsgDTO body = BeanUtil.toBean(request.getBody(), EmojisMsgDTO.class);
+ MessageExtra extra = Optional.ofNullable(msg.getExtra()).orElse(new MessageExtra());
+ Message update = new Message();
+ update.setId(msg.getId());
+ update.setExtra(extra);
+ extra.setEmojisMsgDTO(body);
+ messageDao.updateById(update);
+ }
+
+ @Override
+ public Object showMsg(Message msg) {
+ return msg.getExtra().getImgMsgDTO();
+ }
+
+ @Override
+ public Object showReplyMsg(Message msg) {
+ return "表情";
+ }
+}