Commit fbeac132 authored by Đào Nhật Quang's avatar Đào Nhật Quang

quangdn - add download template and import template

parent fe4bf96d
......@@ -51,11 +51,14 @@ import java.nio.file.Files;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Service
public class CustomerServiceImpl implements CustomerService {
private static final Logger LOGGER = LoggerFactory.getLogger(CustomerServiceImpl.class);
private static final Pattern EMAIL_REGEXP = Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);
@Autowired
@PersistenceContext(unitName = DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL)
......@@ -1016,7 +1019,7 @@ public class CustomerServiceImpl implements CustomerService {
//</editor-fold>
//<editor-fold desc="Đọc dữ liệu từng dòng 1" defaultstate="collapsed">
for (int i = 4; i < sheet.getPhysicalNumberOfRows(); i++) {
for (int i = 4; i <= sheet.getPhysicalNumberOfRows(); i++) {
Row dataRow = sheet.getRow(i);
if (dataRow != null) {
Object[] obj = new Object[row.getPhysicalNumberOfCells() - 1];
......@@ -1057,23 +1060,28 @@ public class CustomerServiceImpl implements CustomerService {
&& !rawDataList.get(i)[3].toString().trim().equals("")
&& rawDataList.get(i)[4] != null
&& !rawDataList.get(i)[4].toString().trim().equals("")) {
String str = validatePhone(rawDataList.get(i)[2].toString().trim(), locale);
String str = "";
if (validateNumberOnly(rawDataList.get(i)[2].toString().trim())) {
str = validateExistPhone(rawDataList.get(i)[2].toString().trim(), locale);
} else {
str += BundleUtils.getLangString("customer.onlyNumber", locale);
}
if (validateNumberOnly(rawDataList.get(i)[3].toString().trim())) {
str += (validateLength(BundleUtils.getLangString("customer.secondPhone", locale).split("#")[0], rawDataList.get(i)[3].toString(), 50, locale));
} else {
str += BundleUtils.getLangString("customer.onlyNumber", locale);
}
if (!validateEmail(rawDataList.get(i)[4].toString().trim())) {
str += (BundleUtils.getLangString("customer.emailInvalid", locale));
} else {
if (validateLength(BundleUtils.getLangString("customer.email", locale).split("#")[0], rawDataList.get(i)[4].toString(), 100, locale).equals("")) {
str += (validateDuplicateEmail(rawDataList.get(i)[4].toString().trim(), locale));
} else
str += validateLength(BundleUtils.getLangString("customer.email", locale).split("#")[0], rawDataList.get(i)[4].toString(), 50, locale);
}
sb.append(validateLength(BundleUtils.getLangString("customer.email", locale).split("#")[0], rawDataList.get(i)[4].toString(), 50, locale));
sb.append(str);
} else {
if (rawDataList.get(i).length > 2 && rawDataList.get(i)[2] == null) {
sb.append(BundleUtils.getLangString("customer.mainPhoneRequired", locale));
} else if (rawDataList.get(i).length > 3 && rawDataList.get(i)[3] == null) {
sb.append(BundleUtils.getLangString("customer.secondPhoneRequired", locale));
} else if (rawDataList.get(i).length > 4 && rawDataList.get(i)[4] == null) {
sb.append(BundleUtils.getLangString("customer.emailRequired", locale));
}
sb.append(BundleUtils.getLangString("customer.invalidRecord", locale));
}
if (rawDataList.get(i).length > 5 && rawDataList.get(i)[5] != null) {
sb.append(validateLength(BundleUtils.getLangString("customer.address", locale).split("#")[0], rawDataList.get(i)[5].toString(), 500, locale));
......@@ -1279,14 +1287,15 @@ public class CustomerServiceImpl implements CustomerService {
}
//<editor-fold desc="Validate Methods" defaultstate="collapsed">
private String validatePhone(String str, Locale locale) {
private String validateExistPhone(String str, Locale locale) {
String result = "";
String[] arr = str.split(";");
List<CustomerContact> contactList;
if (str.length() > 50) {
result = BundleUtils.getLangString("customer.phoneMax50", locale);
}
for (int i = 0; i < arr.length; i++) {
List<CustomerContact> contactList = customerContactRepository.findCustomerContactsByContactEquals(arr[i]);
contactList = customerContactRepository.findCustomerContactsByContactEquals(arr[i]);
if (contactList.size() != 0) {
return result.concat(BundleUtils.getLangString("customer.phoneExists", locale));
}
......@@ -1294,11 +1303,24 @@ public class CustomerServiceImpl implements CustomerService {
return result;
}
private boolean validateNumberOnly(String str) {
String regexp = "\\b\\d+\\b";
String[] arr = str.split(";");
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (!arr[i].matches(regexp)) {
count++;
}
}
return count == 0;
}
private String validateDuplicateEmail(String str, Locale locale) {
String result = "";
String[] arr = str.split(";");
List<CustomerContact> contactList;
for (int i = 0; i < arr.length; i++) {
List<CustomerContact> contactList = customerContactRepository.findCustomerContactsByContactEquals(arr[i]);
contactList = customerContactRepository.findCustomerContactsByContactEquals(arr[i]);
if (contactList.size() != 0) {
return result.concat(BundleUtils.getLangString("customer.emailExists", locale));
}
......@@ -1328,9 +1350,9 @@ public class CustomerServiceImpl implements CustomerService {
private boolean validateEmail(String str) {
String[] arr = str.split(";");
String regexp = "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$";
for (int i = 0; i < arr.length; i++) {
if (!arr[i].matches(regexp)) {
Matcher matcher = EMAIL_REGEXP.matcher(arr[i]);
if (!matcher.find()) {
return false;
}
}
......@@ -2045,7 +2067,7 @@ public class CustomerServiceImpl implements CustomerService {
query.setMaxResults(pageable.getPageSize());
}
List<CustomerDTO>data = query.list();
List<CustomerDTO> data = query.list();
Page<CustomerDTO> dataPage = new PageImpl<>(data, pageable, count);
resultDTO.setData(dataPage);
resultDTO.setTotalRow(count);
......
......@@ -89,7 +89,9 @@ customer.yes = Yes
customer.not = No
customer.noData = Template empty
customer.nameRequired = Full name required;
customer.emailMax50 = Email must less than 50 character;
customer.emailMax100=Email must less than 100 character;
customer.invalidRecord=Invalid Record, required one more contact information;
customer.onlyNumber=Phone contain number only;
customer.importSuccess = Import Successful
customer.importFailed = Import Failed
customer.errorValidate = Error while validating
......
......@@ -91,10 +91,9 @@ customer.yes = Có
customer.not = Không
customer.noData = Template không có dữ liệu
customer.nameRequired = Họ và tên không được để trống;
customer.emailMax50 = Email không được quá 50 kí tự;
customer.mainPhoneRequired=Số điện thoại chính không được để trống
customer.secondPhoneRequired=Số điện thoại phụ không được để trống
customer.emailRequired=Số điện thoại email không được để trống
customer.emailMax100=Email không được quá 100 kí tự;
customer.invalidRecord=Bắt buộc nhập 1 trong 3 thông tin liên lạc(Số điện thoại chính, Số điện thoại phụ, Email);
customer.onlyNumber=Số điện thoại chỉ được nhập số;
customer.importSuccess = Import dữ liệu thành công
customer.importFailed = Import dữ liệu thất bại
customer.errorValidate = Validate dữ liệu lỗi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment