Sfoglia il codice sorgente

MALL-KEHU: 新增客服相关实体类

puhui999 1 anno fa
parent
commit
020f3a9a12

+ 42 - 0
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/kehu/MessageTypeEnum.java

@@ -0,0 +1,42 @@
+package cn.iocoder.yudao.module.promotion.enums.kehu;
+
+import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+
+/**
+ * 消息类型枚举
+ *
+ * @author HUIHUI
+ */
+@AllArgsConstructor
+@Getter
+public enum MessageTypeEnum implements IntArrayValuable {
+
+    MESSAGE(1, "普通消息"),
+    PICTURE(2, "图片消息"),
+    VOICE(3, "语音消息"),
+    GOODS(4, "商品消息"),
+    ORDER(5, "订单消息"),
+    VIDEO(6, "视频消息");
+
+    private static final int[] ARRAYS = Arrays.stream(values()).mapToInt(MessageTypeEnum::getType).toArray();
+
+    /**
+     * 类型
+     */
+    private final Integer type;
+
+    /**
+     * 名称
+     */
+    private final String name;
+
+    @Override
+    public int[] array() {
+        return ARRAYS;
+    }
+
+}

+ 72 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/kefu/KehuMessageDO.java

@@ -0,0 +1,72 @@
+package cn.iocoder.yudao.module.promotion.dal.dataobject.kefu;
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.module.promotion.enums.kehu.MessageTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+/**
+ * 客户消息 DO
+ *
+ * @author HUIHUI
+ */
+@TableName("kehu_message")
+@KeySequence("kehu_message_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class KehuMessageDO extends BaseDO {
+
+    /**
+     * 编号
+     */
+    @TableId
+    private Long id;
+    /**
+     * 会话编号
+     *
+     * 关联 {@link KehuTalkDO#getId()}
+     */
+    private Long talkId;
+
+    /**
+     * 发送者
+     */
+    private Long fromUserId;
+    /**
+     * 发送者用户类型
+     */
+    private String fromUserType;
+    /**
+     * 接收者
+     */
+    private Long toUserId;
+    /**
+     * 接收着用户类型
+     */
+    private String toUserType;
+
+    /**
+     * 消息类型
+     *
+     * 枚举 {@link MessageTypeEnum}
+     */
+    private Integer messageType;
+    /**
+     * 消息
+     */
+    private String message;
+
+    //======================= 消息相关状态 =======================
+
+    /**
+     * 是/否已读
+     */
+    private Boolean isRead;
+
+}

+ 104 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/kefu/KehuTalkDO.java

@@ -0,0 +1,104 @@
+package cn.iocoder.yudao.module.promotion.dal.dataobject.kefu;
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
+import cn.iocoder.yudao.module.promotion.enums.kehu.MessageTypeEnum;
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * 客户会话 DO
+ *
+ * @author HUIHUI
+ */
+@TableName("kehu_talk")
+@KeySequence("kehu_talk_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class KehuTalkDO extends BaseDO {
+
+    /**
+     * 编号
+     */
+    @TableId
+    private Long id;
+    /**
+     * 会话所属用户
+     *
+     * 关联 {@link MemberUserRespDTO#getId()}
+     */
+    private Long userId;
+    /**
+     * 用户名称
+     *
+     * 关联 {@link MemberUserRespDTO#getNickname()}
+     */
+    private String userName;
+    /**
+     * 用户头像
+     *
+     * 关联 {@link MemberUserRespDTO#getAvatar()}
+     */
+    private String userFace;
+    /**
+     * 管理员名称
+     *
+     * 关联 {@link AdminUserRespDTO#getNickname()}
+     */
+    private String adminName;
+    /**
+     * 管理员头像, 管理员搞个默认头像
+     */
+    private String adminFace;
+
+    /**
+     * 最后聊天时间
+     */
+    private LocalDateTime lastTalkTime;
+    /**
+     * 最后聊天内容
+     */
+    private String lastTalkMessage;
+    /**
+     * 最后发送的消息类型
+     *
+     * 枚举 {@link MessageTypeEnum}
+     */
+    private Integer lastMessageType;
+
+    //======================= 会话操作相关 =======================
+
+    /**
+     * 管理端置顶
+     */
+    private Boolean adminPinned;
+    /**
+     * 用户端不可见,默认为 true
+     *
+     * 用户删除此会话时设置为 false
+     */
+    private Boolean userDisable;
+    /**
+     * 管理员端不可见,默认为 true
+     *
+     * 管理员删除此会话时设置为 false
+     */
+    private Boolean adminDisable;
+
+    /**
+     * 管理员未读消息数
+     *
+     * 用户发送消息时增加,管理员查看后扣减
+     */
+    private Integer adminUnreadMessageCount;
+
+}