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

This commit is contained in:
puhui999 2024-05-30 16:09:36 +08:00
parent ae493e66df
commit 020f3a9a12
3 changed files with 218 additions and 0 deletions

View File

@ -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;
}
}

View File

@ -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") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 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;
}

View File

@ -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") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 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;
}