This commit is contained in:
jack ning
2025-04-14 12:46:26 +08:00
parent e2ec4ba13c
commit 17a265da05
3 changed files with 118 additions and 9 deletions

View File

@@ -2,7 +2,7 @@
* @Author: jackning 270580156@qq.com
* @Date: 2024-01-29 16:21:24
* @LastEditors: jackning 270580156@qq.com
* @LastEditTime: 2025-04-14 11:57:23
* @LastEditTime: 2025-04-14 12:28:53
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
* Please be aware of the BSL license restrictions before installing Bytedesk IM
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
@@ -28,7 +28,9 @@ import com.alibaba.fastjson2.JSON;
import com.bytedesk.core.base.BaseRestServiceWithExcel;
import com.bytedesk.core.rbac.auth.AuthService;
import com.bytedesk.core.rbac.user.UserEntity;
import com.bytedesk.core.utils.BdDateUtils;
import com.bytedesk.core.utils.ConvertUtils;
import com.bytedesk.core.utils.MessageTypeConverter;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -195,10 +197,10 @@ public class MessageRestService extends BaseRestServiceWithExcel<MessageEntity,
@Override
public MessageExcel convertToExcel(MessageEntity entity) {
MessageExcel messageExcel = new MessageExcel();
messageExcel.setType(entity.getType());
messageExcel.setType(MessageTypeConverter.convertToChineseType(entity.getType()));
messageExcel.setContent(entity.getContent());
messageExcel.setSender(entity.getUserProtobuf().getNickname());
messageExcel.setCreatedAt(entity.getCreatedAt().toString());
messageExcel.setCreatedAt(BdDateUtils.formatDatetimeToString(entity.getCreatedAt()));
return messageExcel;
}

View File

@@ -0,0 +1,105 @@
/*
* @Author: jackning 270580156@qq.com
* @Date: 2025-04-14 14:30:00
* @LastEditors: jackning 270580156@qq.com
* @LastEditTime: 2025-04-14 12:41:36
* @Description: 消息类型转换工具类
*/
package com.bytedesk.core.utils;
import java.util.HashMap;
import java.util.Map;
import com.bytedesk.core.message.MessageTypeEnum;
public class MessageTypeConverter {
private static final Map<String, String> typeToChineseMap = new HashMap<>();
static {
// 初始化消息类型与中文描述的映射
typeToChineseMap.put(MessageTypeEnum.WELCOME.name(), "欢迎消息");
typeToChineseMap.put(MessageTypeEnum.CONTINUE.name(), "继续消息");
typeToChineseMap.put(MessageTypeEnum.SYSTEM.name(), "系统消息");
typeToChineseMap.put(MessageTypeEnum.QUEUE.name(), "排队消息");
typeToChineseMap.put(MessageTypeEnum.NOTICE.name(), "通知消息");
typeToChineseMap.put(MessageTypeEnum.TEXT.name(), "文本消息");
typeToChineseMap.put(MessageTypeEnum.IMAGE.name(), "图片消息");
typeToChineseMap.put(MessageTypeEnum.FILE.name(), "文件消息");
typeToChineseMap.put(MessageTypeEnum.AUDIO.name(), "语音消息");
typeToChineseMap.put(MessageTypeEnum.VIDEO.name(), "视频消息");
typeToChineseMap.put(MessageTypeEnum.MUSIC.name(), "音乐消息");
typeToChineseMap.put(MessageTypeEnum.LOCATION.name(), "位置消息");
typeToChineseMap.put(MessageTypeEnum.LINK.name(), "链接消息");
typeToChineseMap.put(MessageTypeEnum.GOODS.name(), "商品消息");
typeToChineseMap.put(MessageTypeEnum.CARD.name(), "卡片消息");
typeToChineseMap.put(MessageTypeEnum.EVENT.name(), "事件消息");
typeToChineseMap.put(MessageTypeEnum.GUESS.name(), "猜你想问");
typeToChineseMap.put(MessageTypeEnum.HOT.name(), "热门话题");
typeToChineseMap.put(MessageTypeEnum.SHORTCUT.name(), "快捷路径");
typeToChineseMap.put(MessageTypeEnum.ORDER.name(), "订单消息");
typeToChineseMap.put(MessageTypeEnum.POLL.name(), "投票消息");
typeToChineseMap.put(MessageTypeEnum.POLL_SUBMIT.name(), "投票提交");
typeToChineseMap.put(MessageTypeEnum.FORM.name(), "表单消息");
typeToChineseMap.put(MessageTypeEnum.FORM_SUBMIT.name(), "表单提交");
typeToChineseMap.put(MessageTypeEnum.LEAVE_MSG.name(), "留言消息");
typeToChineseMap.put(MessageTypeEnum.LEAVE_MSG_SUBMIT.name(), "留言提交");
typeToChineseMap.put(MessageTypeEnum.TICKET.name(), "工单消息");
typeToChineseMap.put(MessageTypeEnum.TICKET_SUBMIT.name(), "工单提交");
typeToChineseMap.put(MessageTypeEnum.TYPING.name(), "正在输入");
typeToChineseMap.put(MessageTypeEnum.PROCESSING.name(), "处理中");
typeToChineseMap.put(MessageTypeEnum.STREAM.name(), "流式消息");
typeToChineseMap.put(MessageTypeEnum.STREAM_END.name(), "流式结束");
typeToChineseMap.put(MessageTypeEnum.PREVIEW.name(), "消息预览");
typeToChineseMap.put(MessageTypeEnum.RECALL.name(), "消息撤回");
typeToChineseMap.put(MessageTypeEnum.DELIVERED.name(), "已送达");
typeToChineseMap.put(MessageTypeEnum.READ.name(), "已读");
typeToChineseMap.put(MessageTypeEnum.QUOTATION.name(), "引用消息");
typeToChineseMap.put(MessageTypeEnum.KICKOFF.name(), "踢出");
typeToChineseMap.put(MessageTypeEnum.SHAKE.name(), "窗口抖动");
typeToChineseMap.put(MessageTypeEnum.FAQ.name(), "常见问题");
typeToChineseMap.put(MessageTypeEnum.FAQ_UP.name(), "问题点赞");
typeToChineseMap.put(MessageTypeEnum.FAQ_DOWN.name(), "问题点踩");
typeToChineseMap.put(MessageTypeEnum.ROBOT.name(), "机器人消息");
typeToChineseMap.put(MessageTypeEnum.ROBOT_UP.name(), "机器人点赞");
typeToChineseMap.put(MessageTypeEnum.ROBOT_DOWN.name(), "机器人点踩");
typeToChineseMap.put(MessageTypeEnum.RATE.name(), "评价");
typeToChineseMap.put(MessageTypeEnum.RATE_INVITE.name(), "邀请评价");
typeToChineseMap.put(MessageTypeEnum.RATE_SUBMIT.name(), "评价提交");
typeToChineseMap.put(MessageTypeEnum.RATE_CANCEL.name(), "评价取消");
typeToChineseMap.put(MessageTypeEnum.AUTO_CLOSED.name(), "自动关闭");
typeToChineseMap.put(MessageTypeEnum.AGENT_CLOSED.name(), "客服关闭");
typeToChineseMap.put(MessageTypeEnum.TRANSFER.name(), "转接");
typeToChineseMap.put(MessageTypeEnum.TRANSFER_REJECT.name(), "拒绝转接");
typeToChineseMap.put(MessageTypeEnum.TRANSFER_ACCEPT.name(), "接受转接");
typeToChineseMap.put(MessageTypeEnum.TRANSFER_TIMEOUT.name(), "转接超时");
typeToChineseMap.put(MessageTypeEnum.TRANSFER_CANCEL.name(), "取消转接");
typeToChineseMap.put(MessageTypeEnum.INVITE.name(), "邀请");
typeToChineseMap.put(MessageTypeEnum.INVITE_REJECT.name(), "拒绝邀请");
typeToChineseMap.put(MessageTypeEnum.INVITE_ACCEPT.name(), "接受邀请");
typeToChineseMap.put(MessageTypeEnum.INVITE_TIMEOUT.name(), "邀请超时");
typeToChineseMap.put(MessageTypeEnum.INVITE_CANCEL.name(), "取消邀请");
typeToChineseMap.put(MessageTypeEnum.ARTICLE.name(), "文章");
typeToChineseMap.put(MessageTypeEnum.WEBRTC_AUDIO_INVITE.name(), "音频通话邀请");
typeToChineseMap.put(MessageTypeEnum.WEBRTC_VIDEO_INVITE.name(), "视频通话邀请");
typeToChineseMap.put(MessageTypeEnum.GROUP_CREATE.name(), "创建群组");
typeToChineseMap.put(MessageTypeEnum.GROUP_INVITE.name(), "邀请入群");
typeToChineseMap.put(MessageTypeEnum.GROUP_DISMISS.name(), "解散群组");
typeToChineseMap.put(MessageTypeEnum.ERROR.name(), "错误消息");
// 添加更多映射...
}
/**
* 将消息类型转换为中文描述
*
* @param type 消息类型字符串
* @return 对应的中文描述,如果没有对应关系则返回原字符串
*/
public static String convertToChineseType(String type) {
if (type == null || type.isEmpty()) {
return "未知类型";
}
return typeToChineseMap.getOrDefault(type, type);
}
}