Commit 338033d7 authored by đinh thị đầm's avatar đinh thị đầm

searchCustomize

parent ce797e37
......@@ -86,6 +86,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);
}
......@@ -1761,44 +1761,6 @@ public class CustomerServiceImpl implements CustomerService {
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);
......@@ -1812,19 +1774,21 @@ 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();
Session session = sessionFactory.openSession();
session.beginTransaction();
if (DataUtil.isNullOrZero(SiteId)) {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
return resultDTO;
}
// if (DataUtil.isNullOrZero(customizeFieldsDTO.getSiteId())) {
// resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
// resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
// return resultDTO;
// }
try {
......@@ -1841,90 +1805,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 {
......
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;
......@@ -308,4 +309,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