Commit 74d5ace2 authored by ='s avatar =

Merge remote-tracking branch 'origin/master'

parents dc3e2759 156c41ab
......@@ -90,6 +90,6 @@ public interface CustomerService {
//// List<CustomizeFields> searchCustomize();
ResultDTO listCustomizeFields(CustomizeFieldsDTO customizeFields);
ResultDTO searchCustomizeFields(int page, int pageSize, long companySiteId, long campaignId, CustomerQueryDTO customerQueryDTO);
ResultDTO searchCustomizeFields(CampaignCustomerDTO campaignCustomerDTO);
}
......@@ -3,6 +3,7 @@ package com.viettel.campaign.service.impl;
import com.github.tennaito.rsql.jpa.JpaCriteriaCountQueryVisitor;
import com.github.tennaito.rsql.jpa.JpaCriteriaQueryVisitor;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.mapper.CustomerListMapper;
import com.viettel.campaign.mapper.CustomerMapper;
import com.viettel.campaign.model.ccms_full.*;
import com.viettel.campaign.repository.ccms_full.*;
......@@ -44,6 +45,7 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.lang.reflect.Array;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -1640,12 +1642,12 @@ public class CustomerServiceImpl implements CustomerService {
String[] lstCusId = campaignCustomerDTO.getLstCustomerId().split(",");
List<Short> lstStatus = campaignCustomerRepository.getStatus();
try {
for (String cusId: lstCusId) {
for (String cusId : lstCusId) {
CampaignCustomer entity = campaignCustomerRepository.findCampaignCustomerByCampaignIdAndCompanySiteIdAndCustomerId(campaignId, companySiteId, Long.parseLong(cusId));
if (entity.getStatus() == 0) {
campaignCustomerRepository.delete(entity);
} else if (lstStatus.contains(entity.getStatus())){
entity.setInCampaignStatus((short)0);
} else if (lstStatus.contains(entity.getStatus())) {
entity.setInCampaignStatus((short) 0);
campaignCustomerRepository.save(entity);
}
}
......@@ -1736,7 +1738,6 @@ public class CustomerServiceImpl implements CustomerService {
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
return resultDTO;
}
......@@ -1787,6 +1788,29 @@ public class CustomerServiceImpl implements CustomerService {
return query;
}
// params.put('1', ["AND","AGE",">=","30"] )
// lst.push(params);
// StringBuilder sql = "Select ..... WHERE 1 = 1 "
// for(lst){
// String[] data = lst[i].value
// sql.append(data[0] + data[1] + data[2] + data[3]);
// }
// Map<String, String> params = new HashMap<>();
// public ResultDTO searchCustomize(List<CustomizeFields> customizeFields) {
// Map<String, CustomizeRequestDTo> hashCustomer = new HashMap<>();
// CustomizeRequestDTo customizeRequestDTo = new CustomizeRequestDTo();
// hashCustomer.put("1", customizeRequestDTo);
// hashCustomer.put("2", customizeRequestDTo);
// hashCustomer.put("3", customizeRequestDTo);
// StringBuilder sb = new StringBuilder();
// sb.append("");
// sb.append("");
// sb.append("");
// sb.append("");
@Override
public ResultDTO listCustomizeFields(CustomizeFieldsDTO customizeFields) {
ResultDTO resultDTO = new ResultDTO();
......@@ -1815,6 +1839,45 @@ public class CustomerServiceImpl implements CustomerService {
datafill.setType(cf[x][2]);
lstCustomizeFields.add(datafill);
}
// try {
// stringBuilder.append(" with column_name_temp as (");
// stringBuilder.append(" select 'CUSTOMER_ID customerId' , from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'CUSTOMER_NAME customerName' , from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'CUSTOMER_TYPE customerType' , from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'NAME name' , from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'CURRENT_ADDRESS currentAddress', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'PLACE_OF_BIRTH placeOfBirth', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'DATE_OF_BIRTH dateOfBirth', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'MOBILE_NUMBER mobileNumber', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'EMAIL email', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'USERNAME username', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'CUSTOMER_TYPE customerType', from user_tab_columns, dual");
// stringBuilder.append(" where table_name = 'CUSTOMER'");
// stringBuilder.append(" )");
//
// stringBuilder.append(" select * from column_name_temp");
// stringBuilder.append(" union all");
// stringBuilder.append(" select title columnName, 0 isFix ");
// stringBuilder.append(" from customize_fields, dual");
// stringBuilder.append(" where function_code = 'CUSTOMER'");
// stringBuilder.append(" and site_id = :p_company_site_id");
// stringBuilder.append(" and STATUS = 1");
// stringBuilder.append(" and active = 1 ");
// params.put("p_company_site_id", customizeFields.getSiteId());
// params.put("p_customer_id", customizeFields.getCustomerId());
// LOGGER.info("SQL statement: " + stringBuilder);
// list = namedParameterJdbcTemplate.query(stringBuilder.toString(), params, BeanPropertyRowMapper.newInstance(CustomizeFielObjectDTO.class));
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
resultDTO.setListData(lstCustomizeFields);
......@@ -1829,7 +1892,8 @@ public class CustomerServiceImpl implements CustomerService {
@Override
public ResultDTO searchCustomizeFields(int page, int pageSize, long SiteId, long campaignId, CustomerQueryDTO customerQueryDTO) {
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO searchCustomizeFields(CampaignCustomerDTO campaignCustomerDTO) {
ResultDTO resultDTO = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
......@@ -1857,90 +1921,65 @@ public class CustomerServiceImpl implements CustomerService {
sb.append(" C.CUSTOMER_TYPE customerType,");
sb.append(" C.COMPANY_NAME companyName,");
sb.append(" C.PLACE_OF_BIRTH placeOfBirth,");
sb.append(" C.CUSTOMER_TYPE customerType,");
sb.append(" C.EMAIL email,");
sb.append(" C.USERNAME username,");
sb.append(" C.NAME name,");
sb.append(" C.MOBILE_NUMBER mobileNumber,");
sb.append(" C.STATUS status,");
sb.append(" C.SITE_ID siteId,");
sb.append(" CF.FUNCTION_CODE functionCode,");
sb.append(" CFO.ACTIVE active,");
sb.append(" CF.ACTIVE active,");
sb.append(" CFO.*");
sb.append("FROM CUSTOMER C");
sb.append(" FROM CUSTOMER C");
sb.append(" INNER JOIN CUSTOMIZE_FIELD_OBJECT CFO ON C.CUSTOMER_ID = CFO.OBJECT_ID");
sb.append(" INNER JOIN CUSTOMIZE_FIELDS CF ON CF.CUSTOMIZE_FIELD_ID = CFO.CUSTOMIZE_FIELDS_ID\n" +
"WHERE 1 = 1");
" WHERE 1 = 1");
sb.append(" and CFO.STATUS = 1");
sb.append(" and active = 1 ");
sb.append(" and CF.FUNCTION_CODE = 'CUSTOMER' ");
List<CustomerQueryDTO> queryCustomer = new ArrayList<>();
for (int i = 0; i < queryCustomer.size(); i++) {
sb.append(queryCustomer.get(i).getJoin() + " " +
queryCustomer.get(i).getOperator() + " " + queryCustomer.get(i).getField() + " " + queryCustomer.get(i).getCondition());
}
for (int i = 0; i < campaignCustomerDTO.getListQuery().size(); i++) {
sb.append( campaignCustomerDTO.getListQuery().get(i).getJoin() + " "
+ campaignCustomerDTO.getListQuery().get(i).getField() + " "
+ campaignCustomerDTO.getListQuery().get(i).getOperator() + " "
+ campaignCustomerDTO.getListQuery().get(i).getCondition());
}
SQLQuery query = session.createSQLQuery(sb.toString());
// query.setParameter("p_company_site_id", companySiteId);
// query.setParameter("p_customer_list_id", customerListId);
//
// if (!DataUtil.isNullOrEmpty(name)) {
// query.setParameter("p_name", "%" +
// name.replace("\\", "\\\\")
// .replaceAll("%", "\\%")
// .replaceAll("_", "\\_")
// + "%");
// }
//
// if (!DataUtil.isNullOrEmpty(mobileNumber)) {
// query.setParameter("p_mobile_number", "%" +
// mobileNumber.replace("\\", "\\\\")
// .replaceAll("%", "\\%")
// .replaceAll("_", "\\_")
// + "%");
// }
//
// if (!DataUtil.isNullOrEmpty(email)) {
// query.setParameter("p_email", "%" +
// email.replace("\\", "\\\\")
// .replaceAll("%", "\\%")
// .replaceAll("_", "\\_")
// + "%");
// }
query.addScalar("customerID", new LongType());
query.addScalar("name", new StringType());
query.addScalar("username", new StringType());
query.addScalar("customerId", new LongType());
query.addScalar("name", new StringType());
query.addScalar("description", new StringType());
query.addScalar("userName", new StringType());
query.addScalar("companyName", new StringType());
query.addScalar("customerType", new StringType());
query.addScalar("customerType", new LongType());
query.addScalar("currentAddress", new StringType());
query.addScalar("mobileNumber", new StringType());
query.addScalar("email", new StringType());
query.addScalar("placeOfBirth",new StringType());
query.addScalar("dateOfBirth", new DateType());
query.addScalar("status", new ShortType());
query.addScalar("siteId",new LongType());
query.addScalar("active",new StringType());
query.setResultTransformer(Transformers.aliasToBean(CustomizeRequestDTo.class));
query.setResultTransformer(Transformers.aliasToBean(CampaignCustomerDTO.class));
int count = 0;
List<CustomerCustomDTO> dtoList = query.list();
List<CampaignCustomerDTO> dtoList = query.list();
if (dtoList.size() > 0) {
count = query.list().size();
}
Pageable pageable = PageRequest.of(page, pageSize);
Pageable pageable = PageRequest.of( campaignCustomerDTO.getPage(), campaignCustomerDTO.getPageSize());
if (pageable != null) {
query.setFirstResult(pageable.getPageNumber() * pageable.getPageSize());
query.setMaxResults(pageable.getPageSize());
}
List<CustomerCustomDTO> data = query.list();
Page<CustomerCustomDTO> dataPage = new PageImpl<>(data, pageable, count);
List<CampaignCustomerDTO> data = query.list();
Page<CampaignCustomerDTO> dataPage = new PageImpl<>(data, pageable, count);
resultDTO.setData(dataPage);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
} finally {
......
......@@ -239,6 +239,8 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
return resultDTO;
}
try {
scenarioQuestionDTO.setCode(scenarioQuestionDTO.getCode().trim());
scenarioQuestionDTO.setQuestion(scenarioQuestionDTO.getQuestion().trim());
ScenarioQuestion scenarioQuestion = modelMapper.map(scenarioQuestionDTO, ScenarioQuestion.class);
if (scenarioQuestion.getScenarioQuestionId() != null) {
......@@ -271,6 +273,8 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
campaignLogAnswer.setCampaignId(scenarioQuestion.getCampaignId());
if (item.getScenarioAnswerId() != null) {
item.setCode(item.getCode().trim());
item.setAnswer(item.getAnswer().trim());
ScenarioAnswer answer = modelMapper.map(item, ScenarioAnswer.class);
scenarioAnswerRepository.save(answer);
campaignLogAnswer.setCustomerId(answer.getScenarioAnswerId());
......@@ -281,6 +285,7 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
item.setScenarioQuestionId(scenarioQuestion.getScenarioQuestionId());
item.setCreateTime(new Date());
item.setStatus((short) 1);
item.setAnswer(item.getAnswer().trim());
ScenarioAnswer answer = modelMapper.map(item, ScenarioAnswer.class);
scenarioAnswerRepository.save(answer);
campaignLogAnswer.setCustomerId(answer.getScenarioAnswerId());
......
......@@ -72,6 +72,9 @@ public class ScenarioServiceImpl implements ScenarioService {
public ResultDTO update(ScenarioDTO scenarioDTO) {
ResultDTO resultDTO = new ResultDTO();
try {
scenarioDTO.setCode(scenarioDTO.getCode().trim());
if (scenarioDTO.getDescription() != null) scenarioDTO.setDescription(scenarioDTO.getDescription().trim());
else scenarioDTO.setDescription("");
scenarioDTO.setUpdateBy(null);
scenarioDTO.setUpdateTime(new Date());
......@@ -368,10 +371,10 @@ public class ScenarioServiceImpl implements ScenarioService {
if (rawDataList.get(i)[4] == null && rawDataList.get(i)[4].toString().trim().equals("")) {
sb.append(BundleUtils.getLangString("scenario.hashInput.required"));
}
if((rawDataList.get(i)[7] != null && !rawDataList.get(i)[7].toString().trim().equals(""))) {
if((rawDataList.get(i)[7].toString().trim().equals(tmpCurrentQuestionCode)) ||
if ((rawDataList.get(i)[7] != null && !rawDataList.get(i)[7].toString().trim().equals(""))) {
if ((rawDataList.get(i)[7].toString().trim().equals(tmpCurrentQuestionCode)) ||
validateMappingQuestion(rawDataList.get(i)[7].toString().trim(), tmpCurrentQuestionCode, lstImportQuestionCodes))
sb.append(BundleUtils.getLangString("scenario.mappingQuestion.invalid"));
sb.append(BundleUtils.getLangString("scenario.mappingQuestion.invalid"));
}
}
......@@ -415,12 +418,12 @@ public class ScenarioServiceImpl implements ScenarioService {
}
private boolean validateMappingQuestion(String mappingQuestion, String currentQuestionCode, List<String> lstQuestionCode) {
if(mappingQuestion == currentQuestionCode) return false;
if (mappingQuestion == currentQuestionCode) return false;
String duplicateCode = lstQuestionCode.stream().
filter(p -> (p.equals(mappingQuestion) && p.equals(currentQuestionCode))).
findAny().orElse(null);
if(duplicateCode == null) return false;
if (duplicateCode == null) return false;
// String notMappedCode = lstQuestionCode.stream().filter(p -> (!p.equals(mappingQuestion))).findAny().orElse(null);
// if(notMappedCode != null) return false;
......
package com.viettel.campaign.web.dto;
import com.viettel.campaign.web.dto.request_dto.CustomerQueryDTO;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import java.util.List;
@Getter
@Setter
......@@ -27,4 +29,7 @@ public class CampaignCustomerDTO extends BaseDTO{
private Long companySiteId;
private Long complainId;
private String lstCustomerId;
private List<CustomerQueryDTO> listQuery;
}
package com.viettel.campaign.web.dto;
import com.viettel.campaign.web.dto.request_dto.CustomerQueryDTO;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
import java.util.List;
@Getter
@Setter
......@@ -29,4 +31,5 @@ public class CustomizeFieldsDTO extends BaseDTO {
private Long min;
private Long max;
private Long active;
}
......@@ -11,4 +11,5 @@ public class CustomerQueryDTO extends BaseDTO {
String field;
String operator;
String condition;
}
......@@ -12,6 +12,7 @@ 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.CustomerQueryDTO;
import com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO;
import com.viettel.campaign.web.dto.request_dto.CustomizeRequestDTo;
import com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO;
......@@ -322,4 +323,13 @@ public class CustomerController {
ResultDTO resultDTO = customerService.listCustomizeFields(customizeRequestDTo);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
@PostMapping("/searchCustomizeFields")
@ResponseBody
public ResponseEntity searchCustomizeFields(@RequestBody CampaignCustomerDTO campaignCustomerDTO ) {
ResultDTO result = customerService.searchCustomizeFields(campaignCustomerDTO);
return new ResponseEntity<>(result, HttpStatus.OK);
}
}
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