Commit 71b19cab authored by Vu Duy Anh's avatar Vu Duy Anh

anhvd accept merge

parents 623d4956 319adf57
...@@ -12,7 +12,7 @@ public interface CampaignCfgService { ...@@ -12,7 +12,7 @@ public interface CampaignCfgService {
Map listCompleteCodeByName(int page, int pageSize, String sort, String name); Map listCompleteCodeByName(int page, int pageSize, String sort, String name);
ResultDTO createCompleteCode(CampaignCfgDTO completeCodeDTO); ResultDTO createCompleteCode(CampaignCfgDTO completeCodeDTO, Long userId);
ResultDTO updateCompleteCode(CampaignCfgDTO completeCodeDTO); ResultDTO updateCompleteCode(CampaignCfgDTO completeCodeDTO);
......
...@@ -5,6 +5,7 @@ import com.viettel.campaign.mapper.CampaignCompleteCodeMapper; ...@@ -5,6 +5,7 @@ import com.viettel.campaign.mapper.CampaignCompleteCodeMapper;
import com.viettel.campaign.model.ccms_full.CampaignCfg; import com.viettel.campaign.model.ccms_full.CampaignCfg;
import com.viettel.campaign.repository.ccms_full.CampaignCfgRepository; import com.viettel.campaign.repository.ccms_full.CampaignCfgRepository;
import com.viettel.campaign.repository.ccms_full.CampaignRepository;
import com.viettel.campaign.service.CampaignCfgService; import com.viettel.campaign.service.CampaignCfgService;
import com.viettel.campaign.utils.Constants; import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil; import com.viettel.campaign.utils.DataUtil;
...@@ -157,7 +158,7 @@ public class CampaignCfgServiceImpl implements CampaignCfgService { ...@@ -157,7 +158,7 @@ public class CampaignCfgServiceImpl implements CampaignCfgService {
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO createCompleteCode(CampaignCfgDTO completeCodeDTO) { public ResultDTO createCompleteCode(CampaignCfgDTO completeCodeDTO, Long userId) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
CampaignCompleteCodeMapper compCodeMapper = new CampaignCompleteCodeMapper(); CampaignCompleteCodeMapper compCodeMapper = new CampaignCompleteCodeMapper();
Date today = new Date(); Date today = new Date();
...@@ -165,12 +166,37 @@ public class CampaignCfgServiceImpl implements CampaignCfgService { ...@@ -165,12 +166,37 @@ public class CampaignCfgServiceImpl implements CampaignCfgService {
try { try {
if (completeCodeDTO != null) { if (completeCodeDTO != null) {
// insert // insert
compCode = compCodeMapper.toPersistenceBean(completeCodeDTO); // compCode = compCodeMapper.toPersistenceBean(completeCodeDTO);
compCode = completeCodeRepository.save(compCode); // compCode = completeCodeRepository.save(compCode);
//
// resultDTO.setErrorCode("0");
// resultDTO.setDescription("Complete Code: " + compCode.getCampaignCompleteCodeId() + " created!");
CampaignCfg cl = new CampaignCfg();
cl.setStatus((short) 1);
cl.setCreateBy(String.valueOf(userId));
cl.setCreateAt(new Date());
cl.setUpdateBy(null);
cl.setUpdateAt(null);
cl.setChanel(completeCodeDTO.getChanel());
cl.setCompleteName(completeCodeDTO.getCompleteName().trim());
cl.setCompleteValue(completeCodeDTO.getCompleteValue());
cl.setCampaignType(completeCodeDTO.getCampaignType());
cl.setDescription(completeCodeDTO.getDescription().trim());
cl.setCompleteType(completeCodeDTO.getCompleteType());
cl.setCompanySiteId(completeCodeDTO.getCompanySiteId());
cl.setCampaignCompleteCodeId(completeCodeDTO.getCampaignCompleteCodeId());
cl.setCampaignId(completeCodeDTO.getCampaignId());
cl.setDurationLock(completeCodeDTO.getDurationLock());
cl.setIsFinish(completeCodeDTO.getIsFinish());
cl.setIsLock(completeCodeDTO.getIsLock());
cl.setIsRecall(completeCodeDTO.getIsRecall());
resultDTO.setErrorCode("0"); resultDTO.setErrorCode("0");
resultDTO.setDescription("Complete Code: " + compCode.getCampaignCompleteCodeId() + " created!"); resultDTO.setDescription("Complete Code: " + compCode.getCampaignCompleteCodeId() + " created!");
resultDTO.setData(completeCodeRepository.save(cl));
return resultDTO;
} else { } else {
resultDTO.setErrorCode("-2"); resultDTO.setErrorCode("-2");
resultDTO.setDescription("CompleteCodeDTO null"); resultDTO.setDescription("CompleteCodeDTO null");
......
...@@ -58,7 +58,8 @@ import java.util.regex.Pattern; ...@@ -58,7 +58,8 @@ import java.util.regex.Pattern;
public class CustomerServiceImpl implements CustomerService { public class CustomerServiceImpl implements CustomerService {
private static final Logger LOGGER = LoggerFactory.getLogger(CustomerServiceImpl.class); 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); // private static final Pattern EMAIL_REGEXP = Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);
private static final Pattern EMAIL_REGEXP = Pattern.compile("^(.+)@(.+)$", Pattern.CASE_INSENSITIVE);
@Autowired @Autowired
@PersistenceContext(unitName = DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL) @PersistenceContext(unitName = DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL)
...@@ -953,6 +954,7 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -953,6 +954,7 @@ public class CustomerServiceImpl implements CustomerService {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
int failedCount = 0; int failedCount = 0;
XSSFWorkbook workbook = null; XSSFWorkbook workbook = null;
boolean isMainPhoneNull = false, isSecondPhoneNull = false, isEmailNull = false;
try { try {
//<editor-fold desc="Khởi tạo mảng header tĩnh" defaultstate="collapsed"> //<editor-fold desc="Khởi tạo mảng header tĩnh" defaultstate="collapsed">
...@@ -1053,39 +1055,43 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1053,39 +1055,43 @@ public class CustomerServiceImpl implements CustomerService {
sb.append(str); sb.append(str);
} }
} else sb.append(BundleUtils.getLangString("customer.nameRequired", locale)); } else sb.append(BundleUtils.getLangString("customer.nameRequired", locale));
if (rawDataList.get(i).length > 4 if (rawDataList.get(i).length > 4 && (rawDataList.get(i)[2] == null || rawDataList.get(i)[2].toString().trim().equals(""))) {
&& rawDataList.get(i)[2] != null isMainPhoneNull = true;
&& !rawDataList.get(i)[2].toString().trim().equals("") } else {
&& rawDataList.get(i)[3] != null
&& !rawDataList.get(i)[3].toString().trim().equals("")
&& rawDataList.get(i)[4] != null
&& !rawDataList.get(i)[4].toString().trim().equals("")) {
String str = "";
if (validateNumberOnly(rawDataList.get(i)[2].toString().trim())) { if (validateNumberOnly(rawDataList.get(i)[2].toString().trim())) {
str = validateExistPhone(rawDataList.get(i)[2].toString().trim(), locale); sb.append(validateExistPhone(rawDataList.get(i)[2].toString().trim(), locale));
} else { } else {
str += BundleUtils.getLangString("customer.onlyNumber", locale); sb.append(BundleUtils.getLangString("customer.onlyNumber", locale));
} }
}
if (rawDataList.get(i).length > 4 && (rawDataList.get(i)[3] == null || rawDataList.get(i)[3].toString().trim().equals(""))) {
isSecondPhoneNull = true;
} else {
if (validateNumberOnly(rawDataList.get(i)[3].toString().trim())) { if (validateNumberOnly(rawDataList.get(i)[3].toString().trim())) {
str += (validateLength(BundleUtils.getLangString("customer.secondPhone", locale).split("#")[0], rawDataList.get(i)[3].toString(), 50, locale)); sb.append(validateLength(BundleUtils.getLangString("customer.secondPhone", locale).split("#")[0], rawDataList.get(i)[3].toString(), 50, locale));
} else { } else {
str += BundleUtils.getLangString("customer.onlyNumber", locale); sb.append(BundleUtils.getLangString("customer.onlyNumber", locale));
} }
}
if (rawDataList.get(i).length > 4 && (rawDataList.get(i)[4] == null || rawDataList.get(i)[4].toString().trim().equals(""))) {
isEmailNull = true;
} else {
if (!validateEmail(rawDataList.get(i)[4].toString().trim())) { if (!validateEmail(rawDataList.get(i)[4].toString().trim())) {
str += (BundleUtils.getLangString("customer.emailInvalid", locale)); sb.append(BundleUtils.getLangString("customer.emailInvalid", locale));
} else { } else {
if (validateLength(BundleUtils.getLangString("customer.email", locale).split("#")[0], rawDataList.get(i)[4].toString(), 100, locale).equals("")) { sb.append(validateDuplicateEmail(rawDataList.get(i)[4].toString().trim(), locale));
str += (validateDuplicateEmail(rawDataList.get(i)[4].toString().trim(), locale)); sb.append(validateLength(BundleUtils.getLangString("customer.email", locale).split("#")[0], rawDataList.get(i)[4].toString(), 50, locale));
} else
str += validateLength(BundleUtils.getLangString("customer.email", locale).split("#")[0], rawDataList.get(i)[4].toString(), 50, locale);
} }
sb.append(str); }
} else { if (isEmailNull && isMainPhoneNull && isSecondPhoneNull) {
sb.append(BundleUtils.getLangString("customer.invalidRecord", locale)); sb.append(BundleUtils.getLangString("customer.invalidRecord", locale));
} }
if (rawDataList.get(i).length > 5 && rawDataList.get(i)[5] != null) { 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)); sb.append(validateLength(BundleUtils.getLangString("customer.address", locale).split("#")[0], rawDataList.get(i)[5].toString(), 500, locale));
} }
if (rawDataList.get(i).length > 6 && rawDataList.get(i)[6] != null) {
sb.append(validateCusType(rawDataList.get(i)[6].toString().trim(), locale));
}
if (rawDataList.get(i).length > 7 && rawDataList.get(i)[7] != null) { if (rawDataList.get(i).length > 7 && rawDataList.get(i)[7] != null) {
sb.append(validateLength(BundleUtils.getLangString("customer.companyName", locale).split("#")[0], rawDataList.get(i)[7].toString(), 100, locale)); sb.append(validateLength(BundleUtils.getLangString("customer.companyName", locale).split("#")[0], rawDataList.get(i)[7].toString(), 100, locale));
} }
...@@ -1112,6 +1118,9 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1112,6 +1118,9 @@ public class CustomerServiceImpl implements CustomerService {
resultCell.setCellValue("Ok"); resultCell.setCellValue("Ok");
} }
sb = new StringBuilder(); sb = new StringBuilder();
isEmailNull = false;
isMainPhoneNull = false;
isSecondPhoneNull = false;
} }
//</editor-fold> //</editor-fold>
...@@ -1122,8 +1131,12 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1122,8 +1131,12 @@ public class CustomerServiceImpl implements CustomerService {
c.setName(rawDataList.get(i)[1].toString().trim()); c.setName(rawDataList.get(i)[1].toString().trim());
c.setSiteId(userSession.getSiteId()); c.setSiteId(userSession.getSiteId());
c.setCode(null); c.setCode(null);
c.setDescription(rawDataList.get(i)[8].toString().trim()); if (rawDataList.get(i).length > 8 && rawDataList.get(i)[8] != null && !rawDataList.get(i)[8].toString().trim().equals("")) {
c.setCompanyName(rawDataList.get(i)[7].toString().trim()); c.setDescription(rawDataList.get(i)[8].toString().trim());
}
if (rawDataList.get(i).length > 7 && rawDataList.get(i)[7] != null && !rawDataList.get(i)[7].toString().trim().equals("")) {
c.setCompanyName(rawDataList.get(i)[7].toString().trim());
}
c.setCustomerImg(null); c.setCustomerImg(null);
c.setCreateDate(new Date()); c.setCreateDate(new Date());
c.setUpdateDate(null); c.setUpdateDate(null);
...@@ -1131,7 +1144,9 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1131,7 +1144,9 @@ public class CustomerServiceImpl implements CustomerService {
c.setCreateBy(userSession.getUserName()); c.setCreateBy(userSession.getUserName());
c.setUpdateBy(null); c.setUpdateBy(null);
c.setGender((short) 1); c.setGender((short) 1);
c.setCurrentAddress(rawDataList.get(i)[5].toString().trim()); if (rawDataList.get(i).length > 5 && rawDataList.get(i)[5] != null && !rawDataList.get(i)[5].toString().trim().equals("")) {
c.setCurrentAddress(rawDataList.get(i)[5].toString().trim());
}
// c.setPlaceOfBirth(); // c.setPlaceOfBirth();
// c.setDateOfBirth(); // c.setDateOfBirth();
c.setMobileNumber(null); c.setMobileNumber(null);
...@@ -1352,13 +1367,25 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1352,13 +1367,25 @@ public class CustomerServiceImpl implements CustomerService {
String[] arr = str.split(";"); String[] arr = str.split(";");
for (int i = 0; i < arr.length; i++) { for (int i = 0; i < arr.length; i++) {
Matcher matcher = EMAIL_REGEXP.matcher(arr[i]); Matcher matcher = EMAIL_REGEXP.matcher(arr[i]);
if (!matcher.find()) { if (!matcher.matches()) {
return false; return false;
} }
} }
return true; return true;
} }
private String validateCusType(String str, Locale locale) {
String[] arr = {BundleUtils.getLangString("customer.cusType.normal", locale),
BundleUtils.getLangString("customer.cusType.vip", locale),
BundleUtils.getLangString("customer.cusType.blacklist", locale)};
List<String> cusTypes = Arrays.asList(arr);
if (cusTypes.contains(str.trim())) {
return "";
} else {
return BundleUtils.getLangString("customer.cusTypeInvalid", locale);
}
}
private boolean validateLetter(String str) { private boolean validateLetter(String str) {
String regexp = "@\"^\\p{L}+$\""; String regexp = "@\"^\\p{L}+$\"";
return str.matches(regexp); return str.matches(regexp);
......
package com.viettel.campaign.web.rest; package com.viettel.campaign.web.rest;
import com.viettel.campaign.utils.RedisUtil;
import com.viettel.campaign.web.dto.CampaignCfgDTO; import com.viettel.campaign.web.dto.CampaignCfgDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.service.CampaignCfgService; import com.viettel.campaign.service.CampaignCfgService;
import com.viettel.campaign.web.dto.request_dto.CampaignCfgRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignCfgRequestDTO;
import com.viettel.econtact.filter.UserSession;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Map; import java.util.Map;
...@@ -38,13 +41,16 @@ public class CampaignCfgController { ...@@ -38,13 +41,16 @@ public class CampaignCfgController {
@PostMapping("/create") @PostMapping("/create")
@ResponseBody @ResponseBody
public ResultDTO createCompleteCode(@RequestBody @Valid CampaignCfgDTO completeCodeDTO) { public ResultDTO createCompleteCode(@RequestBody @Valid CampaignCfgDTO completeCodeDTO , HttpServletRequest httpServletRequest) {
String xAuthToken = httpServletRequest.getHeader("X-Auth-Token");
UserSession userSession = (UserSession) RedisUtil.getInstance().get(xAuthToken);
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
//LogUtil logUtil = new LogUtil(); //LogUtil logUtil = new LogUtil();
//logUtil.initKpiLog("createCust") //logUtil.initKpiLog("createCust")
try { try {
//LOGGER.info("Returning createCustomer: start"); //LOGGER.info("Returning createCustomer: start");
result = completeCodeService.createCompleteCode(completeCodeDTO); result = completeCodeService.createCompleteCode(completeCodeDTO, userSession.getUserId());
//LOGGER.info("Returning createCustomer:" + result.getErrorCode()); //LOGGER.info("Returning createCustomer:" + result.getErrorCode());
//logUtil.endKpiLog(customerDTO, 0, result.getErrorCode(), result.getDetail(), CustomerController.class, customerDTO.getAgentProcess(), this.serverPort); //logUtil.endKpiLog(customerDTO, 0, result.getErrorCode(), result.getDetail(), CustomerController.class, customerDTO.getAgentProcess(), this.serverPort);
} catch (Exception e) { } catch (Exception e) {
......
...@@ -104,6 +104,7 @@ customer.importCustomer = IMPORT CUSTOMER ...@@ -104,6 +104,7 @@ customer.importCustomer = IMPORT CUSTOMER
customer.notice = Attention: A record is valid when Full Name is not null and one of three fields Main phone, secondary phone or email is not null customer.notice = Attention: A record is valid when Full Name is not null and one of three fields Main phone, secondary phone or email is not null
customer.emailInvalid=Invalid email; customer.emailInvalid=Invalid email;
customer.emailExists=Email exists; customer.emailExists=Email exists;
customer.cusTypeInvalid=Customer type Invalid;
common.fileNotSelected=Please select a file common.fileNotSelected=Please select a file
common.fileInvalidFormat=File invalid common.fileInvalidFormat=File invalid
......
...@@ -106,6 +106,7 @@ customer.importCustomer = IMPORT KHÁCH HÀNG ...@@ -106,6 +106,7 @@ customer.importCustomer = IMPORT KHÁCH HÀNG
customer.notice = Chú ý: 1 bản ghi được coi là hợp lệ bắt buộc phải có thông tin Họ và Tên và 1 trong 3 thông tin liên lạc (số điện thoại chính, số điện thoại phụ hoặc email) customer.notice = Chú ý: 1 bản ghi được coi là hợp lệ bắt buộc phải có thông tin Họ và Tên và 1 trong 3 thông tin liên lạc (số điện thoại chính, số điện thoại phụ hoặc email)
customer.emailInvalid=Email không đúng định dạng; customer.emailInvalid=Email không đúng định dạng;
customer.emailExists=Email đã tồn tại; customer.emailExists=Email đã tồn tại;
customer.cusTypeInvalid=Loại khách hàng không hợp lệ;
common.fileNotSelected=Bạn chưa chọn file common.fileNotSelected=Bạn chưa chọn file
common.fileInvalidFormat=File không hợp lệ common.fileInvalidFormat=File không hợp lệ
......
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