Commit f0bfed76 authored by ='s avatar =

Merge remote-tracking branch 'origin/master'

parents 037ba794 67413408
package com.viettel.campaign.repository;
import com.viettel.campaign.model.CampaignCustomer;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
public interface CampaignCustomerRepository extends JpaRepository<CampaignCustomer, Long> {
@Query(value = "SELECT COUNT(*) " +
"FROM CAMPAIGN_CUSTOMER CC JOIN CAMPAIGN_COMPLETE_CODE CCC ON CC.CAMPAIGN_ID = CCC.CAMPAIGN_ID " +
"WHERE CC.STATUS = 3 AND CC.CAMPAIGN_ID = :campaignId AND CC.CUSTOMER_ID = :customerId AND CCC.IS_RECALL = 1 AND CCC.STATUS = 1 ",
nativeQuery = true)
Long getCustomerRecall(@Param("campaignId") Long campaignId, @Param("customerId") Long customerId);
}
...@@ -19,5 +19,8 @@ public interface CampaignRepository extends JpaRepository<Campaign, Long>, Campa ...@@ -19,5 +19,8 @@ public interface CampaignRepository extends JpaRepository<Campaign, Long>, Campa
" AND cc.agentId = :pAgentId") " AND cc.agentId = :pAgentId")
Long countRecallCustomer(@Param("pCompanySiteId") Long pCompanySiteId, @Param("pAgentId") Long pAgentId); Long countRecallCustomer(@Param("pCompanySiteId") Long pCompanySiteId, @Param("pAgentId") Long pAgentId);
Campaign findByCampaignId(Long campaignId);
Campaign findCampaignByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId); Campaign findCampaignByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId);
} }
package com.viettel.campaign.repository; package com.viettel.campaign.repository;
import com.viettel.campaign.model.CustomerContact; import com.viettel.campaign.model.CustomerContact;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List; import java.util.List;
public interface CustomerContactRepository extends JpaRepository<CustomerContact, Long> { public interface CustomerContactRepository extends JpaRepository<CustomerContact, Long> {
List<CustomerContact> findByCustomerIdAndAndContactTypeAndContact(Long customerId, Short contactType, String contact); @Query("FROM CustomerContact WHERE status = 1 AND customerId = :customerId AND contactType = :contactType AND (contact IS NULL OR UPPER(contact) LIKE UPPER(concat('%', :contact, '%')))")
List<CustomerContact> findByCustomerIdAndAndContactTypeAndContact(@Param("customerId") Long customerId, @Param("contactType") Short contactType, @Param("contact") String contact, Pageable pageable);
} }
...@@ -41,7 +41,7 @@ public class TicketRepositoryImpl implements TicketRepositoryCustom { ...@@ -41,7 +41,7 @@ public class TicketRepositoryImpl implements TicketRepositoryCustom {
for (Object[] obj : data) { for (Object[] obj : data) {
TicketDTO item = new TicketDTO(); TicketDTO item = new TicketDTO();
item.setTicketId(((Long)obj[0])); item.setTicketId(((BigDecimal) obj[0]).longValueExact());
item.setCreateDate((Date) obj[1]); item.setCreateDate((Date) obj[1]);
item.setSubject((String) obj[2]); item.setSubject((String) obj[2]);
item.setStatusName((String) obj[3]); item.setStatusName((String) obj[3]);
......
...@@ -13,6 +13,8 @@ public interface CampaignService { ...@@ -13,6 +13,8 @@ public interface CampaignService {
ResultDTO findByCampaignCode(CampaignRequestDTO requestDTO); ResultDTO findByCampaignCode(CampaignRequestDTO requestDTO);
ResultDTO findByCampaignId(Long campaignId);
ResultDTO addNewCampaign(CampaignDTO campaignDTO); ResultDTO addNewCampaign(CampaignDTO campaignDTO);
Map countRecallCustomer(Long companySiteId, Long agentId); Map countRecallCustomer(Long companySiteId, Long agentId);
......
package com.viettel.campaign.service; package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.CustomerContactDTO;
import com.viettel.campaign.web.dto.CustomerDTO; import com.viettel.campaign.web.dto.CustomerDTO;
import com.viettel.campaign.web.dto.CustomerListDTO; import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
...@@ -36,5 +37,11 @@ public interface CustomerService { ...@@ -36,5 +37,11 @@ public interface CustomerService {
// ------------ customer contact ------------ // // ------------ customer contact ------------ //
ResultDTO getCustomerContact(Long customerId, Short contactType, String contact); ResultDTO getCustomerContact(CustomerContactDTO customer);
// ------------ customer ------------ //
ResultDTO getCustomerRecall(Long campaignId, Long customerId);
} }
...@@ -16,7 +16,6 @@ import com.viettel.campaign.web.dto.*; ...@@ -16,7 +16,6 @@ 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 org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.modelmapper.ModelMapper; import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -59,6 +58,23 @@ public class CampaignServiceImpl implements CampaignService { ...@@ -59,6 +58,23 @@ public class CampaignServiceImpl implements CampaignService {
return campaignRepository.findByCampaignCode(requestDTO); return campaignRepository.findByCampaignCode(requestDTO);
} }
@Override
public ResultDTO findByCampaignId(Long campaignId) {
ResultDTO result = new ResultDTO();
Campaign campaign = campaignRepository.findByCampaignId(campaignId);
if (campaign != null) {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setErrorCode(Constants.ApiErrorDesc.SUCCESS);
result.setData(campaign);
} else {
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setErrorCode(Constants.ApiErrorDesc.ERROR);
}
return result;
}
@Override @Override
public ResultDTO addNewCampaign(CampaignDTO campaignDTO) { public ResultDTO addNewCampaign(CampaignDTO campaignDTO) {
logger.info("=== Start add new campaign "); logger.info("=== Start add new campaign ");
...@@ -75,7 +91,8 @@ public class CampaignServiceImpl implements CampaignService { ...@@ -75,7 +91,8 @@ public class CampaignServiceImpl implements CampaignService {
Campaign campaignResult = campaignRepository.save(campaign); Campaign campaignResult = campaignRepository.save(campaign);
campaignId = campaign.getCampaignId(); campaignId = campaign.getCampaignId();
//insert sub tables //insert sub tables
if(campaignDTO.getLstTimeRange().size() > 0) {
if (campaignDTO.getLstTimeRange().size() > 0) {
timeRangeDialModes = campaignDTO.getLstTimeRange(); timeRangeDialModes = campaignDTO.getLstTimeRange();
timeRangeDialModes.forEach(item -> { timeRangeDialModes.forEach(item -> {
item.setCampaignId(campaignId); item.setCampaignId(campaignId);
...@@ -84,7 +101,7 @@ public class CampaignServiceImpl implements CampaignService { ...@@ -84,7 +101,7 @@ public class CampaignServiceImpl implements CampaignService {
}); });
timeRangeDialModeRepository.saveAll(lstTimeRangeModeToInsert); timeRangeDialModeRepository.saveAll(lstTimeRangeModeToInsert);
} }
if(campaignDTO.getLstTimeZone().size() > 0) { if (campaignDTO.getLstTimeZone().size() > 0) {
timeZoneDialModes = campaignDTO.getLstTimeZone(); timeZoneDialModes = campaignDTO.getLstTimeZone();
timeZoneDialModes.forEach(item -> { timeZoneDialModes.forEach(item -> {
item.setCampaignId(campaignId); item.setCampaignId(campaignId);
...@@ -160,16 +177,13 @@ public class CampaignServiceImpl implements CampaignService { ...@@ -160,16 +177,13 @@ public class CampaignServiceImpl implements CampaignService {
userActionLog.setStartTime(new Date()); userActionLog.setStartTime(new Date());
userActionLog.setEndTime(null); userActionLog.setEndTime(null);
userActionLog.setObjectId(entity.getCampaignId()); userActionLog.setObjectId(entity.getCampaignId());
if(dto.getStatus().equals((short) -1)) { if (dto.getStatus().equals((short) -1)) {
userActionLog.setActionType((short) 2); userActionLog.setActionType((short) 2);
} } else if (dto.getStatus().equals((short) 5)) {
else if(dto.getStatus().equals((short) 5)) {
userActionLog.setActionType((short) 7); userActionLog.setActionType((short) 7);
} } else if (dto.getStatus().equals((short) 4)) {
else if(dto.getStatus().equals((short) 4)) {
userActionLog.setActionType((short) 4); userActionLog.setActionType((short) 4);
} } else if (dto.getStatus().equals((short) 3)) {
else if(dto.getStatus().equals((short) 3)) {
userActionLog.setActionType((short) 5); userActionLog.setActionType((short) 5);
} }
...@@ -192,7 +206,7 @@ public class CampaignServiceImpl implements CampaignService { ...@@ -192,7 +206,7 @@ public class CampaignServiceImpl implements CampaignService {
private String generateCampaignCode(String campaignType, Short chanel) { private String generateCampaignCode(String campaignType, Short chanel) {
int year = Calendar.getInstance().get(Calendar.YEAR); int year = Calendar.getInstance().get(Calendar.YEAR);
String maxIndexStr = campaignRepository.getMaxCampaignIndex(); String maxIndexStr = campaignRepository.getMaxCampaignIndex();
if(maxIndexStr != null) { if (maxIndexStr != null) {
Long maxIndex = Long.valueOf(maxIndexStr) + 1; Long maxIndex = Long.valueOf(maxIndexStr) + 1;
String result = campaignType + "_" + String.valueOf(chanel) + "_" + String.valueOf(year) + "_" + maxIndex.toString(); String result = campaignType + "_" + String.valueOf(chanel) + "_" + String.valueOf(year) + "_" + maxIndex.toString();
return result; return result;
......
package com.viettel.campaign.service.impl; package com.viettel.campaign.service.impl;
import com.viettel.campaign.mapper.CustomerListMapper; import com.viettel.campaign.mapper.CustomerListMapper;
import com.viettel.campaign.mapper.CustomerMapper;
import com.viettel.campaign.model.Customer;
import com.viettel.campaign.model.CustomerContact; import com.viettel.campaign.model.CustomerContact;
import com.viettel.campaign.model.CustomerList; import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.repository.*; import com.viettel.campaign.repository.*;
import com.viettel.campaign.service.CustomerService; import com.viettel.campaign.service.CustomerService;
import com.viettel.campaign.utils.Constants; import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.utils.HibernateUtil; import com.viettel.campaign.utils.HibernateUtil;
import com.viettel.campaign.utils.SQLBuilder; import com.viettel.campaign.utils.SQLBuilder;
import com.viettel.campaign.web.dto.CustomerCustomDTO; import com.viettel.campaign.web.dto.*;
import com.viettel.campaign.web.dto.CustomerDTO;
import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.mapper.CustomerMapper;
import com.viettel.campaign.model.Customer;
import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO;
import com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO; import com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO;
import com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
...@@ -32,7 +29,8 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -32,7 +29,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.Query; import javax.persistence.Query;
import java.util.*; import java.util.Date;
import java.util.List;
@Service @Service
public class CustomerServiceImpl implements CustomerService { public class CustomerServiceImpl implements CustomerService {
...@@ -52,6 +50,9 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -52,6 +50,9 @@ public class CustomerServiceImpl implements CustomerService {
@Autowired @Autowired
CampaignCustomerListRepository campaignCustomerListRepository; CampaignCustomerListRepository campaignCustomerListRepository;
@Autowired
CampaignCustomerRepository campaignCustomerRepository;
@Autowired @Autowired
CustomerListMappingRepository customerListMappingRepository; CustomerListMappingRepository customerListMappingRepository;
...@@ -571,20 +572,47 @@ public class CustomerServiceImpl implements CustomerService { ...@@ -571,20 +572,47 @@ public class CustomerServiceImpl implements CustomerService {
} }
@Override @Override
public ResultDTO getCustomerContact(Long customerId, Short contactType, String contact) { public ResultDTO getCustomerContact(CustomerContactDTO customer) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
List<CustomerContact> customer = customerContactRepository.findByCustomerIdAndAndContactTypeAndContact(customerId, contactType, contact); try {
List<CustomerContact> data = customerContactRepository.findByCustomerIdAndAndContactTypeAndContact(customer.getCustomerId(), customer.getContactType(), customer.getContact(), SQLBuilder.buildPageable(customer));
if (customer != null) { if (customer != null) {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS); result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription("customer contact data"); result.setDescription("customer contact data");
result.setListData(customer); result.setListData(data);
result.setTotalRow(customerContactRepository.findByCustomerIdAndAndContactTypeAndContact(customer.getCustomerId(), customer.getContactType(), customer.getContact(), null).size());
} else { } else {
result.setErrorCode(Constants.ApiErrorCode.ERROR); result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription("customer contact data null"); result.setDescription("customer contact data null");
} }
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@Override
public ResultDTO getCustomerRecall(Long campaignId, Long customerId) {
ResultDTO result = new ResultDTO();
try {
Long data = campaignCustomerRepository.getCustomerRecall(campaignId, customerId);
if (data != null) {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription("campaign customer data");
result.setData(data);
} else {
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription("campaign customer data null");
}
} catch (Exception e) {
e.printStackTrace();
}
return result; return result;
} }
} }
...@@ -7,7 +7,7 @@ import java.util.Date; ...@@ -7,7 +7,7 @@ import java.util.Date;
@Getter @Getter
@Setter @Setter
public class CustomerContactDTO { public class CustomerContactDTO extends BaseDTO {
private Long contactId; private Long contactId;
private Long customerId; private Long customerId;
private Short contactType; private Short contactType;
......
...@@ -9,7 +9,11 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; ...@@ -9,7 +9,11 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
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;
<<<<<<< HEAD
import org.springframework.cloud.sleuth.instrument.reactor.ReactorSleuth;
=======
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
>>>>>>> 55a6b806b604aa92fca10c101776df185d0d67af
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -33,10 +37,14 @@ public class CampaignController { ...@@ -33,10 +37,14 @@ public class CampaignController {
@Autowired @Autowired
CampaignService campaignService; CampaignService campaignService;
<<<<<<< HEAD
@PostMapping("/searchCampaignExecute")
=======
@Autowired @Autowired
CampaignExecuteService campaignExecuteService; CampaignExecuteService campaignExecuteService;
@RequestMapping("/searchCampaignExecute") @RequestMapping("/searchCampaignExecute")
>>>>>>> 55a6b806b604aa92fca10c101776df185d0d67af
@ResponseBody @ResponseBody
public ResponseEntity<ResultDTO> searchCampaignExecute(@RequestBody CampaignRequestDTO requestDto) { public ResponseEntity<ResultDTO> searchCampaignExecute(@RequestBody CampaignRequestDTO requestDto) {
ResultDTO result = campaignService.searchCampaignExecute(requestDto); ResultDTO result = campaignService.searchCampaignExecute(requestDto);
...@@ -66,6 +74,14 @@ public class CampaignController { ...@@ -66,6 +74,14 @@ public class CampaignController {
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
<<<<<<< HEAD
@GetMapping("/findByCampaignId")
@ResponseBody
public ResponseEntity findByCampaignId(@RequestParam("campaignId") Long campaignId) {
ResultDTO result = campaignService.findByCampaignId(campaignId);
return new ResponseEntity<>(result, HttpStatus.OK);
}
=======
@PostMapping("/searchInteractiveResult") @PostMapping("/searchInteractiveResult")
@ResponseBody @ResponseBody
public ResponseEntity<ResultDTO> searchInteractiveResult(@RequestBody CampaignRequestDTO dto) throws Exception { public ResponseEntity<ResultDTO> searchInteractiveResult(@RequestBody CampaignRequestDTO dto) throws Exception {
...@@ -110,4 +126,5 @@ public class CampaignController { ...@@ -110,4 +126,5 @@ public class CampaignController {
dto.setSessionId(request.getSession().getId()); dto.setSessionId(request.getSession().getId());
return campaignService.changeCampaignStatus(dto); return campaignService.changeCampaignStatus(dto);
} }
>>>>>>> 55a6b806b604aa92fca10c101776df185d0d67af
} }
package com.viettel.campaign.web.rest.controller; package com.viettel.campaign.web.rest.controller;
import com.viettel.campaign.web.dto.CustomerContactDTO;
import com.viettel.campaign.web.dto.CustomerDTO; import com.viettel.campaign.web.dto.CustomerDTO;
import com.viettel.campaign.web.dto.CustomerListDTO; import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
...@@ -164,10 +165,17 @@ public class CustomerController { ...@@ -164,10 +165,17 @@ public class CustomerController {
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
@GetMapping("/findCustomerContact") @PostMapping("/findCustomerContact")
@ResponseBody @ResponseBody
public ResponseEntity<ResultDTO> findAllCustomerContact(@RequestParam("customerId") Long customerId, @RequestParam("contactType") Short contactType, @RequestParam("contact") String contact) { public ResponseEntity<ResultDTO> findAllCustomerContact(@RequestBody CustomerContactDTO customerContactDTO) {
ResultDTO result = customerService.getCustomerContact(customerId, contactType, contact); ResultDTO result = customerService.getCustomerContact(customerContactDTO);
return new ResponseEntity(result, HttpStatus.OK);
}
@GetMapping("/getCustomerRecall")
@ResponseBody
public ResponseEntity<ResultDTO> getCustomerRecall(@RequestParam("campaignId") Long campaignId, @RequestParam("customerId") Long customerId) {
ResultDTO result = customerService.getCustomerRecall(campaignId, customerId);
return new ResponseEntity(result, HttpStatus.OK); 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