package com.paic.pad.info.common.utils;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.paic.pad.info.resources.interaction.dto.ResourceCommentDTO;
import com.paic.pad.info.tmr.board.dto.MessageBoardDTO;
import com.paic.pad.info.tmr.question.dto.QuestionsAnswersDTO;
/**
* 用于表情的字符转换
*
* @author HAILEI015
*
*/
public class MessageStringFormatter {
public static String EMOTICON_PC_PATH = "/assets/lib/kindeditor-4.1.10/plugins/emoticons/images";
public static String EMOTICON_MOBLIE_PATH = "/lib/kindeditor-4.1.10/plugins/emoticons/images";
public static String formatString(String str, String emotionPrefixPath) {
//表情转换时 如果同时需要 过滤字符串,需要先过滤字符串再转化表情,要不然表情会显示不出来
if (StringUtils.isNotEmpty(str)) {
String value = replaceAllStr(str, "\\[([0-9]\\d?|[1][0-3][0-9])\\]", "<img style='float:none;' src='" + emotionPrefixPath + "/$1.png' border='0' alt='' />");
return value;
}
return null;
}
public static String replaceAllStr(String str, String regex, String newstr) {
str = str.replaceAll(regex, newstr);
return str;
}
public static void formartMapMessages(List<MessageBoardDTO> list, String emotionPrefixPath) {
// 转换表情
if ((list != null) && (list.size() > 0)) {
for (MessageBoardDTO ms : list) {
String value = ms.getMessage().toString();
ms.setMessage(MessageStringFormatter.formatString(value, emotionPrefixPath));
}
}
}
public static void formartQuestionsAnswersMessages(List<QuestionsAnswersDTO> list, String emotionPrefixPath) {
// 转换表情
if ((list != null) && (list.size() > 0)) {
for (QuestionsAnswersDTO ms : list) {
String value = ms.getAnswerContent().toString();
ms.setAnswerContent(MessageStringFormatter.formatString(value, emotionPrefixPath));
}
}
}
/** 将表情转换成特定的图片路径
* @param message
* 需要转换的表情
* @param emotionPrefixPath
*/
public static String faceConvertToImagePath(String message, String emotionPrefixPath) {
return MessageStringFormatter.formatString(message, emotionPrefixPath);
}
public static void formartListMessages(List<ResourceCommentDTO> list, String emotionPrefixPath) {
// 转换表情
if ((list != null) && (list.size() > 0))
{
for (ResourceCommentDTO dto : list)
{
String value = dto.getMessage();
dto.setMessage(MessageStringFormatter.formatString(value, emotionPrefixPath));
}
}
}
}