package com.product.org.admin.util;
|
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.HashMap;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
|
import com.alibaba.druid.util.StringUtils;
|
import com.product.core.entity.DataTableEntity;
|
import com.product.core.entity.FieldMetaEntity;
|
import com.product.core.entity.FieldSetEntity;
|
import com.product.core.exception.BaseException;
|
import com.product.org.admin.config.CmnConst;
|
|
public class InternationalLanguage {
|
|
/**
|
* 获取国际化内容
|
* @param dtData 国际化字段子表数据
|
* @return
|
* @throws BaseException
|
*/
|
public static Map<String, String> parseLanguage(DataTableEntity dtData) throws BaseException{
|
|
if (dtData==null || dtData.getRows()==0) {
|
return null;
|
}
|
|
Map<String, String> mapLanguage=new HashMap<String, String>();
|
|
//遍历获取语言代码和国际化值
|
FieldMetaEntity meta = dtData.getMeta();
|
Object[] fields12 = meta.getFields();
|
List<Object> asList =new ArrayList<>();
|
asList.addAll(Arrays.asList(fields12));
|
Iterator<Object> iterator = asList.iterator();
|
for (int i = 0; i < dtData.getRows(); i++) {
|
while (iterator.hasNext()) {
|
Object next = iterator.next();
|
if(!next.toString().equals("uuid") &&!next.toString().equals("language_code")) {
|
String string = dtData.getString(i, next.toString());
|
if(!StringUtils.isEmpty(string)) {
|
mapLanguage.put(next.toString(), string);
|
iterator.remove();
|
break;
|
}
|
}else {
|
iterator.remove();
|
}
|
}
|
}
|
return mapLanguage;
|
}
|
|
|
/**
|
* 获取国际化内容
|
* @param dtData 国际化字段子表数据
|
* @return
|
* @throws BaseException
|
*/
|
public static Map<String, String> parseLanguages(DataTableEntity dtData) throws BaseException{
|
|
if (dtData==null || dtData.getRows()==0) {
|
return null;
|
}
|
|
Map<String, String> mapLanguage=new HashMap<>();
|
|
for (int i = 0; i < dtData.getRows(); i++) {
|
FieldSetEntity fseLanguage=dtData.getFieldSetEntity(i);
|
Object [] fieldNames=fseLanguage.getMeta().getFields();
|
for (int j = 0; j < fieldNames.length; j++) {
|
String fieldName=fieldNames[j].toString();
|
if (!CmnConst.LANGUAGE_CODE.equals(fieldName) && !CmnConst.UUID.equals(fieldName)) {
|
String fieldValue=fseLanguage.getString(fieldName);
|
mapLanguage.put(fieldName,fieldValue);
|
}
|
}
|
}
|
return mapLanguage;
|
}
|
|
|
/**
|
* 获取国际化内容
|
* @param dtData 国际化字段子表数据
|
* @return
|
* @throws BaseException
|
*/
|
public static List<String> parseLanguageToList(DataTableEntity dtData) throws BaseException{
|
|
List<String> list_language=new ArrayList<>();
|
|
for (int i = 0; i < dtData.getRows(); i++) {
|
FieldSetEntity fseLanguage=dtData.getFieldSetEntity(i);
|
Object [] fieldNames=fseLanguage.getMeta().getFields();
|
for (int j = 0; j < fieldNames.length; j++) {
|
String fieldName=fieldNames[j].toString();
|
if (!CmnConst.LANGUAGE_CODE.equals(fieldName) && !CmnConst.UUID.equals(fieldName)) {
|
String fieldValue=fseLanguage.getString(fieldName);
|
list_language.add(fieldValue);
|
}
|
}
|
}
|
return list_language;
|
}
|
|
|
/**
|
* 国际化字符替换
|
* @param originLanguage 原国际化数据
|
* @param newLanguage 新国际化数据
|
* @return
|
* @throws BaseException
|
*/
|
public static Map<String,String> replacelanguage(Map<String, String> originLanguage,Map<String,String> newLanguage) throws BaseException{
|
|
// 创建国际化语言变更对象
|
Map<String, String> changeLanguage = new HashMap<String, String>();
|
|
for (String key : originLanguage.keySet()) {
|
String newOrgLevelAll = newLanguage.get(key);
|
if (newOrgLevelAll == null) {
|
changeLanguage.put(key, ">");
|
} else {
|
changeLanguage.put(key, newOrgLevelAll);
|
}
|
}
|
return changeLanguage;
|
}
|
}
|