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

quangdn - add download template and import template

parent da62dfac
......@@ -12,5 +12,5 @@ public interface CustomerContactRepository extends JpaRepository<CustomerContact
@Query("FROM CustomerContact WHERE status = 1 AND customerId = :customerId AND contactType = :contactType AND (contact IS NULL OR UPPER(contact) LIKE UPPER(concat('%', :contact, '%')))")
List<CustomerContact> findByCustomerIdAndAndContactTypeAndContact(@Param("customerId") Long customerId, @Param("contactType") Short contactType, @Param("contact") String contact, Pageable pageable);
CustomerContact findCustomerContactByContactEquals(String contact);
List<CustomerContact> findCustomerContactsByContactEquals(String contact);
}
......@@ -1067,7 +1067,13 @@ public class CustomerServiceImpl implements CustomerService {
sb.append(validateLength(BundleUtils.getLangString("customer.email", locale).split("#")[0], rawDataList.get(i)[4].toString(), 50, locale));
sb.append(str);
} else {
sb.append(BundleUtils.getLangString("customer.invalidCustomer", locale));
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));
}
}
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));
......@@ -1105,11 +1111,11 @@ public class CustomerServiceImpl implements CustomerService {
if (failedCount == 0) {
for (int i = 0; i < rawDataList.size(); i++) {
Customer c = new Customer();
c.setName(rawDataList.get(i)[1].toString());
c.setName(rawDataList.get(i)[1].toString().trim());
c.setSiteId(userSession.getSiteId());
c.setCode(null);
c.setDescription(rawDataList.get(i)[8].toString());
c.setCompanyName(rawDataList.get(i)[7].toString());
c.setDescription(rawDataList.get(i)[8].toString().trim());
c.setCompanyName(rawDataList.get(i)[7].toString().trim());
c.setCustomerImg(null);
c.setCreateDate(new Date());
c.setUpdateDate(null);
......@@ -1117,14 +1123,14 @@ public class CustomerServiceImpl implements CustomerService {
c.setCreateBy(userSession.getUserName());
c.setUpdateBy(null);
c.setGender((short) 1);
c.setCurrentAddress(rawDataList.get(i)[5].toString());
c.setCurrentAddress(rawDataList.get(i)[5].toString().trim());
// c.setPlaceOfBirth();
// c.setDateOfBirth();
c.setMobileNumber(null);
c.setEmail(null);
c.setUserName(null);
c.setAreaCode(null);
switch (rawDataList.get(i)[6].toString()) {
switch (rawDataList.get(i)[6].toString().trim()) {
case "VIP":
c.setCustomerType(2L);
break;
......@@ -1135,17 +1141,17 @@ public class CustomerServiceImpl implements CustomerService {
c.setCustomerType(1L);
break;
}
if (rawDataList.get(i)[9].toString().equals(BundleUtils.getLangString("customer.yes", locale))) {
if (rawDataList.get(i)[9].toString().trim().equals(BundleUtils.getLangString("customer.yes", locale))) {
c.setCallAllowed(1L);
} else {
c.setCallAllowed(0L);
}
if (rawDataList.get(i)[10].toString().equals(BundleUtils.getLangString("customer.yes", locale))) {
if (rawDataList.get(i)[10].toString().trim().equals(BundleUtils.getLangString("customer.yes", locale))) {
c.setEmailAllowed(1L);
} else {
c.setEmailAllowed(0L);
}
if (rawDataList.get(i)[11].toString().equals(BundleUtils.getLangString("customer.yes", locale))) {
if (rawDataList.get(i)[11].toString().trim().equals(BundleUtils.getLangString("customer.yes", locale))) {
c.setSmsAllowed(1L);
} else {
c.setSmsAllowed(0L);
......@@ -1153,13 +1159,13 @@ public class CustomerServiceImpl implements CustomerService {
c.setIpccStatus("active");
Customer saved = customerRepository.save(c);
if (rawDataList.get(i).length > 2 && rawDataList.get(i)[2] != null) {
String[] mainPhone = rawDataList.get(i)[2].toString().split(";");
String[] mainPhone = rawDataList.get(i)[2].toString().trim().split(";");
for (int j = 0; j < mainPhone.length; j++) {
CustomerContact cc = new CustomerContact();
cc.setCustomerId(saved.getCustomerId());
cc.setSiteId(userSession.getSiteId());
cc.setContactType((short) 5);
cc.setContact(mainPhone[j]);
cc.setContact(mainPhone[j].trim());
cc.setIsDirectLine((short) 1);
cc.setStatus((short) 1);
cc.setCreateDate(new Date());
......@@ -1170,13 +1176,13 @@ public class CustomerServiceImpl implements CustomerService {
}
}
if (rawDataList.get(i).length > 3 && rawDataList.get(i)[3] != null) {
String[] subPhone = rawDataList.get(i)[3].toString().split(";");
String[] subPhone = rawDataList.get(i)[3].toString().trim().split(";");
for (int j = 0; j < subPhone.length; j++) {
CustomerContact cc = new CustomerContact();
cc.setCustomerId(saved.getCustomerId());
cc.setSiteId(userSession.getSiteId());
cc.setContactType((short) 5);
cc.setContact(subPhone[j]);
cc.setContact(subPhone[j].trim());
cc.setIsDirectLine((short) 0);
cc.setStatus((short) 1);
cc.setCreateDate(new Date());
......@@ -1193,7 +1199,7 @@ public class CustomerServiceImpl implements CustomerService {
cc.setCustomerId(saved.getCustomerId());
cc.setSiteId(userSession.getSiteId());
cc.setContactType((short) 2);
cc.setContact(email[j]);
cc.setContact(email[j].trim());
cc.setIsDirectLine((short) 1);
cc.setStatus((short) 1);
cc.setCreateDate(new Date());
......@@ -1211,25 +1217,25 @@ public class CustomerServiceImpl implements CustomerService {
switch (dynamicHeader.get(j).getType()) {
case "combobox":
CustomizeFieldOptionValue cfov =
customizeFieldOptionValueRepository.findCustomizeFieldOptionValueByNameEqualsAndStatus(rawDataList.get(i)[12 + j].toString(), 1L);
customizeFieldOptionValueRepository.findCustomizeFieldOptionValueByNameEqualsAndStatus(rawDataList.get(i)[12 + j].toString().trim(), 1L);
cfo.setFieldOptionValueId(cfov.getFieldOptionValueId());
break;
case "checkbox":
if (rawDataList.get(i)[12 + j].toString().equals(BundleUtils.getLangString("customer.yes", locale))) {
if (rawDataList.get(i)[12 + j].toString().trim().equals(BundleUtils.getLangString("customer.yes", locale))) {
cfo.setValueCheckbox(1L);
} else {
cfo.setValueCheckbox(0L);
}
break;
case "date":
Date date = dateFormat.parse(rawDataList.get(i)[12 + j].toString());
Date date = dateFormat.parse(rawDataList.get(i)[12 + j].toString().trim());
cfo.setValueDate(date);
break;
case "number":
cfo.setValueNumber((Long) rawDataList.get(i)[12 + j]);
cfo.setValueNumber(Long.parseLong(rawDataList.get(i)[12 + j].toString().trim()));
break;
default:
cfo.setValueText(rawDataList.get(i)[12 + j].toString());
cfo.setValueText(rawDataList.get(i)[12 + j].toString().trim());
break;
}
}
......@@ -1280,8 +1286,8 @@ public class CustomerServiceImpl implements CustomerService {
result = BundleUtils.getLangString("customer.phoneMax50", locale);
}
for (int i = 0; i < arr.length; i++) {
CustomerContact cc = customerContactRepository.findCustomerContactByContactEquals(arr[i]);
if (cc != null) {
List<CustomerContact> contactList = customerContactRepository.findCustomerContactsByContactEquals(arr[i]);
if (contactList.size() != 0) {
return result.concat(BundleUtils.getLangString("customer.phoneExists", locale));
}
}
......@@ -1292,8 +1298,8 @@ public class CustomerServiceImpl implements CustomerService {
String result = "";
String[] arr = str.split(";");
for (int i = 0; i < arr.length; i++) {
CustomerContact cc = customerContactRepository.findCustomerContactByContactEquals(arr[i]);
if (cc != null) {
List<CustomerContact> contactList = customerContactRepository.findCustomerContactsByContactEquals(arr[i]);
if (contactList.size() != 0) {
return result.concat(BundleUtils.getLangString("customer.emailExists", locale));
}
}
......
......@@ -6,7 +6,6 @@ import com.viettel.campaign.model.ccms_full.CustomizeFields;
import com.viettel.campaign.repository.ccms_full.CustomerQueryRepository;
import com.viettel.campaign.service.CustomerService;
import com.viettel.campaign.utils.Config;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.RedisUtil;
import com.viettel.campaign.web.dto.*;
import com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO;
......@@ -33,7 +32,6 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Controller
@RequestMapping("/ipcc/customer")
......@@ -202,9 +200,9 @@ public class CustomerController {
if (file.isEmpty()) {
return new ResponseEntity<>("file-empty", HttpStatus.OK);
}
if (!Objects.equals(FilenameUtils.getExtension(file.getOriginalFilename()), Constants.FileType.xlsx)) {
return new ResponseEntity<>("template-invalid", HttpStatus.OK);
}
// if (!Objects.equals(FilenameUtils.getExtension(file.getOriginalFilename()), Constants.FileType.xlsx)) {
// return new ResponseEntity<>("template-invalid", HttpStatus.OK);
// }
String path = saveUploadFile(file);
List<CustomizeFields> dynamicHeaders = customerService.getDynamicHeader(userSession.getCompanySiteId());
Map<String, Object> map = customerService.readAndValidateCustomer(path, dynamicHeaders, userSession, Long.parseLong(customerListId));
......
......@@ -90,7 +90,6 @@ customer.not = No
customer.noData = Template empty
customer.nameRequired = Full name required;
customer.emailMax50 = Email must less than 50 character;
customer.invalidCustomer = All 3 fields Main phone, second phone and email must not null;
customer.importSuccess = Import Successful
customer.importFailed = Import Failed
customer.errorValidate = Error while validating
......
......@@ -92,7 +92,9 @@ 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.invalidCustomer = Cả 3 thông tin số điện thoại chính, số điện phụ và email không được để trống;
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.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