3 Commits

6 changed files with 96 additions and 15 deletions

View File

@@ -8,6 +8,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.annotation.Excel.ColumnType;
import com.ruoyi.common.core.annotation.Excel.Type; import com.ruoyi.common.core.annotation.Excel.Type;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.annotation.Excels; import com.ruoyi.common.core.annotation.Excels;
import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.common.core.xss.Xss; import com.ruoyi.common.core.xss.Xss;
@@ -116,7 +117,7 @@ public class SysUser extends BaseEntity
public static boolean isAdmin(Long userId) public static boolean isAdmin(Long userId)
{ {
return userId != null && 1L == userId; return UserConstants.isAdmin(userId);
} }
public Long getDeptId() public Long getDeptId()

View File

@@ -80,4 +80,9 @@ public class UserConstants
public static final int PASSWORD_MIN_LENGTH = 5; public static final int PASSWORD_MIN_LENGTH = 5;
public static final int PASSWORD_MAX_LENGTH = 20; public static final int PASSWORD_MAX_LENGTH = 20;
public static boolean isAdmin(Long userId)
{
return userId != null && 1L == userId;
}
} }

View File

@@ -8,17 +8,49 @@ import org.apache.poi.ss.usermodel.Workbook;
* *
* @author ruoyi * @author ruoyi
*/ */
public interface ExcelHandlerAdapter @SuppressWarnings("unused")
{ public interface ExcelHandlerAdapter {
/** /**
* 格式化 * 格式化
* *
* @deprecated 弃用,使用两个方法分别处理导入导出数据格式化
*
* @param value 单元格数据值 * @param value 单元格数据值
* @param args excel注解args参数组 * @param args excel注解args参数组
* @param cell 单元格对象 * @param cell 单元格对象
* @param wb 工作簿对象 * @param wb 工作簿对象
*
* @return 处理后的值 * @return 处理后的值
*/ */
Object format(Object value, String[] args, Cell cell, Workbook wb); @Deprecated
default Object format(Object value, String[] args, Cell cell, Workbook wb) {
return value;
}
/**
* 导入时自定义数据处理器
*
* @param value 单元格数据
* @param args excel注解args参数组
* @param cell 单元格对象
* @param wb 工作簿对象
* @return 处理后的值
*/
default Object importFormat(Object value, String[] args, Cell cell, Workbook wb) {
return value;
}
/**
* 导出时自定义数据处理器
*
* @param value 单元格数据
* @param args excel注解args参数组
* @param cell 单元格对象
* @param wb 工作簿对象
* @return 处理后的值
*/
default Object exportFormat(Object value, String[] args, Cell cell, Workbook wb) {
return value;
}
} }

View File

@@ -455,7 +455,7 @@ public class ExcelUtil<T>
} }
else if (!attr.handler().equals(ExcelHandlerAdapter.class)) else if (!attr.handler().equals(ExcelHandlerAdapter.class))
{ {
val = dataFormatHandlerAdapter(val, attr, null); val = importFormatHandlerAdapter(val, attr, null);
} }
ReflectUtils.invokeSetter(entity, propertyName, val); ReflectUtils.invokeSetter(entity, propertyName, val);
} }
@@ -1013,7 +1013,7 @@ public class ExcelUtil<T>
} }
else if (!attr.handler().equals(ExcelHandlerAdapter.class)) else if (!attr.handler().equals(ExcelHandlerAdapter.class))
{ {
cell.setCellValue(dataFormatHandlerAdapter(value, attr, cell)); cell.setCellValue(exportFormatHandlerAdapter(value, attr, cell));
} }
else else
{ {
@@ -1196,10 +1196,13 @@ public class ExcelUtil<T>
/** /**
* 数据处理器 * 数据处理器
* *
* @deprecated 方法弃用。分别使用导入导出的两个数据处理器分别处理导入导出的数据
*
* @param value 数据值 * @param value 数据值
* @param excel 数据注解 * @param excel 数据注解
* @return * @return 处理后的结果值
*/ */
@Deprecated
public String dataFormatHandlerAdapter(Object value, Excel excel, Cell cell) public String dataFormatHandlerAdapter(Object value, Excel excel, Cell cell)
{ {
try try
@@ -1215,6 +1218,46 @@ public class ExcelUtil<T>
return Convert.toStr(value); return Convert.toStr(value);
} }
/**
* 导入时的数据处理器
*
* @param value 数据值
* @param excel 数据注解
* @param cell 单元格对象
* @return 处理后的结果值
*/
public String importFormatHandlerAdapter(Object value, Excel excel, Cell cell) {
try {
Object instance = excel.handler().getDeclaredConstructor().newInstance();
Method formatMethod = excel.handler().getMethod("importFormat",
Object.class, String[].class, Cell.class, Workbook.class);
value = formatMethod.invoke(instance, value, excel.args(), cell, this.wb);
} catch (Exception e) {
log.error("不能格式化数据 " + excel.handler() + "{}", e.getMessage());
}
return Convert.toStr(value);
}
/**
* 导出时的数据处理器
*
* @param value 数据值
* @param excel 数据注解
* @param cell 单元格对象
* @return 处理后的结果值
*/
public String exportFormatHandlerAdapter(Object value, Excel excel, Cell cell) {
try {
Object instance = excel.handler().getDeclaredConstructor().newInstance();
Method formatMethod = excel.handler().getMethod("exportFormat",
Object.class, String[].class, Cell.class, Workbook.class);
value = formatMethod.invoke(instance, value, excel.args(), cell, this.wb);
} catch (Exception e) {
log.error("不能格式化数据 " + excel.handler() + "{}", e.getMessage());
}
return Convert.toStr(value);
}
/** /**
* 合计统计信息 * 合计统计信息
*/ */

View File

@@ -17,10 +17,10 @@
<dependencies> <dependencies>
<!-- RuoYi Common Security --> <!-- RuoYi Common Core -->
<dependency> <dependency>
<groupId>com.ruoyi</groupId> <groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-security</artifactId> <artifactId>ruoyi-common-core</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -8,10 +8,10 @@ import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.context.SecurityContextHolder;
import com.ruoyi.common.sensitive.annotation.Sensitive; import com.ruoyi.common.sensitive.annotation.Sensitive;
import com.ruoyi.common.sensitive.enums.DesensitizedType; import com.ruoyi.common.sensitive.enums.DesensitizedType;
import com.ruoyi.system.api.model.LoginUser;
/** /**
* 数据脱敏序列化过滤 * 数据脱敏序列化过滤
@@ -55,9 +55,9 @@ public class SensitiveJsonSerializer extends JsonSerializer<String> implements C
{ {
try try
{ {
LoginUser securityUser = SecurityUtils.getLoginUser(); Long userId = SecurityContextHolder.getUserId();
// 管理员不脱敏 // 管理员不脱敏
return !securityUser.getSysUser().isAdmin(); return !UserConstants.isAdmin(userId);
} }
catch (Exception e) catch (Exception e)
{ {