Commit 57d1fca3 authored by đinh thị đầm's avatar đinh thị đầm

search customize fields

parent f8bf5b8a
...@@ -1893,152 +1893,156 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1893,152 +1893,156 @@ public class CustomerServiceImpl implements CustomerService {
Session session = sessionFactory.openSession(); Session session = sessionFactory.openSession();
session.beginTransaction(); session.beginTransaction();
Map<String, String> requestCustomer = new HashMap<>();
requestCustomer.put("-1" ,"c.code");
requestCustomer.put("-2" ,"c.name");
requestCustomer.put("-3" ,"c.company_name");
requestCustomer.put("-4" ,"c.gender");
requestCustomer.put("-5" ,"c.current_address");
requestCustomer.put("-6" ,"c.place_of_birth");
requestCustomer.put("-7" ,"c.date_of_birth");
requestCustomer.put("-8" ,"cc.contact");
requestCustomer.put("-9" ,"cc2.contact");
requestCustomer.put("-10" ,"c.username");
requestCustomer.put("-11" ,"c.area_code");
requestCustomer.put("-12" ,"c.customer_type");
requestCustomer.put("-13" ,"c.call_allowed");
requestCustomer.put("-14" ,"c.email_allowed");
requestCustomer.put("-15" ,"c.sms_allowed");
requestCustomer.put("-16" ,"c.ipcc_status");
try { try {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("select"); sb.append("select c.customer_id customerId,");
sb.append(" C.NAME name,"); sb.append(" C.NAME name,");
sb.append(" C.CUSTOMER_ID customerID,"); sb.append(" cc.contact mobile_phone,");
sb.append(" C.USERNAME username,"); sb.append(" cc2.contact email,");
sb.append(" C.GENDER gender,"); sb.append(" c.customer_type customerType,");
sb.append(" C.COMPANY_NAME companyName,");
sb.append(" C.DATE_OF_BIRTH dateOfBirth,");
sb.append(" C.CUSTOMER_TYPE customerType,");
sb.append(" C.COMPANY_NAME companyName,"); sb.append(" C.COMPANY_NAME companyName,");
sb.append(" C.PLACE_OF_BIRTH placeOfBirth,"); sb.append(" c.current_address currentAddress,");
sb.append(" C.EMAIL email,"); sb.append(" c.Description description,");
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(" 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 CUSTOMER_contact cc ON (C.CUSTOMER_ID = Cc.customer_id " +
sb.append(" INNER JOIN CUSTOMIZE_FIELDS CF ON CF.CUSTOMIZE_FIELD_ID = CFO.CUSTOMIZE_FIELDS_ID\n" + "and cc.status = 1 and cc.contact_type = 5)");
sb.append(" INNER JOIN CUSTOMER_contact Cc2 ON (C.CUSTOMER_ID = Cc2.customer_id and cc2.status = 1 and cc2.contact_type = 2)" +
" WHERE "); " WHERE ");
sb.append(" CFO.STATUS = 1"); sb.append("inner join customize_field_object cfo on c.customer_id = cfo.object_id and cfo.status = 1");
sb.append(" AND CF.ACTIVE = 1 "); sb.append(" C.STATUS = 1");
sb.append(" AND CF.FUNCTION_CODE = 'CUSTOMER' "); sb.append(" AND C.customer_id not in (select customer_id from campaign_customer where campaign_id = :p_campaign_id) ");
List<CustomerQueryDTO> customerDTOList = campaignCustomerDTO.getListQuery(); List<CustomerQueryDTO> customerDTOList = campaignCustomerDTO.getListQuery();
// sb.append( if (customerDTOList.get(0).getField() > 0) {
// customerDTOList.get(0).getField() + " " switch (customerDTOList.get(0).getType()) {
// + customerDTOList.get(0).getOperator() + " " case "combobox":
// + customerDTOList.get(0).getCondition() + " "); sb.append("and (cfo.customize_field_id ="+customerDTOList.get(0).getField()+" and cfo.field_option_value_id"+customerDTOList.get(0).getOperator()+""+customerDTOList.get(0).getCondition()+")");
// for (int i = 1; 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() + " ");
// Map<String, String> requestCustomer = new HashMap<>();
// requestCustomer.put("-1" ,"Mã Khách Hàng");
// requestCustomer.put("-2" ,"Tên khách hàng");
// requestCustomer.put("-3" ,"Tên công ty");
// requestCustomer.put("-4" ,"Giới tính");
// requestCustomer.put("-5" ,"Địa chỉ");
// requestCustomer.put("-6" ,"Nơi sinh");
// requestCustomer.put("-7" ,"Ngày sinh");
// requestCustomer.put("-8" ,"Số điện thoại");
// requestCustomer.put("-9" ,"email");
// requestCustomer.put("-10" ,"Tên đăng nhập");
// requestCustomer.put("-11" ,"Loại Khách hàng");
// sb.append("and "+customerDTOList.get(0).getField());
// for (int i = 1; i < customerDTOList.size(); i++) {
//
// }
for (CustomerQueryDTO query : customerDTOList) {
if (query.getJoin() == null) {
sb.append("AND ");
} else {
sb.append(query.getJoin() + " ");
// if ("like".equals(query.getOperator()) || "not like".equals(query.getOperator())) {
// sb.append("%"+ query.getCondition() + "% ");
// } else {
// sb.append(query.getCondition());
// }
}
switch (query.getField() + "") {
case "-1":
sb.append(" C.CUSTOMER_ID " + query.getOperator() + " '%" + query.getCondition() + "%' ");
break;
case "-2":
sb.append(" C.NAME " + query.getOperator() + " '%" + query.getCondition() + "%' ");
break; break;
case "-3": case "text":
sb.append(" C.COMPANY_NAME " + query.getOperator() + " '%" + query.getCondition() + "%' "); sb.append("and (cfo.customize_field_id ="+customerDTOList.get(0).getField()+" and cfo.value_text"+customerDTOList.get(0).getOperator()+""+customerDTOList.get(0).getCondition()+")");
break; break;
case "-4": case "date":
sb.append(" C.GENDER " + query.getOperator() + " '%" + query.getCondition() + "%' "); sb.append("and (cfo.customize_field_id ="+customerDTOList.get(0).getField()+" and cfo.value_date"+customerDTOList.get(0).getOperator()+""+customerDTOList.get(0).getCondition()+")");
break; break;
case "-5": case "number":
sb.append(" C.CURRENT_ADDRESS " + query.getOperator() + " '%" + query.getCondition() + "%' "); sb.append("and (cfo.customize_field_id ="+customerDTOList.get(0).getField()+" and cfo.value_number"+customerDTOList.get(0).getOperator()+""+customerDTOList.get(0).getCondition()+")");
break; break;
case "-6": case "checkbox":
sb.append( " C.PLACE_OF_BIRTH " + query.getOperator() + "to_date(" + query.getCondition() + ", 'dd/mm/yyyy')"); sb.append("and (cfo.customize_field_id ="+customerDTOList.get(0).getField()+" and cfo.value_checkbox"+customerDTOList.get(0).getOperator()+""+customerDTOList.get(0).getCondition()+")");
break; break;
case "-7": }} else {
sb.append(" C.DATE_OF_BIRTH " + query.getOperator() + "to_date(" + query.getCondition() + ", 'dd/mm/yyyy')"); sb.append("and "+requestCustomer.get(customerDTOList.get(0).getField())+""+customerDTOList.get(0).getOperator()+""+customerDTOList.get(0).getCondition());
break; }
case "-8": for (int i = 1; i < campaignCustomerDTO.getListQuery().size(); i++) {
sb.append(" C.MOBILE_NUMBER " + query.getOperator() + " '%" + query.getCondition() + "%' "); sb.append(" " + customerDTOList.get(i).getJoin() + " "
break; + requestCustomer.get(customerDTOList.get(i).getField()) + " "
case "-9": + customerDTOList.get(i).getOperator() + " "
sb.append(" C.EMAIL " + query.getOperator() + " '%" + query.getCondition() + "%' "); + customerDTOList.get(i).getCondition() + " ");
break;
case "-10":
sb.append(" C.USER_NAME " + query.getOperator() + " '%" + query.getCondition() + "%' "); // for (CustomerQueryDTO query : customerDTOList) {
break; // if (query.getJoin() == null) {
case "-11": // sb.append("AND ");
sb.append(" C.CUSTOMER_TYPE " + query.getOperator() + " '%" + query.getCondition() + "%' "); // } else {
break; // sb.append(query.getJoin() + " ");
} //// if ("like".equals(query.getOperator()) || "not like".equals(query.getOperator())) {
//// sb.append("%"+ query.getCondition() + "% ");
//// } else {
// if (query.getField() == -1) { //// sb.append(query.getCondition());
// sb.append(query.getJoin() + " C.CUSTOMER_ID " + query.getOperator() + " %" + query.getCondition() + "% "); //// }
// } else if (query.getField() == -2) {
// sb.append(query.getJoin() + "C.NAME " + query.getOperator() + " %" + query.getCondition() + "% ");
// } else if (query.getField() == -3) {
// sb.append(query.getJoin() + " C.COMPANY_NAME " + query.getOperator() + " %" + query.getCondition() + "% ");
// } else if (query.getField() == -4) {
// sb.append(query.getJoin() + " C.GENDER " + query.getOperator() + " %" + query.getCondition() + "% ");
// } else if (query.getField() == -5) {
// sb.append(query.getJoin() + " C.CURRENT_ADDRESS " + query.getOperator() + " %" + query.getCondition() + "% ");
// } else if (query.getField() == -6) {
// sb.append(query.getJoin() + " C.PLACE_OF_BIRTH " + query.getOperator() + " %" + query.getCondition() + "% ");
// } else if (query.getField() == -7) {
// sb.append(query.getJoin() + " C.DATE_OF_BIRTH " + query.getOperator() + " %" + query.getCondition() + "% ");
// } else if (query.getField() == -8) {
// sb.append(query.getJoin() + " C.MOBILE_NUMBER " + query.getOperator() + " %" + query.getCondition() + "% ");
// } else if (query.getField() == -9) {
// sb.append(query.getJoin() + " C.EMAIL " + query.getOperator() + " %" + query.getCondition() + "% ");
// } else if (query.getField() == -10) {
// sb.append(query.getJoin() + " C.USER_NAME " + query.getOperator() + " %" + query.getCondition() + "% ");
// } else if (query.getField() == -11) {
// sb.append(query.getJoin() + " C.CUSTOMER_TYPE " + query.getOperator() + " %" + query.getCondition() + "% ");
// } // }
//
// switch (query.getField() + "") {
// case "-1":
// sb.append(" C.CUSTOMER_ID " + query.getOperator() + " '%" + query.getCondition() + "%' ");
// break;
// case "-2":
// sb.append(" C.NAME " + query.getOperator() + " '%" + query.getCondition() + "%' ");
// break;
// case "-3":
// sb.append(" C.COMPANY_NAME " + query.getOperator() + " '%" + query.getCondition() + "%' ");
// break;
// case "-4":
// sb.append(" C.GENDER " + query.getOperator() + " '%" + query.getCondition() + "%' ");
// break;
// case "-5":
// sb.append(" C.CURRENT_ADDRESS " + query.getOperator() + " '%" + query.getCondition() + "%' ");
// break;
// case "-6":
// sb.append( " C.PLACE_OF_BIRTH " + query.getOperator() + "to_date(" + query.getCondition() + ", 'dd/mm/yyyy')");
// break;
// case "-7":
// sb.append(" C.DATE_OF_BIRTH " + query.getOperator() + "to_date(" + query.getCondition() + ", 'dd/mm/yyyy')");
// break;
// case "-8":
// sb.append(" C.MOBILE_NUMBER " + query.getOperator() + " '%" + query.getCondition() + "%' ");
// break;
// case "-9":
// sb.append(" C.EMAIL " + query.getOperator() + " '%" + query.getCondition() + "%' ");
// break;
// case "-10":
// sb.append(" C.USER_NAME " + query.getOperator() + " '%" + query.getCondition() + "%' ");
// break;
// case "-11":
// sb.append(" C.CUSTOMER_TYPE " + query.getOperator() + " '%" + query.getCondition() + "%' ");
// break;
// }
//
//
//// if (query.getField() == -1) {
//// sb.append(query.getJoin() + " C.CUSTOMER_ID " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -2) {
//// sb.append(query.getJoin() + "C.NAME " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -3) {
//// sb.append(query.getJoin() + " C.COMPANY_NAME " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -4) {
//// sb.append(query.getJoin() + " C.GENDER " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -5) {
//// sb.append(query.getJoin() + " C.CURRENT_ADDRESS " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -6) {
//// sb.append(query.getJoin() + " C.PLACE_OF_BIRTH " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -7) {
//// sb.append(query.getJoin() + " C.DATE_OF_BIRTH " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -8) {
//// sb.append(query.getJoin() + " C.MOBILE_NUMBER " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -9) {
//// sb.append(query.getJoin() + " C.EMAIL " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -10) {
//// sb.append(query.getJoin() + " C.USER_NAME " + query.getOperator() + " %" + query.getCondition() + "% ");
//// } else if (query.getField() == -11) {
//// sb.append(query.getJoin() + " C.CUSTOMER_TYPE " + query.getOperator() + " %" + query.getCondition() + "% ");
//// }
//
//
} }
SQLQuery query = session.createSQLQuery(sb.toString()); SQLQuery query = session.createSQLQuery(sb.toString());
query.addScalar("customerId", new LongType());
query.addScalar("name", new StringType()); query.addScalar("name", new StringType());
query.addScalar("userName", new StringType()); query.addScalar("customerId", new LongType());
query.addScalar("companyName", new StringType()); query.addScalar("mobile_phone", new StringType());
query.addScalar("email", new StringType());
query.addScalar("customerType", new LongType()); query.addScalar("customerType", new LongType());
query.addScalar("companyName", new StringType());
query.addScalar("currentAddress", new StringType()); query.addScalar("currentAddress", new StringType());
query.addScalar("mobileNumber", new StringType()); query.addScalar("description", 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(CampaignCustomerDTO.class)); query.setResultTransformer(Transformers.aliasToBean(CampaignCustomerDTO.class));
......
package com.viettel.campaign.web.dto.request_dto; package com.viettel.campaign.web.dto.request_dto;
import com.viettel.campaign.web.dto.BaseDTO; import com.viettel.campaign.web.dto.BaseDTO;
import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@AllArgsConstructor
@NoArgsConstructor
public class CustomerQueryDTO extends BaseDTO { public class CustomerQueryDTO extends BaseDTO {
String join ; String join ;
Long field; Long field;
String operator; String operator;
String condition; String condition;
String type;
} }
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