Commit e0c3f068 authored by ='s avatar =

hungtt-commit

parent 47677e80
...@@ -61,6 +61,10 @@ public interface CustomerService { ...@@ -61,6 +61,10 @@ public interface CustomerService {
ResultDTO deleteCustomerFromCampaign(CampaignCustomerDTO campaignCustomerDTO); ResultDTO deleteCustomerFromCampaign(CampaignCustomerDTO campaignCustomerDTO);
ResultDTO searchCampaignInformation(CampaignCustomerDTO campaignCustomerDTO);
ResultDTO addCustomerToCampaign(CampaignCustomerDTO campaignCustomerDTO);
// ------------ customer ------------ // // ------------ customer ------------ //
......
...@@ -1660,6 +1660,85 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1660,6 +1660,85 @@ public class CustomerServiceImpl implements CustomerService {
return resultDTO; return resultDTO;
} }
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO searchCampaignInformation(CampaignCustomerDTO campaignCustomerDTO) {
ResultDTO resultDTO = new ResultDTO();
List<CampaignInformationDTO> list = new ArrayList<>();
Map<String, Object> params = new HashMap<>();
try {
StringBuilder sb = new StringBuilder();
sb.append(" with status_customer as (\n" +
"select complete_value\n" +
"from campaign_complete_code\n" +
"where complete_value <> 4\n" +
" and is_finish <> 1\n" +
" and campaign_type = 1\n" +
" and company_site_id = :p_company_site_id\n" +
"),\n" +
"count_customer as (\n" +
"select campaign_id campaignId,\n" +
" sum(case\n" +
" when customer_list_id is null then 1\n" +
" else 0\n" +
" end) totalIndividual,\n" +
" sum(case\n" +
" when customer_list_id is not null then 1\n" +
" else 0\n" +
" end) totalCusInList\n" +
"from campaign_customer\n" +
"group by campaign_id\n" +
")\n" +
"select a.*, b.customer_number campaignCustomer\n" +
"from count_customer a\n" +
"left join campaign b on a.campaignId = b.campaign_id\n" +
"where a.campaignId = :p_campaign_id");
params.put("p_campaign_id", campaignCustomerDTO.getCampaignId());
params.put("p_company_site_id", campaignCustomerDTO.getCompanySiteId());
list = namedParameterJdbcTemplate.query(sb.toString(), params, BeanPropertyRowMapper.newInstance(CampaignInformationDTO.class));
if (list.size() > 0) {
resultDTO.setData(list.get(0));
} else {
resultDTO.setData(null);
}
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);
}
return resultDTO;
}
@Override
public ResultDTO addCustomerToCampaign(CampaignCustomerDTO campaignCustomerDTO) {
ResultDTO resultDTO = new ResultDTO();
Long companySiteId = campaignCustomerDTO.getCompanySiteId();
Long campaignId = campaignCustomerDTO.getCampaignId();
String[] lstCusId = campaignCustomerDTO.getLstCustomerId().split(",");
try {
for (String cusId: lstCusId) {
CampaignCustomer entity = new CampaignCustomer();
entity.setCompanySiteId(companySiteId);
entity.setStatus((short) 0);
entity.setCampaignId(campaignId);
entity.setCustomerId(Long.parseLong(cusId));
entity.setRecallCount(0L);
entity.setInCampaignStatus((short) 1);
campaignCustomerRepository.save(entity);
}
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);
}
return resultDTO;
}
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
...@@ -1738,67 +1817,40 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1738,67 +1817,40 @@ public class CustomerServiceImpl implements CustomerService {
List<CustomizeFielObjectDTO> list; List<CustomizeFielObjectDTO> list;
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
try { try {
// stringBuilder.append(" with column_name_temp as ("); stringBuilder.append(" with column_name_temp as (");
// stringBuilder.append(" select 'CUSTOMER_ID' ,1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'CUSTOMER_ID customerId' ,1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'CUSTOMER_NAME' ,1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'CUSTOMER_NAME customerName' ,1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'CUSTOMER_TYPE' ,1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'CUSTOMER_TYPE customerType' ,1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'NAME' ,1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'NAME name' ,1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'CURRENT_ADDRESS', 1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'CURRENT_ADDRESS currentAssress', 1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'PLACE_OF_BIRTH', 1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'PLACE_OF_BIRTH placeOfBirth', 1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'DATE_OF_BIRTH', 1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'DATE_OF_BIRTH dateOfBirth', 1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'MOBILE_NUMBER', 1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'MOBILE_NUMBER mobileNumber', 1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'EMAIL', 1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'EMAIL email', 1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'USERNAME', 1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'USERNAME username', 1 isFix from user_tab_columns, dual");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select 'CUSTOMER_TYPE', 1 isFix from user_tab_columns, dual"); stringBuilder.append(" select 'CUSTOMER_TYPE customerType', 1 isFix from user_tab_columns, dual");
// stringBuilder.append(" where table_name = 'CUSTOMER'"); stringBuilder.append(" where table_name = 'CUSTOMER'");
// stringBuilder.append(" )"); stringBuilder.append(" )");
//
// stringBuilder.append(" select * from column_name_temp"); stringBuilder.append(" select * from column_name_temp");
// stringBuilder.append(" union all"); stringBuilder.append(" union all");
// stringBuilder.append(" select title columnName, 0 isFix "); stringBuilder.append(" select title columnName, 0 isFix ");
// stringBuilder.append(" from customize_fields, dual"); stringBuilder.append(" from customize_fields, dual");
// stringBuilder.append(" where function_code = 'CUSTOMER'"); stringBuilder.append(" where function_code = 'CUSTOMER'");
// stringBuilder.append(" and site_id = :p_company_site_id"); stringBuilder.append(" and site_id = :p_company_site_id");
// stringBuilder.append(" and STATUS = 1"); stringBuilder.append(" and STATUS = 1");
// stringBuilder.append(" and active = 1 ");
stringBuilder.append("SELECT C.NAME name," +
" C.CUSTOMER_ID customerID," +
" C.CURRENT_ADDRESS currentAddress," +
" C.USERNAME username," +
" C.GENDER gender," +
" C.COMPANY_NAME companyName," +
" C.DATE_OF_BIRTH dateOfBirth," +
" C.COMPANY_NAME companyName," +
" C.CUSTOMER_TYPE customerType," +
" C.PLACE_OF_BIRTH placeOfBirth," +
" C.CUSTOMER_TYPE customerType," +
" C.EMAIL email," +
" C.USERNAME username," +
" C.NAME name," +
" C.MOBILE_NUMBER mobileNumber," +
" C.SITE_ID siteId," +
" C.STATUS status," +
" CF.FUNCTION_CODE functionCode," +
" CF.ACTIVE active," +
" CFO.*");
stringBuilder.append("FROM CUSTOMER C");
stringBuilder.append(" INNER JOIN CUSTOMIZE_FIELD_OBJECT CFO ON C.CUSTOMER_ID = CFO.OBJECT_ID");
stringBuilder.append(" INNER JOIN CUSTOMIZE_FIELDS CF ON CF.CUSTOMIZE_FIELD_ID = CFO.CUSTOMIZE_FIELDS_ID\n" +
"WHERE 1 = 1");
// stringBuilder.append(" and C.SITE_ID = :p_company_site_id");
stringBuilder.append(" and CF.STATUS = 1");
stringBuilder.append(" and active = 1 "); stringBuilder.append(" and active = 1 ");
stringBuilder.append(" and CF.FUNCTION_CODE = 'CUSTOMER' ");
params.put("p_company_site_id", customizeFields.getSiteId()); params.put("p_company_site_id", customizeFields.getSiteId());
params.put("p_customer_id", customizeFields.getCustomerId()); params.put("p_customer_id", customizeFields.getCustomerId());
LOGGER.info("SQL statement: " + stringBuilder); LOGGER.info("SQL statement: " + stringBuilder);
......
...@@ -16,4 +16,5 @@ public class CampaignInformationDTO { ...@@ -16,4 +16,5 @@ public class CampaignInformationDTO {
private Long totalNotCall; private Long totalNotCall;
private Long campaignCustomer; private Long campaignCustomer;
private Long customerListId; private Long customerListId;
private Long totalCusInList;
} }
...@@ -260,6 +260,20 @@ public class CustomerController { ...@@ -260,6 +260,20 @@ public class CustomerController {
return new ResponseEntity<>(resultDTO, HttpStatus.OK); return new ResponseEntity<>(resultDTO, HttpStatus.OK);
} }
@PostMapping("/searchCampaignInformation")
@ResponseBody
public ResponseEntity<?> searchCampaignInformation(@RequestBody CampaignCustomerDTO dto) {
ResultDTO resultDTO = customerService.searchCampaignInformation(dto);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
@PostMapping("/addCustomerToCampaign")
@ResponseBody
public ResponseEntity<?> addCustomerToCampaign(@RequestBody CampaignCustomerDTO dto) {
ResultDTO resultDTO = customerService.addCustomerToCampaign(dto);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
private String saveUploadFile(MultipartFile file) { private String saveUploadFile(MultipartFile file) {
......
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