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 parseLanguage(DataTableEntity dtData) throws BaseException{ if (dtData==null || dtData.getRows()==0) { return null; } Map mapLanguage=new HashMap(); //遍历获取语言代码和国际化值 FieldMetaEntity meta = dtData.getMeta(); Object[] fields12 = meta.getFields(); List asList =new ArrayList<>(); asList.addAll(Arrays.asList(fields12)); Iterator 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 parseLanguages(DataTableEntity dtData) throws BaseException{ if (dtData==null || dtData.getRows()==0) { return null; } Map 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 parseLanguageToList(DataTableEntity dtData) throws BaseException{ List 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 replacelanguage(Map originLanguage,Map newLanguage) throws BaseException{ // 创建国际化语言变更对象 Map changeLanguage = new HashMap(); for (String key : originLanguage.keySet()) { String newOrgLevelAll = newLanguage.get(key); if (newOrgLevelAll == null) { changeLanguage.put(key, ">"); } else { changeLanguage.put(key, newOrgLevelAll); } } return changeLanguage; } }