Commit 2bf2ed2a authored by Vu Duy Anh's avatar Vu Duy Anh

anhvd commit accept merge

parents 79337f2f 744ddebd
......@@ -91,6 +91,8 @@ public interface CampaignCustomerRepository extends JpaRepository<CampaignCustom
CampaignCustomer findCampaignCustomerByCampaignIdAndCompanySiteIdAndCustomerId(Long campaignId, Long companySiteId, Long customerId);
List<CampaignCustomer> findCampaignCustomersByCampaignIdAndCompanySiteIdAndCustomerIdAndInCampaignStatus(Long campaignId, Long companySiteId, Long customerId, Short inCampaingStatus);
@Query(value = "select complete_value from campaign_complete_code where status = 1 and is_finish = 0 and is_recall = 0", nativeQuery = true)
List<Short> getStatus();
}
......@@ -301,32 +301,39 @@ public class AgentsServiceImpl implements AgentsService {
StringBuilder sqlStrBuilder = new StringBuilder();
sqlStrBuilder.append("SELECT");
sqlStrBuilder.append(" a.USER_ID userId,");
sqlStrBuilder.append(" a.USER_NAME userName,");
sqlStrBuilder.append(" a.STATUS status,");
sqlStrBuilder.append(" a.FULL_NAME fullName,");
sqlStrBuilder.append(" a.COMPANY_SITE_ID companySiteId,");
sqlStrBuilder.append(" b.FILTER_TYPE filterType,");
sqlStrBuilder.append(" b.CAMPAIGN_AGENT_ID campaignAgentId");
sqlStrBuilder.append(" FROM VSA_USERS a");
sqlStrBuilder.append(" LEFT JOIN CAMPAIGN_AGENT b on a.USER_ID = b.AGENT_ID");
sqlStrBuilder.append(" INNER JOIN USER_ROLE c on a.USER_ID = c.USER_ID");
sqlStrBuilder.append(" INNER JOIN ROLE d on c.ROLE_ID = d.ROLE_ID");
sqlStrBuilder.append(" vu.USER_ID userId,");
sqlStrBuilder.append(" vu.USER_NAME userName,");
sqlStrBuilder.append(" vu.STATUS status,");
sqlStrBuilder.append(" vu.FULL_NAME fullName,");
sqlStrBuilder.append(" vu.COMPANY_SITE_ID companySiteId,");
sqlStrBuilder.append(" r.ROLE_CODE roleCode");
sqlStrBuilder.append(" FROM VSA_USERS vu");
sqlStrBuilder.append(" INNER JOIN USER_ROLE ur on vu.USER_ID = ur.USER_ID");
sqlStrBuilder.append(" INNER JOIN ROLE r on ur.ROLE_ID = r.ROLE_ID");
sqlStrBuilder.append(" WHERE 1 = 1");
sqlStrBuilder.append(" AND a.COMPANY_SITE_ID = :p_company_site_id");
sqlStrBuilder.append(" AND vu.COMPANY_SITE_ID = :p_company_site_id");
sqlStrBuilder.append(" AND vu.STATUS = 1");
sqlStrBuilder.append(" AND r.ROLE_CODE IN ('AGENT', 'SUPERVISOR')");
sqlStrBuilder.append(" AND vu.USER_ID NOT IN (SELECT vu.USER_ID userId");
sqlStrBuilder.append(" FROM VSA_USERS vu");
sqlStrBuilder.append(" LEFT JOIN CAMPAIGN_AGENT ca on vu.USER_ID = ca.AGENT_ID");
sqlStrBuilder.append(" INNER JOIN USER_ROLE ur on vu.USER_ID = ur.USER_ID");
sqlStrBuilder.append(" INNER JOIN ROLE r on ur.ROLE_ID = r.ROLE_ID");
sqlStrBuilder.append(" WHERE 1 = 1");
sqlStrBuilder.append(" AND vu.COMPANY_SITE_ID = :p_company_site_id");
sqlStrBuilder.append(" AND vu.STATUS = 1");
sqlStrBuilder.append(" AND ca.CAMPAIGN_ID = :p_campaign_id");
sqlStrBuilder.append(" AND r.ROLE_CODE IN ('AGENT', 'SUPERVISOR'))");
if (!DataUtil.isNullOrEmpty(userName)) {
sqlStrBuilder.append(" AND UPPER(a.USER_NAME) LIKE UPPER(:p_user_name)");
sqlStrBuilder.append(" AND UPPER(vu.USER_NAME) LIKE UPPER(:p_user_name)");
}
if (!DataUtil.isNullOrEmpty(fullName)) {
sqlStrBuilder.append(" AND UPPER(a.FULL_NAME) LIKE UPPER(:p_full_name)");
sqlStrBuilder.append(" AND UPPER(vu.FULL_NAME) LIKE UPPER(:p_full_name)");
}
sqlStrBuilder.append(" AND d.ROLE_CODE IN ('AGENT', 'SUPERVISOR')");
sqlStrBuilder.append(" AND a.STATUS = 1");
sqlStrBuilder.append(" AND (b.CAMPAIGN_ID IS NULL OR b.CAMPAIGN_ID <> :p_campaign_id)");
sqlStrBuilder.append(" ORDER BY UPPER(a.FULL_NAME)");
sqlStrBuilder.append(" ORDER BY UPPER(vu.FULL_NAME)");
SQLQuery query = session.createSQLQuery(sqlStrBuilder.toString());
......@@ -356,8 +363,7 @@ public class AgentsServiceImpl implements AgentsService {
query.addScalar("status", new ShortType());
query.addScalar("fullName", new StringType());
query.addScalar("companySiteId", new LongType());
query.addScalar("filterType", new ShortType());
query.addScalar("campaignAgentId", new LongType());
query.addScalar("roleCode", new StringType());
query.setResultTransformer(Transformers.aliasToBean(VSAUsersDTO.class));
int count = 0;
......
......@@ -489,16 +489,8 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
List<CampaignCustomer> lst = null;//campaignCustomerRepository.getCustomerRecallDate(dto.getCampaignId(), dto.getAgentId(), dto.getCompanySiteId(), );
if (lst != null) {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
//result.setTotalRow(count);
//result.setListData(campaignExecuteRepository.searchCampaignExecute(requestDto, SQLBuilder.buildPageable(requestDto)));
//result.setData(data);
} else {
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
}
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
return result;
}
......
......@@ -1585,16 +1585,18 @@ public class CustomerServiceImpl implements CustomerService {
sb.append("with cusPhone as (");
sb.append(" select customer_id cusId,");
sb.append(" contact phone");
sb.append(" listagg(contact, ',') within group (order by create_date desc) phone");
sb.append(" from customer_contact cc");
sb.append(" where cc.contact_type = 5");
sb.append(" and status = 1");
sb.append(" and status = 1 ");
sb.append(" group by customer_id");
sb.append(" ), cusEmail as (");
sb.append(" select customer_id cusId,");
sb.append(" contact email");
sb.append(" listagg(contact , ',') within group(order by create_date desc) email");
sb.append(" from customer_contact cc");
sb.append(" where cc.contact_type = 2");
sb.append(" and status = 1");
sb.append(" and status = 1 ");
sb.append(" group by customer_id");
sb.append(" )," +
"cusInCampaign as (" +
"select * from campaign_customer " +
......@@ -1653,12 +1655,14 @@ public class CustomerServiceImpl implements CustomerService {
List<Short> lstStatus = campaignCustomerRepository.getStatus();
try {
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);
campaignCustomerRepository.save(entity);
List<CampaignCustomer> listEntity = campaignCustomerRepository.findCampaignCustomersByCampaignIdAndCompanySiteIdAndCustomerIdAndInCampaignStatus(campaignId, companySiteId, Long.parseLong(cusId), (short) 1);
for (CampaignCustomer entity : listEntity) {
if (entity.getStatus() == 0) {
campaignCustomerRepository.delete(entity);
} else if (lstStatus.contains(entity.getStatus())) {
entity.setInCampaignStatus((short) 0);
campaignCustomerRepository.save(entity);
}
}
}
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
......@@ -1888,7 +1892,6 @@ public class CustomerServiceImpl implements CustomerService {
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO searchCustomizeFields(CampaignCustomerDTO campaignCustomerDTO) {
ResultDTO resultDTO = new ResultDTO();
CustomerDTO customerDTO = new CustomerDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
......@@ -1916,16 +1919,24 @@ public class CustomerServiceImpl implements CustomerService {
sb.append("select c.customer_id customerId,");
sb.append(" C.NAME name,");
sb.append(" cc.contact mobileNumber,");
sb.append(" cc2.contact email,");
sb.append(" a.mobile mobileNumber,");
sb.append(" b.Email email,");
sb.append(" c.customer_type customerType,");
sb.append(" C.COMPANY_NAME companyName,");
sb.append(" c.current_address currentAddress,");
sb.append(" c.Description description");
sb.append(" FROM CUSTOMER C");
sb.append(" INNER JOIN CUSTOMER_contact cc ON (C.CUSTOMER_ID = Cc.customer_id " +
"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)");
sb.append(" inner join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY ");
sb.append(" NULL) AS MOBILE");
sb.append(" FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 5 AND STATUS = 1 GROUP BY ");
sb.append(" CUSTOMER_ID) a on c.CUSTOMER_ID = a.CUSTOMER_ID");
sb.append(" inner join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY ");
sb.append(" NULL) AS EMAIL");
sb.append(" FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 2 AND STATUS = 1 GROUP BY ");
sb.append(" CUSTOMER_ID) b on b.CUSTOMER_ID = c.CUSTOMER_ID ");
// sb.append(" INNER JOIN CUSTOMER_contact cc ON (C.CUSTOMER_ID = Cc.customer_id " +
// "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)");
sb.append("inner join customize_field_object cfo on c.customer_id = cfo.object_id and cfo.status = 1");
sb.append(" AND C.STATUS = 1");
sb.append(" AND C.customer_id not in (select customer_id from campaign_customer where campaign_id = :p_campaign_id) ");
......@@ -2017,6 +2028,7 @@ public class CustomerServiceImpl implements CustomerService {
}
Pageable pageable = PageRequest.of(campaignCustomerDTO.getPage(), campaignCustomerDTO.getPageSize());
if (pageable != null) {
query.setFirstResult(pageable.getPageNumber() * pageable.getPageSize());
query.setMaxResults(pageable.getPageSize());
......@@ -2025,6 +2037,7 @@ public class CustomerServiceImpl implements CustomerService {
List<CustomerDTO>data = query.list();
Page<CustomerDTO> dataPage = new PageImpl<>(data, pageable, count);
resultDTO.setData(dataPage);
resultDTO.setTotalRow(count);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} catch (Exception e) {
......
......@@ -253,6 +253,7 @@ public class ScenarioServiceImpl implements ScenarioService {
StringBuilder sb = new StringBuilder();
boolean isValid = true;
XSSFWorkbook workbook = null;
FileInputStream fis = null;
try {
List<String> fileHeaderList = new ArrayList<>();
fileHeaderList.add(BundleUtils.getLangString("scenario.template.questionCode", locale));
......@@ -265,7 +266,7 @@ public class ScenarioServiceImpl implements ScenarioService {
fileHeaderList.add(BundleUtils.getLangString("scenario.template.mappingQuestion", locale));
File file = new File(path);
FileInputStream fis = new FileInputStream(file);
fis = new FileInputStream(file);
workbook = new XSSFWorkbook(fis);
ByteArrayOutputStream os = new ByteArrayOutputStream();
Sheet sheet = workbook.getSheetAt(0);
......@@ -447,6 +448,7 @@ public class ScenarioServiceImpl implements ScenarioService {
result.put("message", BundleUtils.getLangString("customer.errorValidate", locale));
}finally {
if (workbook != null) workbook.close();
if(fis != null) fis.close();
}
return result;
}
......
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