Commit 38ec4254 authored by ='s avatar =

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
parents e0c3f068 09ab6b28
...@@ -32,25 +32,25 @@ public class CorsFilter implements Filter { ...@@ -32,25 +32,25 @@ public class CorsFilter implements Filter {
chain.doFilter(req, response); chain.doFilter(req, response);
// if ("OPTIONS".equalsIgnoreCase(request.getMethod())) { if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
// chain.doFilter(req, resp); chain.doFilter(req, resp);
// return; return;
// } }
// if ("/".equals(request.getRequestURI())) { if ("/".equals(request.getRequestURI())) {
// chain.doFilter(req, resp); chain.doFilter(req, resp);
// return; return;
// } }
// String xAuthToken = request.getHeader("X-Auth-Token"); String xAuthToken = request.getHeader("X-Auth-Token");
// if (xAuthToken == null || "".equals(xAuthToken)) { if (xAuthToken == null || "".equals(xAuthToken)) {
// response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is null."); response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is null.");
// return; return;
// } }
// Object obj = RedisUtil.getInstance().get(xAuthToken); Object obj = RedisUtil.getInstance().get(xAuthToken);
// if (obj instanceof UserSession) { if (obj instanceof UserSession) {
// chain.doFilter(req, resp); chain.doFilter(req, resp);
// } else { } else {
// response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is invalid."); response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is invalid.");
// } }
} }
@Override @Override
......
...@@ -18,9 +18,9 @@ public interface CampaignExecuteRepository { ...@@ -18,9 +18,9 @@ public interface CampaignExecuteRepository {
List<ApParamDTO> getComboCampaignType(String companySiteId); List<ApParamDTO> getComboCampaignType(String companySiteId);
ResultDTO getInteractiveResult(CampaignRequestDTO dto); List<ContactCustResultDTO> getInteractiveResult(CampaignRequestDTO dto, Pageable pageable);
List<ContactCusResDTO> getExcelInteractiveResult(CampaignRequestDTO dto); List<ContactCustResultDTO> getExcelInteractiveResult(CampaignRequestDTO dto);
List<ContactCustResultDTO> getContactCustById(CampaignRequestDTO dto); List<ContactCustResultDTO> getContactCustById(CampaignRequestDTO dto);
//</editor-fold: hungtt> //</editor-fold: hungtt>
......
package com.viettel.campaign.repository.ccms_full; package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.CustomizeFields; import com.viettel.campaign.model.ccms_full.CustomizeFields;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
@Repository @Repository
@Transactional(DataSourceQualify.CCMS_FULL)
public interface CustomizeFieldsRepository extends JpaRepository<CustomizeFields, Long> { public interface CustomizeFieldsRepository extends JpaRepository<CustomizeFields, Long> {
List<CustomizeFields> findCustomizeFieldsByFunctionCodeEqualsAndStatusAndActiveAndSiteId(String functionCode, Long status, Long active, Long siteId); List<CustomizeFields> findCustomizeFieldsByFunctionCodeEqualsAndStatusAndActiveAndSiteId(String functionCode, Long status, Long active, Long siteId);
List<CustomizeFields> findByFunctionCodeAndActiveAndStatusAndSiteId(String functionCode, Long active, Long status, Long siteId);
} }
...@@ -7,15 +7,18 @@ import com.viettel.campaign.repository.ccms_full.TimeZoneDialModeRepository; ...@@ -7,15 +7,18 @@ import com.viettel.campaign.repository.ccms_full.TimeZoneDialModeRepository;
import com.viettel.campaign.utils.Constants; import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil; import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.utils.HibernateUtil; import com.viettel.campaign.utils.HibernateUtil;
import com.viettel.campaign.web.dto.*; import com.viettel.campaign.web.dto.ApParamDTO;
import com.viettel.campaign.web.dto.CampaignDTO;
import com.viettel.campaign.web.dto.ContactCustResultDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers; import org.hibernate.transform.Transformers;
import org.hibernate.type.DateType; import org.hibernate.type.DateType;
import org.hibernate.type.IntegerType;
import org.hibernate.type.LongType; import org.hibernate.type.LongType;
import org.hibernate.type.ShortType;
import org.hibernate.type.StringType; import org.hibernate.type.StringType;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -100,108 +103,156 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -100,108 +103,156 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO getInteractiveResult(CampaignRequestDTO dto) { public List<ContactCustResultDTO> getInteractiveResult(CampaignRequestDTO dto, Pageable pageable) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
List<ContactCusResDTO> list = new ArrayList<>(); List<ContactCustResultDTO> list = new ArrayList<>();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession(); Session session = sessionFactory.openSession();
session.beginTransaction(); session.beginTransaction();
try { try {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("with campaign_type_list as ("); sql.append("SELECT CCR.CONTACT_CUST_RESULT_ID AS contactCustResultId, ");
sql.append(" select trim (regexp_substr(:p_list_compaign_type, '[^,]+', 1, level)) campaign_type"); sql.append(" CCR.CREATE_TIME AS createTime, ");
sql.append(" from dual"); sql.append(" C.CAMPAIGN_CODE AS campaignCode, ");
sql.append(" connect by level <= regexp_count(:p_list_compaign_type, ',') +1"); sql.append(" C.CAMPAIGN_NAME AS campaignName, ");
sql.append(" ),"); sql.append(" VU.USER_NAME AS userName, ");
sql.append(" contact_status_list as ("); sql.append(" CCR.PHONE_NUMBER AS phoneNumber, ");
sql.append(" select trim (regexp_substr(:p_list_contact_status, '[^,]+', 1, level)) contact_status"); sql.append(" CUS.NAME AS customerName, ");
sql.append(" from dual"); sql.append(" CCR.START_CALL AS startCall, ");
sql.append(" connect by level <= regexp_count(:p_list_contact_status, ',') +1"); sql.append(" CC1.COMPLETE_NAME AS contactStatus, ");
sql.append(" ),"); sql.append(" CC2.COMPLETE_NAME AS surveyStatus, ");
sql.append(" survey_status_list as ("); sql.append(" C.STATUS AS status, ");
sql.append(" select trim (regexp_substr(:p_list_survey_status, '[^,]+', 1, level)) survey_status"); sql.append(" CCR.STATUS AS recordStatus, ");
sql.append(" from dual"); sql.append(" (( CCR.END_TIME - CCR.START_CALL ) * 24 * 60 * 60) AS callTime ");
sql.append(" connect by level <= regexp_count(:p_list_survey_status, ',') +1"); sql.append("FROM CONTACT_CUST_RESULT CCR ");
sql.append(" ),"); sql.append(" INNER JOIN CAMPAIGN C ON CCR.CAMPAIGN_ID = C.CAMPAIGN_ID ");
sql.append(" record_status_list as ("); sql.append(" INNER JOIN VSA_USERS VU ON CCR.AGENT_ID = VU.USER_ID ");
sql.append(" select trim (regexp_substr(:p_list_record_status, '[^,]+', 1, level)) record_status"); sql.append(" INNER JOIN CUSTOMER CUS ON CCR.CUSTOMER_ID = CUS.CUSTOMER_ID ");
sql.append(" from dual"); sql.append(" INNER JOIN CAMPAIGN_COMPLETE_CODE CC1 ON CCR.CONTACT_STATUS = CC1.COMPLETE_VALUE ");
sql.append(" connect by level <= regexp_count(:p_list_record_status, ',') +1"); sql.append(" LEFT JOIN CAMPAIGN_COMPLETE_CODE CC2 ON CCR.CALL_STATUS = CC2.COMPLETE_VALUE ");
sql.append(" ),"); sql.append("WHERE CCR.STATUS <> 0 ");
sql.append(" campaign_code_list as ("); sql.append(" AND CCR.COMPANY_SITE_ID = :p_company_site_id ");
sql.append(" select trim (regexp_substr(:p_list_campaign_code, '[^,]+', 1, level)) campaign_code"); sql.append(" AND to_date(CCR.CREATE_TIME, 'DD/MM/RR') >= to_date(:p_date_from, 'DD/MM/RR') ");
sql.append(" from dual"); sql.append(" AND to_date(CCR.CREATE_TIME, 'DD/MM/RR') <= to_date(:p_date_to, 'DD/MM/RR') ");
sql.append(" connect by level <= regexp_count(:p_list_campaign_code, ',') +1");
sql.append(" ),"); if (!DataUtil.isNullOrEmpty(dto.getCustomerId())) {
sql.append(" data_temp as ("); sql.append(" AND CCR.CUSTOMER_ID LIKE (:p_customer_id) ");
sql.append(" select a.contact_cust_result_id contactCustResultId,"); }
sql.append(" a.create_time createTime,");
sql.append(" b.campaign_code campaignCode,"); if (!DataUtil.isNullOrEmpty(dto.getCampaignType())) {
sql.append(" b.campaign_name campaignName,"); sql.append(" AND C.CAMPAIGN_TYPE IN (:p_list_compaign_type) ");
sql.append(" c.user_name userName,"); }
sql.append(" a.phone_number phoneNumber,");
sql.append(" d.name customerName,"); if (!DataUtil.isNullOrEmpty(dto.getContactStatus())) {
sql.append(" a.start_call startCall,"); sql.append(" AND CCR.CONTACT_STATUS IN (:p_list_contact_status) ");
sql.append(" e.complete_name contactStatus,"); }
sql.append(" f.complete_name surveyStatus,");
sql.append(" g.status status,"); if (!DataUtil.isNullOrEmpty(dto.getSurveyStatus())) {
sql.append(" a.status recordStatus,"); sql.append(" AND CCR.CALL_STATUS IN (:p_list_survey_status) ");
sql.append(" nvl((a.end_time - a.start_call)*24*60, 0) callTime"); }
sql.append(" from contact_cust_result a");
sql.append(" left join campaign b on a.campaign_id = b.campaign_id"); if (!DataUtil.isNullOrEmpty(dto.getRecordStatus())) {
sql.append(" left join vsa_users c on a.agent_id = c.user_id"); sql.append(" AND CCR.STATUS IN (:p_list_record_status) ");
sql.append(" left join customer d on a.customer_id = d.customer_id"); }
sql.append(" left join campaign_complete_code e on a.contact_status = e.complete_value");
sql.append(" left join campaign_complete_code f on a.call_status = e.complete_value"); if (!DataUtil.isNullOrEmpty(dto.getCampaignCode())) {
sql.append(" left join campaign g on a.campaign_id = g.campaign_id"); sql.append(" AND C.CAMPAIGN_CODE IN (:p_list_campaign_code) ");
sql.append(" where a.status <> 0"); }
sql.append(" and a.company_site_id = :p_company_site_id");
sql.append(" and a.create_time >= to_date(:p_date_from, 'DD/MM/YYYY')"); if (!DataUtil.isNullOrEmpty(dto.getPhoneNumber())) {
sql.append(" and a.create_time <= to_date(:p_date_to, 'DD/MM/YYYY')"); sql.append(" AND CCR.PHONE_NUMBER LIKE (:p_phone_number) ");
sql.append(" and to_char(a.customer_id) like '%'||:p_customer_id||'%'"); }
sql.append(" and b.campaign_type in (select campaign_type from campaign_type_list)");
sql.append(" and to_char(a.contact_status) in (select contact_status from contact_status_list)"); if (!DataUtil.isNullOrEmpty(dto.getCampaignName())) {
sql.append(" and to_char(a.call_status) in (select survey_status from survey_status_list)"); sql.append(" AND UPPER(C.CAMPAIGN_NAME) LIKE (:p_campaign_name) ");
sql.append(" and to_char(a.status) in (select record_status from record_status_list)"); }
sql.append(" and (:p_phone_number is null or to_char(a.phone_number) like '%'||:p_phone_number||'%')");
sql.append(" and (:p_list_campaign_code is null or b.campaign_code in (select campaign_code from campaign_code_list))"); if (!DataUtil.isNullOrEmpty(dto.getAgentId())) {
sql.append(" and (:p_campaign_name is null or upper(b.campaign_name) like '%'||:p_campaign_name||'%')"); sql.append(" AND UPPER(VU.USER_NAME) LIKE (:p_user_name) ");
sql.append(" and (:p_user_name is null or upper(c.user_name) like '%'||:p_user_name||'%')"); }
sql.append(" ),");
sql.append(" data as ("); if (!DataUtil.isNullOrEmpty(dto.getCallTimeFrom())) {
sql.append(" select a.*, rownum row_ from data_temp a"); sql.append(" AND (( CCR.END_TIME - CCR.START_CALL ) * 24 * 60 * 60) >= (:p_call_time_from) ");
sql.append(" where a.callTime >= :p_call_time_from"); }
sql.append(" and a.callTime <= :p_call_time_to");
sql.append(" order by a.createTime desc"); if (!DataUtil.isNullOrEmpty(dto.getCallTimeTo())) {
sql.append(" ),"); sql.append(" AND (( CCR.END_TIME - CCR.START_CALL ) * 24 * 60 * 60) <= (:p_call_time_to) ");
sql.append(" count_total as ("); }
sql.append(" select count(*) totalRow from data");
sql.append(" )");
sql.append(" select contactCustResultId, createTime, campaignCode, campaignName, userName, phoneNumber, customerName, startCall, contactStatus, surveyStatus, status, recordStatus, callTime, totalRow from data, count_total");
sql.append(" where :p_page_size = 0 or (row_ >= ((:p_page_number - 1) * :p_page_size + 1) and row_ < (:p_page_number * :p_page_size + 1))");
SQLQuery query = session.createSQLQuery(sql.toString()); SQLQuery query = session.createSQLQuery(sql.toString());
query.setParameter("p_company_site_id", dto.getCompanySiteId()); query.setParameter("p_company_site_id", dto.getCompanySiteId());
query.setParameter("p_customer_id", dto.getCustomerId());
query.setParameter("p_date_from", dto.getFromDate()); query.setParameter("p_date_from", dto.getFromDate());
query.setParameter("p_date_to", dto.getToDate()); query.setParameter("p_date_to", dto.getToDate());
query.setParameter("p_list_compaign_type", dto.getCampaignType());
query.setParameter("p_list_contact_status", dto.getContactStatus()); if (!DataUtil.isNullOrEmpty(dto.getCustomerId())) {
query.setParameter("p_list_survey_status", dto.getSurveyStatus()); query.setParameter("p_customer_id", "%" +
query.setParameter("p_list_record_status", dto.getRecordStatus()); dto.getCustomerId().toUpperCase()
.replace("\\", "\\\\")
.replaceAll("%", "\\\\%")
.replaceAll("_", "\\\\_")
+ "%");
}
if (!DataUtil.isNullOrEmpty(dto.getCampaignType())) {
String[] lstCode = dto.getCampaignType().split(",");
query.setParameterList("p_list_compaign_type", lstCode);
}
if (!DataUtil.isNullOrEmpty(dto.getContactStatus())) {
String[] lstCode = dto.getContactStatus().split(",");
query.setParameterList("p_list_contact_status", lstCode);
}
if (!DataUtil.isNullOrEmpty(dto.getSurveyStatus())) {
String[] lstCode = dto.getSurveyStatus().split(",");
query.setParameterList("p_list_survey_status", lstCode);
}
if (!DataUtil.isNullOrEmpty(dto.getRecordStatus())) {
String[] lstCode = dto.getRecordStatus().split(",");
query.setParameterList("p_list_record_status", lstCode);
}
if (!DataUtil.isNullOrEmpty(dto.getCampaignCode())) {
String[] lstCode = dto.getCampaignCode().split(",");
query.setParameterList("p_list_campaign_code", lstCode);
}
if (!DataUtil.isNullOrEmpty(dto.getPhoneNumber())) {
query.setParameter("p_phone_number", "%" +
dto.getPhoneNumber().toUpperCase()
.replace("\\", "\\\\")
.replaceAll("%", "\\\\%")
.replaceAll("_", "\\\\_")
+ "%");
}
if (!DataUtil.isNullOrEmpty(dto.getCampaignName())) {
query.setParameter("p_campaign_name", "%" +
dto.getCampaignName().toUpperCase()
.replace("\\", "\\\\")
.replaceAll("%", "\\\\%")
.replaceAll("_", "\\\\_")
+ "%");
}
if (!DataUtil.isNullOrEmpty(dto.getAgentId())) {
query.setParameter("p_user_name", "%" +
dto.getAgentId().toUpperCase()
.replace("\\", "\\\\")
.replaceAll("%", "\\\\%")
.replaceAll("_", "\\\\_")
+ "%");
}
query.setParameter("p_call_time_from", dto.getCallTimeFrom()); query.setParameter("p_call_time_from", dto.getCallTimeFrom());
query.setParameter("p_call_time_to", dto.getCallTimeTo()); query.setParameter("p_call_time_to", dto.getCallTimeTo());
query.setParameter("p_list_campaign_code", dto.getCampaignCode());
query.setParameter("p_phone_number", dto.getPhoneNumber());
query.setParameter("p_campaign_name", DataUtil.isNullOrEmpty(dto.getCampaignName()) ? null : dto.getCampaignName().trim().toUpperCase());
query.setParameter("p_user_name", DataUtil.isNullOrEmpty(dto.getAgentId()) ? null : dto.getAgentId().trim().toUpperCase());
query.setParameter("p_page_number", dto.getPage());
query.setParameter("p_page_size", dto.getPageSize());
query.addScalar("contactCustResultId", new LongType()); // add data to parameter
/*query.addScalar("contactCustResultId", new LongType());
query.addScalar("createTime", new DateType()); query.addScalar("createTime", new DateType());
query.addScalar("campaignCode", new StringType()); query.addScalar("campaignCode", new StringType());
query.addScalar("campaignName", new StringType()); query.addScalar("campaignName", new StringType());
...@@ -211,49 +262,70 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -211,49 +262,70 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
query.addScalar("startCall", new DateType()); query.addScalar("startCall", new DateType());
query.addScalar("contactStatus", new StringType()); query.addScalar("contactStatus", new StringType());
query.addScalar("surveyStatus", new StringType()); query.addScalar("surveyStatus", new StringType());
query.addScalar("status", new StringType()); query.addScalar("status", new ShortType());
query.addScalar("callTime", new LongType()); query.addScalar("recordStatus", new ShortType());
query.addScalar("totalRow", new IntegerType()); query.addScalar("callTime", new LongType());*/
query.setResultTransformer(Transformers.aliasToBean(ContactCusResDTO.class)); if (pageable != null) {
query.setFirstResult(pageable.getPageNumber() * pageable.getPageSize());
int total = 0; query.setMaxResults(pageable.getPageSize());
list = query.list();
if (list.size() > 0) {
total = list.get(0).getTotalRow();
} }
for (ContactCusResDTO contactCusResDTO : list) {
List<Object[]> data = query.list();
//query.setResultTransformer(Transformers.aliasToBean(ContactCustResultDTO.class));
//list = query.list();
for (Object[] obj : data) {
ContactCustResultDTO item = new ContactCustResultDTO();
item.setPage(dto.getPage());
item.setPageSize(dto.getPageSize());
item.setSort(dto.getSort());
item.setContactCustResultId(((BigDecimal) obj[0]).longValueExact());
item.setCreateTime((Date) obj[1]);
item.setCampaignCode((String) obj[2]);
item.setCampaignName((String) obj[3]);
item.setUserName((String) obj[4]);
item.setPhoneNumber((String) obj[5]);
item.setCustomerName((String) obj[6]);
item.setStartCall(obj[7] == null ? null : (Date) obj[7]);
item.setContactStatus((String) obj[8]);
item.setSurveyStatus((String) obj[9]);
item.setStatus(obj[10] == null ? 0 : ((BigDecimal) obj[10]).shortValueExact());
item.setRecordStatus(obj[11] == null ? 0 : ((BigDecimal) obj[11]).shortValueExact());
item.setCallTime(obj[12] == null ? 0L : ((BigDecimal) obj[12]).longValueExact());
list.add(item);
}
for (ContactCustResultDTO ContactCustResultDTO : list) {
if (!"AGENT".equals(dto.getRoleUser())) { // ko phải nhân viên if (!"AGENT".equals(dto.getRoleUser())) { // ko phải nhân viên
contactCusResDTO.setEnableEdit(true); ContactCustResultDTO.setEnableEdit(true);
} else { } else {
if ("2".equals(contactCusResDTO.getRecordStatus())) {// là nhân viên thường if ("2".equals(ContactCustResultDTO.getRecordStatus())) {// là nhân viên thường
contactCusResDTO.setEnableEdit(true); ContactCustResultDTO.setEnableEdit(true);
} else if ("1".equals(contactCusResDTO.getRecordStatus()) && isLower24Hour(contactCusResDTO.getCreateTime())) { } else if ("1".equals(ContactCustResultDTO.getRecordStatus()) && isLower24Hour(ContactCustResultDTO.getCreateTime())) {
contactCusResDTO.setEnableEdit(true); ContactCustResultDTO.setEnableEdit(true);
} else { } else {
contactCusResDTO.setEnableEdit(false); ContactCustResultDTO.setEnableEdit(false);
} }
} }
} }
resultDTO.setListData(list);
resultDTO.setTotalRow(total);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR); resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR); resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
} finally { } finally {
session.close(); session.close();
return resultDTO;
} }
return list;
} }
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public List<ContactCusResDTO> getExcelInteractiveResult(CampaignRequestDTO dto) { public List<ContactCustResultDTO> getExcelInteractiveResult(CampaignRequestDTO dto) {
List<ContactCusResDTO> list = new ArrayList<>(); List<ContactCustResultDTO> list = new ArrayList<>();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession(); Session session = sessionFactory.openSession();
...@@ -360,7 +432,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -360,7 +432,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
query.addScalar("status", new StringType()); query.addScalar("status", new StringType());
query.addScalar("callTime", new LongType()); query.addScalar("callTime", new LongType());
query.setResultTransformer(Transformers.aliasToBean(ContactCusResDTO.class)); query.setResultTransformer(Transformers.aliasToBean(ContactCustResultDTO.class));
list = query.list(); list = query.list();
} catch (Exception e) { } catch (Exception e) {
......
...@@ -2,6 +2,7 @@ package com.viettel.campaign.service; ...@@ -2,6 +2,7 @@ package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.*; import com.viettel.campaign.web.dto.*;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import com.viettel.econtact.filter.UserSession;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -37,7 +38,7 @@ public interface CampaignExecuteService { ...@@ -37,7 +38,7 @@ public interface CampaignExecuteService {
ResultDTO getAgentLogout(CampaignRequestDTO dto); ResultDTO getAgentLogout(CampaignRequestDTO dto);
ResultDTO callCustomer(ContactCustResultDTO dto); ResultDTO callCustomer(ContactCustResultDTO dto, UserSession userSession);
ResultDTO recallCustomer(ContactCustResultDTO dto); ResultDTO recallCustomer(ContactCustResultDTO dto);
......
...@@ -71,6 +71,7 @@ public interface CustomerService { ...@@ -71,6 +71,7 @@ public interface CustomerService {
ResultDTO getCustomerRecall(Long campaignId, Long customerId); ResultDTO getCustomerRecall(Long campaignId, Long customerId);
List<Customer> findAllByCondition(Long siteId, Date endTime); List<Customer> findAllByCondition(Long siteId, Date endTime);
Customer update(Customer c); Customer update(Customer c);
List<CustomizeFields> getDynamicHeader(Long companySiteId); List<CustomizeFields> getDynamicHeader(Long companySiteId);
...@@ -80,10 +81,15 @@ public interface CustomerService { ...@@ -80,10 +81,15 @@ public interface CustomerService {
Map<String, Object> readAndValidateCustomer(String path, List<CustomizeFields> headerDTOS, UserSession userSession, Long customerListId); Map<String, Object> readAndValidateCustomer(String path, List<CustomizeFields> headerDTOS, UserSession userSession, Long customerListId);
List<CustomizeFieldObject> getCustomizeField(Long customerId); List<CustomizeFieldObject> getCustomizeField(Long customerId);
List<Customer> searchByQuery(String queryString); List<Customer> searchByQuery(String queryString);
Long countByQuery(String queryString); Long countByQuery(String queryString);
// Map<String, CustomizeRequestDTo> searchCustomer();
// Map<String, CustomizeRequestDTo> searchCustomer();
//// List<CustomizeFields> searchCustomize(); //// List<CustomizeFields> searchCustomize();
ResultDTO listCustomizeFields(CustomizeRequestDTo customizeFields); ResultDTO listCustomizeFields(CustomizeFieldsDTO customizeFields);
ResultDTO searchCustomizeFields(int page, int pageSize, long companySiteId,long campaignId,CustomerQueryDTO customerQueryDTO );
ResultDTO searchCustomizeFields(int page, int pageSize, long companySiteId, long campaignId, CustomerQueryDTO customerQueryDTO);
} }
...@@ -20,6 +20,7 @@ import org.modelmapper.ModelMapper; ...@@ -20,6 +20,7 @@ import org.modelmapper.ModelMapper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -100,11 +101,19 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -100,11 +101,19 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO searchInteractiveResult(CampaignRequestDTO dto) { public ResultDTO searchInteractiveResult(CampaignRequestDTO dto) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
try { try {
resultDTO = campaignExecuteRepository.getInteractiveResult(dto); List<ContactCustResultDTO> list = campaignExecuteRepository.getInteractiveResult(dto, SQLBuilder.buildPageable(dto));
resultDTO.setListData(list);
resultDTO.setTotalRow(campaignExecuteRepository.getInteractiveResult(dto, null).size());
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
} }
return resultDTO; return resultDTO;
} }
...@@ -112,7 +121,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -112,7 +121,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public XSSFWorkbook exportInteractiveResult(CampaignRequestDTO dto) { public XSSFWorkbook exportInteractiveResult(CampaignRequestDTO dto) {
Locale locale = Locale.forLanguageTag("vi"); Locale locale = Locale.forLanguageTag("vi");
List<ContactCusResDTO> list = campaignExecuteRepository.getExcelInteractiveResult(dto); List<ContactCustResultDTO> list = campaignExecuteRepository.getExcelInteractiveResult(dto);
XSSFWorkbook workbook = new XSSFWorkbook(); XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet; Sheet sheet;
...@@ -519,7 +528,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -519,7 +528,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
} }
@Override @Override
public ResultDTO callCustomer(ContactCustResultDTO dto) { public ResultDTO callCustomer(ContactCustResultDTO dto, UserSession userSession) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
try { try {
......
...@@ -45,6 +45,7 @@ import java.io.ByteArrayOutputStream; ...@@ -45,6 +45,7 @@ import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.lang.reflect.Array;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
...@@ -281,7 +282,7 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -281,7 +282,7 @@ public class CustomerServiceImpl implements CustomerService {
if (!DataUtil.isNullOrEmpty(name)) { if (!DataUtil.isNullOrEmpty(name)) {
query.setParameter("p_name", "%" + query.setParameter("p_name", "%" +
name.replace("\\", "\\\\") name.trim().replace("\\", "\\\\")
.replaceAll("%", "\\%") .replaceAll("%", "\\%")
.replaceAll("_", "\\_") .replaceAll("_", "\\_")
+ "%"); + "%");
...@@ -289,7 +290,7 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -289,7 +290,7 @@ public class CustomerServiceImpl implements CustomerService {
if (!DataUtil.isNullOrEmpty(mobileNumber)) { if (!DataUtil.isNullOrEmpty(mobileNumber)) {
query.setParameter("p_mobile_number", "%" + query.setParameter("p_mobile_number", "%" +
mobileNumber.replace("\\", "\\\\") mobileNumber.trim().replace("\\", "\\\\")
.replaceAll("%", "\\%") .replaceAll("%", "\\%")
.replaceAll("_", "\\_") .replaceAll("_", "\\_")
+ "%"); + "%");
...@@ -297,7 +298,7 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -297,7 +298,7 @@ public class CustomerServiceImpl implements CustomerService {
if (!DataUtil.isNullOrEmpty(email)) { if (!DataUtil.isNullOrEmpty(email)) {
query.setParameter("p_email", "%" + query.setParameter("p_email", "%" +
email.replace("\\", "\\\\") email.trim().replace("\\", "\\\\")
.replaceAll("%", "\\%") .replaceAll("%", "\\%")
.replaceAll("_", "\\_") .replaceAll("_", "\\_")
+ "%"); + "%");
...@@ -613,10 +614,10 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -613,10 +614,10 @@ public class CustomerServiceImpl implements CustomerService {
if (customerListDTO.getCustomerListCode().trim().length() == 0) { if (customerListDTO.getCustomerListCode().trim().length() == 0) {
if (newDay == 0) { if (newDay == 0) {
apParamRepository.updateCustomerListSeq(String.valueOf(Integer.parseInt(apParam.getParValue()) + 1), apParam.getDescription()); apParamRepository.updateCustomerListSeq(String.valueOf(Integer.parseInt(apParam.getParValue()) + 1), apParam.getDescription());
customerListDTO.setCustomerListCode(dateArray[0]+dateArray[2]+dateArray[1]+"_"+(Integer.parseInt(apParam.getParValue()) + 1)); customerListDTO.setCustomerListCode(dateArray[0] + dateArray[2] + dateArray[1] + "_" + (Integer.parseInt(apParam.getParValue()) + 1));
} else { } else {
apParamRepository.updateCustomerListSeq("1", dateFormat.format(new Date())); apParamRepository.updateCustomerListSeq("1", dateFormat.format(new Date()));
customerListDTO.setCustomerListCode(dateArray[0]+dateArray[2]+dateArray[1]+"_1"); customerListDTO.setCustomerListCode(dateArray[0] + dateArray[2] + dateArray[1] + "_1");
} }
} }
...@@ -665,9 +666,9 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -665,9 +666,9 @@ public class CustomerServiceImpl implements CustomerService {
CustomerList customerList = customerListRepository.findByCustomerListIdAndCompanySiteId(customerListDTO.getCustomerListId(), customerListDTO.getCompanySiteId()); CustomerList customerList = customerListRepository.findByCustomerListIdAndCompanySiteId(customerListDTO.getCustomerListId(), customerListDTO.getCompanySiteId());
if (customerList != null) { if (customerList != null) {
customerList.setCreateBy(customerListDTO.getCreateBy()); // customerList.setCreateBy(customerListDTO.getCreateBy());
customerList.setCompanySiteId(customerListDTO.getCompanySiteId()); customerList.setCompanySiteId(customerListDTO.getCompanySiteId());
customerList.setCreateAt(customerListDTO.getCreateAt()); // customerList.setCreateAt(customerListDTO.getCreateAt());
customerList.setCustomerListCode(customerListDTO.getCustomerListCode()); customerList.setCustomerListCode(customerListDTO.getCustomerListCode());
customerList.setCustomerListName(customerListDTO.getCustomerListName()); customerList.setCustomerListName(customerListDTO.getCustomerListName());
customerList.setDeptCreate(customerListDTO.getDeptCreate()); customerList.setDeptCreate(customerListDTO.getDeptCreate());
...@@ -1811,66 +1812,87 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1811,66 +1812,87 @@ public class CustomerServiceImpl implements CustomerService {
// sb.append(""); // sb.append("");
// sb.append(""); // sb.append("");
@Override @Override
public ResultDTO listCustomizeFields(CustomizeRequestDTo customizeFields) { public ResultDTO listCustomizeFields(CustomizeFieldsDTO customizeFields) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
Map<String, String> params = new HashMap<>(); Map<String, String> params = new HashMap<>();
List<CustomizeFielObjectDTO> list; List<CustomizeFielObjectDTO> list;
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
try { try {
stringBuilder.append(" with column_name_temp as ("); List<CustomizeFields> lstCustomizeFields = customizeFieldsRepository.findByFunctionCodeAndActiveAndStatusAndSiteId(customizeFields.getFunctionCode(), customizeFields.getActive(), customizeFields.getStatus(), customizeFields.getSiteId());
stringBuilder.append(" select 'CUSTOMER_ID customerId' ,1 isFix from user_tab_columns, dual"); String cf[][] = {
stringBuilder.append(" union all"); {"-1", "Mã Khách Hàng", "number"},
stringBuilder.append(" select 'CUSTOMER_NAME customerName' ,1 isFix from user_tab_columns, dual"); {"-2", "Tên khách hàng", "text"},
stringBuilder.append(" union all"); {"-3", "Tên công ty", "text"},
stringBuilder.append(" select 'CUSTOMER_TYPE customerType' ,1 isFix from user_tab_columns, dual"); {"-4", "Giới tính", "number"},
stringBuilder.append(" union all"); {"-5", "Địa chỉ", "text"},
stringBuilder.append(" select 'NAME name' ,1 isFix from user_tab_columns, dual"); {"-6", "Nơi sinh", "text"},
stringBuilder.append(" union all"); {"-7", "Ngày sinh", "date"},
stringBuilder.append(" select 'CURRENT_ADDRESS currentAssress', 1 isFix from user_tab_columns, dual"); {"-8", "Số điện thoại", "number"},
stringBuilder.append(" union all"); {"-9", "email", "text"},
stringBuilder.append(" select 'PLACE_OF_BIRTH placeOfBirth', 1 isFix from user_tab_columns, dual"); {"-10", "Tên đăng nhập", "text"},
stringBuilder.append(" union all"); {"-11", "Loại Khách hàng", "number"},
stringBuilder.append(" select 'DATE_OF_BIRTH dateOfBirth', 1 isFix from user_tab_columns, dual"); };
stringBuilder.append(" union all"); for (int x = 0; x < 11; x++) {
stringBuilder.append(" select 'MOBILE_NUMBER mobileNumber', 1 isFix from user_tab_columns, dual"); CustomizeFields datafill = new CustomizeFields();
stringBuilder.append(" union all"); datafill.setCustomizeFieldId(Long.parseLong(cf[x][0]));
stringBuilder.append(" select 'EMAIL email', 1 isFix from user_tab_columns, dual"); datafill.setTitle(cf[x][1]);
stringBuilder.append(" union all"); datafill.setType(cf[x][2]);
stringBuilder.append(" select 'USERNAME username', 1 isFix from user_tab_columns, dual"); lstCustomizeFields.add(datafill);
stringBuilder.append(" union all"); }
stringBuilder.append(" select 'CUSTOMER_TYPE customerType', 1 isFix from user_tab_columns, dual");
stringBuilder.append(" where table_name = 'CUSTOMER'"); // try {
stringBuilder.append(" )"); // stringBuilder.append(" with column_name_temp as (");
// stringBuilder.append(" select 'CUSTOMER_ID customerId' , from user_tab_columns, dual");
stringBuilder.append(" select * from column_name_temp"); // stringBuilder.append(" union all");
stringBuilder.append(" union all"); // stringBuilder.append(" select 'CUSTOMER_NAME customerName' , from user_tab_columns, dual");
stringBuilder.append(" select title columnName, 0 isFix "); // stringBuilder.append(" union all");
stringBuilder.append(" from customize_fields, dual"); // stringBuilder.append(" select 'CUSTOMER_TYPE customerType' , from user_tab_columns, dual");
stringBuilder.append(" where function_code = 'CUSTOMER'"); // stringBuilder.append(" union all");
stringBuilder.append(" and site_id = :p_company_site_id"); // stringBuilder.append(" select 'NAME name' , from user_tab_columns, dual");
stringBuilder.append(" and STATUS = 1"); // stringBuilder.append(" union all");
stringBuilder.append(" and active = 1 "); // stringBuilder.append(" select 'CURRENT_ADDRESS currentAddress', from user_tab_columns, dual");
// stringBuilder.append(" union all");
params.put("p_company_site_id", customizeFields.getSiteId()); // stringBuilder.append(" select 'PLACE_OF_BIRTH placeOfBirth', from user_tab_columns, dual");
params.put("p_customer_id", customizeFields.getCustomerId()); // stringBuilder.append(" union all");
LOGGER.info("SQL statement: " + stringBuilder); // stringBuilder.append(" select 'DATE_OF_BIRTH dateOfBirth', from user_tab_columns, dual");
list = namedParameterJdbcTemplate.query(stringBuilder.toString(), params, BeanPropertyRowMapper.newInstance(CustomizeFielObjectDTO.class)); // 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.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS); resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
resultDTO.setListData(list); resultDTO.setListData(lstCustomizeFields);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error(e.getMessage(), e); LOGGER.error(e.getMessage(), e);
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR); resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR); resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
} }
return resultDTO;
return resultDTO;
} }
@Override @Override
public ResultDTO searchCustomizeFields(int page, int pageSize, long SiteId ,long campaignId, CustomerQueryDTO customerQueryDTO) { public ResultDTO searchCustomizeFields(int page, int pageSize, long SiteId, long campaignId, CustomerQueryDTO customerQueryDTO) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
...@@ -1916,14 +1938,13 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1916,14 +1938,13 @@ public class CustomerServiceImpl implements CustomerService {
sb.append(" and active = 1 "); sb.append(" and active = 1 ");
sb.append(" and CF.FUNCTION_CODE = 'CUSTOMER' "); sb.append(" and CF.FUNCTION_CODE = 'CUSTOMER' ");
List<CustomerQueryDTO> queryCustomer = new ArrayList<>(); List<CustomerQueryDTO> queryCustomer = new ArrayList<>();
for (int i = 0; i <queryCustomer.size() ; i++) { for (int i = 0; i < queryCustomer.size(); i++) {
sb.append(queryCustomer.get(i).getJoin() + " "+ sb.append(queryCustomer.get(i).getJoin() + " " +
queryCustomer.get(i).getOperator() + " "+ queryCustomer.get(i).getField() + " "+ queryCustomer.get(i).getCondition()); queryCustomer.get(i).getOperator() + " " + queryCustomer.get(i).getField() + " " + queryCustomer.get(i).getCondition());
} }
SQLQuery query = session.createSQLQuery(sb.toString()); SQLQuery query = session.createSQLQuery(sb.toString());
// query.setParameter("p_company_site_id", companySiteId); // query.setParameter("p_company_site_id", companySiteId);
...@@ -1954,9 +1975,8 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1954,9 +1975,8 @@ public class CustomerServiceImpl implements CustomerService {
// } // }
query.addScalar("customerID", new LongType()); query.addScalar("customerID", new LongType());
query.addScalar("name", new LongType()); query.addScalar("name", new StringType());
query.addScalar("username", new LongType()); query.addScalar("username", new StringType());
query.addScalar("customerId", new LongType());
query.addScalar("name", new StringType()); query.addScalar("name", new StringType());
query.addScalar("description", new StringType()); query.addScalar("description", new StringType());
query.addScalar("companyName", new StringType()); query.addScalar("companyName", new StringType());
...@@ -1993,4 +2013,6 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -1993,4 +2013,6 @@ public class CustomerServiceImpl implements CustomerService {
return resultDTO; return resultDTO;
} }
}
}
package com.viettel.campaign.web.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
//import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class ContactCusResDTO {
private Long contactCustResultId;
private String campaignCode;
private String campaignName;
private String userName;
private String phoneNumber;
private String customerName;
private Date startCall;
private Date createTime;
private String contactStatus;
private String surveyStatus;
private String status;
private String recordStatus;
private Long callTime;
private Boolean enableEdit;
private Integer totalRow;
}
...@@ -14,7 +14,7 @@ public class ContactCustResultDTO extends BaseDTO { ...@@ -14,7 +14,7 @@ public class ContactCustResultDTO extends BaseDTO {
private Long contactCustResultId; private Long contactCustResultId;
private Long companySiteId; private Long companySiteId;
private Short callStatus; private Short callStatus;
private Short contactStatus; private String contactStatus;
private Short status; private Short status;
private Integer satisfaction; private Integer satisfaction;
private String description; private String description;
...@@ -53,4 +53,6 @@ public class ContactCustResultDTO extends BaseDTO { ...@@ -53,4 +53,6 @@ public class ContactCustResultDTO extends BaseDTO {
private String userName; private String userName;
private String surveyStatus; private String surveyStatus;
private Boolean enableEdit; private Boolean enableEdit;
private Integer totalRow;
} }
package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class CustomizeFieldsDTO extends BaseDTO {
private Long customizeFieldId;
private Long siteId;
private String functionCode;
private String createBy;
private Date createDate;
private String updateBy;
private Date updateDate;
private Long status;
private String type;
private String title;
private String placeholder;
private String description;
private Long position;
private Long required;
private Long fieldOptionsId;
private String regexpForValidation;
private Long maxLength;
private Long minLength;
private Long min;
private Long max;
private Long active;
}
package com.viettel.campaign.web.rest; package com.viettel.campaign.web.rest;
import com.viettel.campaign.service.CampaignExecuteService; import com.viettel.campaign.service.CampaignExecuteService;
import com.viettel.campaign.utils.RedisUtil;
import com.viettel.campaign.web.dto.*; import com.viettel.campaign.web.dto.*;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import com.viettel.econtact.filter.UserSession;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -134,8 +136,10 @@ public class CampaignExecuteController { ...@@ -134,8 +136,10 @@ public class CampaignExecuteController {
@PostMapping("/callCustomer") @PostMapping("/callCustomer")
@ResponseBody @ResponseBody
public ResponseEntity<ResultDTO> callCustomer(@RequestBody ContactCustResultDTO requestDto) { public ResponseEntity<ResultDTO> callCustomer(@RequestBody ContactCustResultDTO requestDto, HttpServletRequest request) {
ResultDTO result = campaignExecuteService.callCustomer(requestDto); String xAuthToken = request.getHeader("X-Auth-Token");
UserSession userSession = (UserSession) RedisUtil.getInstance().get(xAuthToken);
ResultDTO result = campaignExecuteService.callCustomer(requestDto, userSession);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
......
...@@ -318,7 +318,7 @@ public class CustomerController { ...@@ -318,7 +318,7 @@ public class CustomerController {
} }
@PostMapping("/getCustomizeFields") @PostMapping("/getCustomizeFields")
@ResponseBody @ResponseBody
public ResponseEntity<?> getListFieldsToShow(@RequestBody CustomizeRequestDTo customizeRequestDTo) { public ResponseEntity<?> getListCustomer(@RequestBody CustomizeFieldsDTO customizeRequestDTo) {
ResultDTO resultDTO = customerService.listCustomizeFields(customizeRequestDTo); ResultDTO resultDTO = customerService.listCustomizeFields(customizeRequestDTo);
return new ResponseEntity<>(resultDTO, HttpStatus.OK); return new ResponseEntity<>(resultDTO, 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