优化代码

This commit is contained in:
阿沐 2022-12-07 13:15:36 +08:00
parent c3539f4e51
commit f19765f6d0

View File

@ -1,9 +1,11 @@
package net.maku.framework.common.utils; package net.maku.framework.common.utils;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil; import cn.hutool.core.util.URLUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.support.ExcelTypeEnum;
import com.fhs.common.spring.SpringContextUtil;
import com.fhs.common.utils.ConverterUtils; import com.fhs.common.utils.ConverterUtils;
import com.fhs.core.trans.anno.Trans; import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType; import com.fhs.core.trans.constant.TransType;
@ -32,7 +34,6 @@ import java.util.stream.Collectors;
*/ */
public class ExcelUtils { public class ExcelUtils {
/** /**
* 读取excel文件 * 读取excel文件
* *
@ -151,28 +152,25 @@ public class ExcelUtils {
* 解析字典数据到字段上 * 解析字典数据到字段上
* 比如 T中有 genderLabel字段 为男 需要给 gender 字段自动设置为0 * 比如 T中有 genderLabel字段 为男 需要给 gender 字段自动设置为0
* *
* @param datas 需要被反向解析的数据 * @param dataList 需要被反向解析的数据
* @param <T>
*/ */
@SneakyThrows @SneakyThrows
public static <T extends TransPojo> void parseDict(List<T> datas) { public static <T extends TransPojo> void parseDict(List<T> dataList) {
//没有数据就不需要初始化 //没有数据就不需要初始化
if (datas == null || datas.isEmpty() || datas.get(0) == null) { if (CollectionUtil.isEmpty(dataList)) {
return; return;
} }
Class clazz = datas.get(0).getClass(); Class<? extends TransPojo> clazz = dataList.get(0).getClass();
//拿到所有需要反向翻译的字段 //拿到所有需要反向翻译的字段
List<Field> fields = ReflectUtils.getAnnotationField(clazz, Trans.class); List<Field> fields = ReflectUtils.getAnnotationField(clazz, Trans.class);
//过滤出字典翻译 //过滤出字典翻译
fields = fields.stream().filter(field -> { fields = fields.stream().filter(field -> TransType.DICTIONARY.equals(field.getAnnotation(Trans.class).type())).collect(Collectors.toList());
return TransType.DICTIONARY.equals(field.getAnnotation(Trans.class).type()); DictionaryTransService dictionaryTransService = SpringUtil.getBean(DictionaryTransService.class);
}).collect(Collectors.toList()); for (T data : dataList) {
DictionaryTransService dictionaryTransService = SpringContextUtil.getBeanByClass(DictionaryTransService.class);
for (T data : datas) {
for (Field field : fields) { for (Field field : fields) {
Trans trans = field.getAnnotation(Trans.class); Trans trans = field.getAnnotation(Trans.class);
// key不能为空并且ref不为空的才自动处理 // key不能为空并且ref不为空的才自动处理
if (!StringUtils.isBlank(trans.key()) && !StringUtils.isBlank(trans.ref())) { if (StrUtil.isAllNotBlank(trans.key(), trans.ref())) {
Field ref = ReflectUtils.getDeclaredField(clazz, trans.ref()); Field ref = ReflectUtils.getDeclaredField(clazz, trans.ref());
ref.setAccessible(true); ref.setAccessible(true);
// 获取字典反向值 // 获取字典反向值