Quellcode durchsuchen

修改校验,改为hibernate

4.1.3.A
jueyue vor 9 Jahren
Ursprung
Commit
aa59fb2906
17 geänderte Dateien mit 156 neuen und 581 gelöschten Zeilen
  1. +3
    -1
      README.md
  2. +0
    -94
      easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelVerify.java
  3. +5
    -0
      easypoi-base/pom.xml
  4. +3
    -8
      easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoadeImpl.java
  5. +2
    -1
      easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java
  6. +13
    -0
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ImportParams.java
  7. +0
    -12
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelImportEntity.java
  8. +0
    -159
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelVerifyEntity.java
  9. +76
    -16
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java
  10. +2
    -28
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/base/ImportBaseService.java
  11. +0
    -146
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/verifys/BaseVerifyHandler.java
  12. +0
    -88
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/verifys/VerifyHandlerServer.java
  13. +4
    -4
      easypoi-base/src/main/java/org/jeecgframework/poi/handler/impl/ExcelDataHandlerDefaultImpl.java
  14. +4
    -4
      easypoi-base/src/main/java/org/jeecgframework/poi/handler/inter/IExcelDataHandler.java
  15. +35
    -0
      easypoi-base/src/main/java/org/jeecgframework/poi/handler/inter/IExcelModel.java
  16. +2
    -20
      easypoi-base/src/main/java/org/jeecgframework/poi/handler/inter/IExcelVerifyHandler.java
  17. +7
    -0
      pom.xml

+ 3
- 1
README.md Datei anzeigen

@@ -5,11 +5,13 @@ EasyPoi Excel和 Word简易工具类
就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板
语言(熟悉的表达式语法),完成以前复杂的写法
作者博客:http://blog.csdn.net/qjueyue
作者博客:http://blog.afterturn.cn/
作者邮箱: qrb.jueyue@gmail.com
QQ群: 364192721
[测试项目](http://git.oschina.net/jueyue/easypoi-test): http://git.oschina.net/jueyue/easypoi-test
!!!2.1.6-SNAPSHOT 版本开始和之前的版本校验不兼用,使用hibernate的校验,删除了之前的注解,请注意
---------------------------
EasyPoi的主要特点


+ 0
- 94
easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/ExcelVerify.java Datei anzeigen

@@ -1,94 +0,0 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jeecgframework.poi.excel.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Excel 导入校验
*
* @author JueYue
* @date 2014年6月23日 下午10:46:26
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ExcelVerify {
/**
* 接口校验
* @return
*/
public boolean interHandler() default false;
/**
* 是电子邮件
*
* @return
*/
public boolean isEmail() default false;
/**
* 是13位移动电话
*
* @return
*/
public boolean isMobile() default false;
/**
* 是座机号码
*
* @return
*/
public boolean isTel() default false;
/**
* 最大长度
*
* @return
*/
public int maxLength() default -1;
/**
* 最小长度
*
* @return
*/
public int minLength() default -1;
/**
* 不允许空
*
* @return
*/
public boolean notNull() default false;
/**
* 正在表达式
*
* @return
*/
public String regex() default "";
/**
* 正在表达式,错误提示信息
*
* @return
*/
public String regexTip() default "数据不符合规范";
}

+ 5
- 0
easypoi-base/pom.xml Datei anzeigen

@@ -70,6 +70,11 @@
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>org.jeecg</groupId>
<artifactId>easypoi-annotation</artifactId>


+ 3
- 8
easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoadeImpl.java Datei anzeigen

@@ -20,6 +20,7 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.poi.util.IOUtils;
import org.jeecgframework.poi.util.PoiPublicUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -58,14 +59,8 @@ public class FileLoadeImpl implements IFileLoader {
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
} finally {
try {
if (fileis != null)
fileis.close();
if (fileis != null)
baos.close();
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
IOUtils.closeQuietly(fileis);
IOUtils.closeQuietly(baos);
}
LOGGER.error(fileis + "这个路径文件没有找到,请查询");
return null;


+ 2
- 1
easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java Datei anzeigen

@@ -33,7 +33,8 @@ import com.google.common.cache.LoadingCache;
*
* @author JueYue
* @date 2014年2月10日
* @version 1.0
* @date 2015年10月17日
* @version 1.1
*/
public final class POICacheManager {


+ 13
- 0
easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ImportParams.java Datei anzeigen

@@ -24,6 +24,7 @@ import org.jeecgframework.poi.handler.inter.IExcelVerifyHandler;
* @date 2013-9-24
* @version 1.0
*/
@SuppressWarnings("rawtypes")
public class ImportParams extends ExcelBaseParams {
/**
* 表格标题行数,默认0
@@ -53,6 +54,10 @@ public class ImportParams extends ExcelBaseParams {
* 是否需要保存上传的Excel,默认为false
*/
private boolean needSave = false;
/**
* 是否需要校验上传的Excel,默认为false
*/
private boolean needVerfiy = false;
/**
* 保存上传的Excel目录,默认是 如 TestEntity这个类保存路径就是
* upload/excelUpload/Test/yyyyMMddHHmss_***** 保存名称上传时间_五位随机数
@@ -147,4 +152,12 @@ public class ImportParams extends ExcelBaseParams {
this.startSheetIndex = startSheetIndex;
}
public boolean isNeedVerfiy() {
return needVerfiy;
}
public void setNeedVerfiy(boolean needVerfiy) {
this.needVerfiy = needVerfiy;
}
}

+ 0
- 12
easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelImportEntity.java Datei anzeigen

@@ -39,10 +39,6 @@ public class ExcelImportEntity extends ExcelBaseEntity {
* 对应exportType
*/
private String classType;
/**
* 校驗參數
*/
private ExcelVerifyEntity verify;
/**
* 后缀
*/
@@ -70,10 +66,6 @@ public class ExcelImportEntity extends ExcelBaseEntity {
return saveUrl;
}
public ExcelVerifyEntity getVerify() {
return verify;
}
public void setClassType(String classType) {
this.classType = classType;
}
@@ -94,10 +86,6 @@ public class ExcelImportEntity extends ExcelBaseEntity {
this.saveUrl = saveUrl;
}
public void setVerify(ExcelVerifyEntity verify) {
this.verify = verify;
}
public String getSuffix() {
return suffix;
}


+ 0
- 159
easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelVerifyEntity.java Datei anzeigen

@@ -1,159 +0,0 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jeecgframework.poi.excel.entity.params;
/**
* Excel 校验对象
*
* @author JueYue
* @date 2014年6月29日 下午4:24:59
*/
public class ExcelVerifyEntity {
/**
* 接口校验
*
* @return
*/
private boolean interHandler;
/**
* 不允许空
*
* @return
*/
private boolean notNull;
/**
* 是13位移动电话
*
* @return
*/
private boolean isMobile;
/**
* 是座机号码
*
* @return
*/
private boolean isTel;
/**
* 是电子邮件
*
* @return
*/
private boolean isEmail;
/**
* 最小长度
*
* @return
*/
private int minLength;
/**
* 最大长度
*
* @return
*/
private int maxLength;
/**
* 正在表达式
*
* @return
*/
private String regex;
/**
* 正在表达式,错误提示信息
*
* @return
*/
private String regexTip;
public int getMaxLength() {
return maxLength;
}
public int getMinLength() {
return minLength;
}
public String getRegex() {
return regex;
}
public String getRegexTip() {
return regexTip;
}
public boolean isEmail() {
return isEmail;
}
public boolean isInterHandler() {
return interHandler;
}
public boolean isMobile() {
return isMobile;
}
public boolean isNotNull() {
return notNull;
}
public boolean isTel() {
return isTel;
}
public void setEmail(boolean isEmail) {
this.isEmail = isEmail;
}
public void setInterHandler(boolean interHandler) {
this.interHandler = interHandler;
}
public void setMaxLength(int maxLength) {
this.maxLength = maxLength;
}
public void setMinLength(int minLength) {
this.minLength = minLength;
}
public void setMobile(boolean isMobile) {
this.isMobile = isMobile;
}
public void setNotNull(boolean notNull) {
this.notNull = notNull;
}
public void setRegex(String regex) {
this.regex = regex;
}
public void setRegexTip(String regexTip) {
this.regexTip = regexTip;
}
public void setTel(boolean isTel) {
this.isTel = isTel;
}
}

+ 76
- 16
easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java Datei anzeigen

@@ -27,6 +27,12 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.POIXMLDocument;
@@ -51,9 +57,9 @@ import org.jeecgframework.poi.excel.entity.params.ExcelImportEntity;
import org.jeecgframework.poi.excel.entity.result.ExcelImportResult;
import org.jeecgframework.poi.excel.entity.result.ExcelVerifyHanlderResult;
import org.jeecgframework.poi.excel.imports.base.ImportBaseService;
import org.jeecgframework.poi.excel.imports.verifys.VerifyHandlerServer;
import org.jeecgframework.poi.exception.excel.ExcelImportException;
import org.jeecgframework.poi.exception.excel.enums.ExcelImportEnum;
import org.jeecgframework.poi.handler.inter.IExcelModel;
import org.jeecgframework.poi.util.PoiPublicUtil;
import org.jeecgframework.poi.util.PoiReflectorUtil;
import org.slf4j.Logger;
@@ -70,9 +76,14 @@ public class ExcelImportServer extends ImportBaseService {
private final static Logger LOGGER = LoggerFactory.getLogger(ExcelImportServer.class);
private CellValueServer cellValueServer;
private final static Validator validator;
static {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
}
private VerifyHandlerServer verifyHandlerServer;
private CellValueServer cellValueServer;
private boolean verfiyFail = false;
/**
@@ -82,7 +93,6 @@ public class ExcelImportServer extends ImportBaseService {
public ExcelImportServer() {
this.cellValueServer = new CellValueServer();
this.verifyHandlerServer = new VerifyHandlerServer();
}
/***
@@ -147,6 +157,9 @@ public class ExcelImportServer extends ImportBaseService {
case Cell.CELL_TYPE_FORMULA:
obj = cell.getCellFormula();
break;
default:
cell.setCellType(Cell.CELL_TYPE_STRING);
obj = cell.getStringCellValue();
}
return obj == null ? null : obj.toString().trim();
}
@@ -231,7 +244,9 @@ public class ExcelImportServer extends ImportBaseService {
for (ExcelCollectionParams param : excelCollection) {
addListContinue(object, param, row, titlemap, targetId, pictures, params);
}
collection.add(object);
if (verifyingDataValidity(object, row, params, pojoClass)) {
collection.add(object);
}
} catch (ExcelImportException e) {
if (!e.getType().equals(ExcelImportEnum.VERIFY_ERROR)) {
throw new ExcelImportException(e.getType(), e);
@@ -242,6 +257,61 @@ public class ExcelImportServer extends ImportBaseService {
return collection;
}
/**
* 校验数据合法性
* @param object
* @param row
* @param params
* @param pojoClass
* @return
*/
private boolean verifyingDataValidity(Object object, Row row, ImportParams params,
Class<?> pojoClass) {
boolean isAdd = true;
Cell cell = null;
if (params.isNeedVerfiy()) {
Set<ConstraintViolation<Object>> set = validator.validate(object);
if (set.size() > 0) {
cell = row.createCell(row.getLastCellNum());
String errMsg = getValidateErrMsg(set);
cell.setCellValue(errMsg);
if (object instanceof IExcelModel) {
IExcelModel model = (IExcelModel) object;
model.setErrorMsg(errMsg);
} else {
isAdd = false;
}
}
}
if (params.getVerifyHanlder() != null) {
ExcelVerifyHanlderResult result = params.getVerifyHanlder().verifyHandler(object);
if (!result.isSuccess()) {
if (cell == null)
cell = row.createCell(row.getLastCellNum());
cell.setCellValue((StringUtils.isNoneBlank(cell.getStringCellValue())
? cell.getStringCellValue() + "," : "") + result.getMsg());
if (object instanceof IExcelModel) {
IExcelModel model = (IExcelModel) object;
model.setErrorMsg((StringUtils.isNoneBlank(model.getErrorMsg())
? model.getErrorMsg() + "," : "") + result.getMsg());
} else {
isAdd = false;
}
}
}
if (cell != null)
cell.setCellStyle(errorCellStyle);
return isAdd;
}
private String getValidateErrMsg(Set<ConstraintViolation<Object>> set) {
StringBuilder builder = new StringBuilder();
for (ConstraintViolation<Object> constraintViolation : set) {
builder.append(constraintViolation.getMessage()).append(",");
}
return builder.substring(0, builder.length() - 1).toString();
}
/**
* 获取表格字段列名对应信息
* @param rows
@@ -381,17 +451,7 @@ public class ExcelImportServer extends ImportBaseService {
((Map) object).put(titleString, value);
}
} else {
ExcelVerifyHanlderResult verifyResult = verifyHandlerServer.verifyData(object, value,
titleString, excelParams.get(titleString).getVerify(), params.getVerifyHanlder());
if (verifyResult.isSuccess()) {
setValues(excelParams.get(titleString), object, value);
} else {
Cell errorCell = row.createCell(row.getLastCellNum());
errorCell.setCellValue(verifyResult.getMsg());
errorCell.setCellStyle(errorCellStyle);
verfiyFail = true;
throw new ExcelImportException(ExcelImportEnum.VERIFY_ERROR);
}
setValues(excelParams.get(titleString), object, value);
}
}


+ 2
- 28
easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/base/ImportBaseService.java Datei anzeigen

@@ -31,13 +31,12 @@ import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.IOUtils;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import org.jeecgframework.poi.excel.annotation.ExcelVerify;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.entity.params.ExcelCollectionParams;
import org.jeecgframework.poi.excel.entity.params.ExcelImportEntity;
import org.jeecgframework.poi.excel.entity.params.ExcelVerifyEntity;
import org.jeecgframework.poi.util.PoiPublicUtil;
import org.jeecgframework.poi.util.PoiReflectorUtil;
@@ -69,7 +68,6 @@ public class ImportBaseService {
excelEntity.setSaveType(excel.imageType());
excelEntity.setReplace(excel.replace());
excelEntity.setDatabaseFormat(excel.databaseFormat());
excelEntity.setVerify(getImportVerify(field));
excelEntity.setSuffix(excel.suffix());
getExcelField(targetId, field, excelEntity, excel, pojoClass);
if (getMethods != null) {
@@ -82,30 +80,6 @@ public class ImportBaseService {
}
/**
* 获取导入校验参数
*
* @param field
* @return
*/
public ExcelVerifyEntity getImportVerify(Field field) {
ExcelVerify verify = field.getAnnotation(ExcelVerify.class);
if (verify != null) {
ExcelVerifyEntity entity = new ExcelVerifyEntity();
entity.setEmail(verify.isEmail());
entity.setInterHandler(verify.interHandler());
entity.setMaxLength(verify.maxLength());
entity.setMinLength(verify.minLength());
entity.setMobile(verify.isMobile());
entity.setNotNull(verify.notNull());
entity.setRegex(verify.regex());
entity.setRegexTip(verify.regexTip());
entity.setTel(verify.isTel());
return entity;
}
return null;
}
/**
* 获取需要导出的全部字段
*
@@ -245,7 +219,7 @@ public class ImportBaseService {
+ Math.round(Math.random() * 100000)
+ (isXSSFWorkbook == true ? ".xlsx" : ".xls"));
book.write(fos);
fos.close();
IOUtils.closeQuietly(fos);
}
/**


+ 0
- 146
easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/verifys/BaseVerifyHandler.java Datei anzeigen

@@ -1,146 +0,0 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jeecgframework.poi.excel.imports.verifys;
import java.util.regex.Pattern;
import org.jeecgframework.poi.excel.entity.result.ExcelVerifyHanlderResult;
/**
* 基础校验工具类
*
* @author JueYue
* @date 2014年6月23日 下午11:10:12
*/
public class BaseVerifyHandler {
private static String NOT_NULL = "不允许为空";
private static String IS_MOBILE = "不是手机号";
private static String IS_TEL = "不是电话号码";
private static String IS_EMAIL = "不是邮箱地址";
private static String MIN_LENGHT = "小于规定长度";
private static String MAX_LENGHT = "超过规定长度";
private static Pattern mobilePattern = Pattern.compile("^[1][3,4,5,8,7][0-9]{9}$");
private static Pattern telPattern = Pattern.compile("^([0][1-9]{2,3}-)?[0-9]{5,10}$");
private static Pattern emailPattern = Pattern
.compile("^([a-zA-Z0-9]+[_|\\_|\\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\\_|\\.]?)*[a-zA-Z0-9]+\\.[a-zA-Z]{2,3}$");
/**
* email校验
*
* @param name
* @param val
* @return
*/
public static ExcelVerifyHanlderResult isEmail(String name, Object val) {
if (!emailPattern.matcher(String.valueOf(val)).matches()) {
return new ExcelVerifyHanlderResult(false, name + IS_EMAIL);
}
return new ExcelVerifyHanlderResult(true);
}
/**
* 手机校验
*
* @param name
* @param val
* @return
*/
public static ExcelVerifyHanlderResult isMobile(String name, Object val) {
if (!mobilePattern.matcher(String.valueOf(val)).matches()) {
return new ExcelVerifyHanlderResult(false, name + IS_MOBILE);
}
return new ExcelVerifyHanlderResult(true);
}
/**
* 电话校验
*
* @param name
* @param val
* @return
*/
public static ExcelVerifyHanlderResult isTel(String name, Object val) {
if (!telPattern.matcher(String.valueOf(val)).matches()) {
return new ExcelVerifyHanlderResult(false, name + IS_TEL);
}
return new ExcelVerifyHanlderResult(true);
}
/**
* 最大长度校验
*
* @param name
* @param val
* @return
*/
public static ExcelVerifyHanlderResult maxLength(String name, Object val, int maxLength) {
if (notNull(name, val).isSuccess() && String.valueOf(val).length() > maxLength) {
return new ExcelVerifyHanlderResult(false, name + MAX_LENGHT);
}
return new ExcelVerifyHanlderResult(true);
}
/**
* 最小长度校验
*
* @param name
* @param val
* @param minLength
* @return
*/
public static ExcelVerifyHanlderResult minLength(String name, Object val, int minLength) {
if (notNull(name, val).isSuccess() && String.valueOf(val).length() < minLength) {
return new ExcelVerifyHanlderResult(false, name + MIN_LENGHT);
}
return new ExcelVerifyHanlderResult(true);
}
/**
* 非空校验
*
* @param name
* @param val
* @return
*/
public static ExcelVerifyHanlderResult notNull(String name, Object val) {
if (val == null || val.toString().equals("")) {
return new ExcelVerifyHanlderResult(false, name + NOT_NULL);
}
return new ExcelVerifyHanlderResult(true);
}
/**
* 正则表达式校验
* @param name
* @param val
* @param regex
* @param regexTip
* @return
*/
public static ExcelVerifyHanlderResult regex(String name, Object val, String regex,
String regexTip) {
Pattern pattern = Pattern.compile(regex);
if (!pattern.matcher(String.valueOf(val)).matches()) {
return new ExcelVerifyHanlderResult(false, name + regexTip);
}
return new ExcelVerifyHanlderResult(true);
}
}

+ 0
- 88
easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/verifys/VerifyHandlerServer.java Datei anzeigen

@@ -1,88 +0,0 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jeecgframework.poi.excel.imports.verifys;
import org.apache.commons.lang3.StringUtils;
import org.jeecgframework.poi.excel.entity.params.ExcelVerifyEntity;
import org.jeecgframework.poi.excel.entity.result.ExcelVerifyHanlderResult;
import org.jeecgframework.poi.handler.inter.IExcelVerifyHandler;
/**
* 校验服务
*
* @author JueYue
* @date 2014年6月29日 下午4:37:56
*/
public class VerifyHandlerServer {
private final static ExcelVerifyHanlderResult DEFAULT_RESULT = new ExcelVerifyHanlderResult(
true);
private void addVerifyResult(ExcelVerifyHanlderResult hanlderResult,
ExcelVerifyHanlderResult result) {
if (!hanlderResult.isSuccess()) {
result.setSuccess(false);
result.setMsg((StringUtils.isEmpty(result.getMsg()) ? "" : result.getMsg() + " , ")
+ hanlderResult.getMsg());
}
}
/**
* 校驗數據
*
* @param object
* @param value
* @param titleString
* @param verify
* @param excelVerifyHandler
*/
public ExcelVerifyHanlderResult verifyData(Object object, Object value, String name,
ExcelVerifyEntity verify,
IExcelVerifyHandler excelVerifyHandler) {
if (verify == null) {
return DEFAULT_RESULT;
}
ExcelVerifyHanlderResult result = new ExcelVerifyHanlderResult(true, "");
if (verify.isNotNull()) {
addVerifyResult(BaseVerifyHandler.notNull(name, value), result);
}
if (verify.isEmail()) {
addVerifyResult(BaseVerifyHandler.isEmail(name, value), result);
}
if (verify.isMobile()) {
addVerifyResult(BaseVerifyHandler.isMobile(name, value), result);
}
if (verify.isTel()) {
addVerifyResult(BaseVerifyHandler.isTel(name, value), result);
}
if (verify.getMaxLength() != -1) {
addVerifyResult(BaseVerifyHandler.maxLength(name, value, verify.getMaxLength()), result);
}
if (verify.getMinLength() != -1) {
addVerifyResult(BaseVerifyHandler.minLength(name, value, verify.getMinLength()), result);
}
if (StringUtils.isNotEmpty(verify.getRegex())) {
addVerifyResult(
BaseVerifyHandler.regex(name, value, verify.getRegex(), verify.getRegexTip()),
result);
}
if (verify.isInterHandler()) {
addVerifyResult(excelVerifyHandler.verifyHandler(object, name, value), result);
}
return result;
}
}

+ 4
- 4
easypoi-base/src/main/java/org/jeecgframework/poi/handler/impl/ExcelDataHandlerDefaultImpl.java Datei anzeigen

@@ -27,14 +27,14 @@ import org.jeecgframework.poi.handler.inter.IExcelDataHandler;
* @author JueYue
* @date 2014年6月20日 上午12:11:52
*/
public abstract class ExcelDataHandlerDefaultImpl implements IExcelDataHandler {
public abstract class ExcelDataHandlerDefaultImpl<T> implements IExcelDataHandler<T> {
/**
* 需要处理的字段
*/
private String[] needHandlerFields;
@Override
public Object exportHandler(Object obj, String name, Object value) {
public Object exportHandler(T obj, String name, Object value) {
return value;
}
@@ -44,7 +44,7 @@ public abstract class ExcelDataHandlerDefaultImpl implements IExcelDataHandler {
}
@Override
public Object importHandler(Object obj, String name, Object value) {
public Object importHandler(T obj, String name, Object value) {
return value;
}
@@ -59,7 +59,7 @@ public abstract class ExcelDataHandlerDefaultImpl implements IExcelDataHandler {
}
@Override
public Hyperlink getHyperlink(CreationHelper creationHelper, Object obj, String name, Object value) {
public Hyperlink getHyperlink(CreationHelper creationHelper, T obj, String name, Object value) {
return null;
}


+ 4
- 4
easypoi-base/src/main/java/org/jeecgframework/poi/handler/inter/IExcelDataHandler.java Datei anzeigen

@@ -26,7 +26,7 @@ import org.apache.poi.ss.usermodel.Hyperlink;
* @author JueYue
* @date 2014年6月19日 下午11:59:45
*/
public interface IExcelDataHandler {
public interface IExcelDataHandler<T> {
/**
* 导出处理方法
@@ -39,7 +39,7 @@ public interface IExcelDataHandler {
* 当前值
* @return
*/
public Object exportHandler(Object obj, String name, Object value);
public Object exportHandler(T obj, String name, Object value);
/**
* 获取需要处理的字段,导入和导出统一处理了, 减少书写的字段
@@ -59,7 +59,7 @@ public interface IExcelDataHandler {
* 当前值
* @return
*/
public Object importHandler(Object obj, String name, Object value);
public Object importHandler(T obj, String name, Object value);
/**
* 设置需要处理的属性列表
@@ -83,6 +83,6 @@ public interface IExcelDataHandler {
* @param value
* @return
*/
public Hyperlink getHyperlink(CreationHelper creationHelper, Object obj, String name, Object value);
public Hyperlink getHyperlink(CreationHelper creationHelper, T obj, String name, Object value);
}

+ 35
- 0
easypoi-base/src/main/java/org/jeecgframework/poi/handler/inter/IExcelModel.java Datei anzeigen

@@ -0,0 +1,35 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jeecgframework.poi.handler.inter;
/**
* Excel标记类
* @author JueYue
* @date 2015年10月31日 下午9:31:47
*/
public interface IExcelModel {
/**
* 获取错误数据
* @return
*/
public String getErrorMsg();
/**
* 设置错误信息
* @param errorMsg
*/
public void setErrorMsg(String errorMsg);
}

+ 2
- 20
easypoi-base/src/main/java/org/jeecgframework/poi/handler/inter/IExcelVerifyHandler.java Datei anzeigen

@@ -23,33 +23,15 @@ import org.jeecgframework.poi.excel.entity.result.ExcelVerifyHanlderResult;
* @author JueYue
* @date 2014年6月23日 下午11:08:21
*/
public interface IExcelVerifyHandler {
/**
* 获取需要处理的字段,导入和导出统一处理了, 减少书写的字段
*
* @return
*/
public String[] getNeedVerifyFields();
/**
* 获取需要处理的字段,导入和导出统一处理了, 减少书写的字段
*
* @return
*/
public void setNeedVerifyFields(String[] arr);
public interface IExcelVerifyHandler<T> {
/**
* 导出处理方法
*
* @param obj
* 当前对象
* @param name
* 当前字段名称
* @param value
* 当前值
* @return
*/
public ExcelVerifyHanlderResult verifyHandler(Object obj, String name, Object value);
public ExcelVerifyHanlderResult verifyHandler(T obj);
}

+ 7
- 0
pom.xml Datei anzeigen

@@ -152,6 +152,13 @@
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.3.Final</version>
<optional>true</optional>
</dependency>
<!-- 模块版本 -->
<dependency>
<groupId>org.jeecg</groupId>


Laden…
Abbrechen
Speichern