Commit 67ed734e authored by Tu Bach's avatar Tu Bach

tubn campaign execute update manual search

parent 8c5fed76
...@@ -18,7 +18,9 @@ public interface CampaignAgentRepository extends JpaRepository<CampaignAgent, Lo ...@@ -18,7 +18,9 @@ public interface CampaignAgentRepository extends JpaRepository<CampaignAgent, Lo
@Query(value = "SELECT campaign_agent_seq.nextval FROM DUAL", nativeQuery = true) @Query(value = "SELECT campaign_agent_seq.nextval FROM DUAL", nativeQuery = true)
Long getNextSeqId(); Long getNextSeqId();
List<CampaignAgent> findByCampaignIdAndAgentId(Long campaignId, Long agentId); CampaignAgent findByCampaignIdAndAgentId(Long campaignId, Long agentId);
List<CampaignAgent> findByAgentId(Long agentId);
@Modifying @Modifying
@Query("delete from CampaignAgent c where c.campaignAgentId in (:p_campaign_agent_id)") @Query("delete from CampaignAgent c where c.campaignAgentId in (:p_campaign_agent_id)")
......
...@@ -460,6 +460,9 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -460,6 +460,9 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public List<CampaignDTO> searchCampaignExecute(CampaignRequestDTO campaignRequestDto, Pageable pageable) { public List<CampaignDTO> searchCampaignExecute(CampaignRequestDTO campaignRequestDto, Pageable pageable) {
List<CampaignDTO> result = new ArrayList<>(); List<CampaignDTO> result = new ArrayList<>();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = null;
StringBuilder expression = new StringBuilder() StringBuilder expression = new StringBuilder()
.append(" SELECT C.CAMPAIGN_CODE, C.CAMPAIGN_NAME, C.CONTENT, C.START_TIME, C.END_TIME, C.STATUS, CA.STATUS AS AGENT_STATUS, C.CAMPAIGN_ID ") .append(" SELECT C.CAMPAIGN_CODE, C.CAMPAIGN_NAME, C.CONTENT, C.START_TIME, C.END_TIME, C.STATUS, CA.STATUS AS AGENT_STATUS, C.CAMPAIGN_ID ")
.append(" FROM CAMPAIGN C INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID ") .append(" FROM CAMPAIGN C INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID ")
...@@ -506,12 +509,15 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -506,12 +509,15 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
} }
try { try {
Query query = entityManager.createNativeQuery(expression.toString()); session = sessionFactory.openSession();
session.beginTransaction();
SQLQuery query = session.createSQLQuery(expression.toString());
query.setParameter("pAgentId", Long.parseLong(campaignRequestDto.getAgentId())); query.setParameter("pAgentId", Long.parseLong(campaignRequestDto.getAgentId()));
if (!DataUtil.isNullOrEmpty(campaignRequestDto.getCampaignCode())) { if (!DataUtil.isNullOrEmpty(campaignRequestDto.getCampaignCode()) && !DataUtil.isNullOrEmpty(campaignRequestDto.getCampaignCode().trim())) {
String[] lstCode = campaignRequestDto.getCampaignCode().split(","); String[] lstCode = campaignRequestDto.getCampaignCode().split(",");
query.setParameter("pCampaignCode", lstCode); query.setParameterList("pCampaignCode", lstCode);
} }
if (!DataUtil.isNullOrEmpty(campaignRequestDto.getCampaignName())) { if (!DataUtil.isNullOrEmpty(campaignRequestDto.getCampaignName())) {
...@@ -557,9 +563,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -557,9 +563,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
query.setMaxResults(pageable.getPageSize()); query.setMaxResults(pageable.getPageSize());
} }
List<Object[]> data = query.getResultList(); List<Object[]> data = query.list();
//TimeZoneDialMode zoneDialMode = zoneDialModeRepository.findDialModeAtCurrent(Long.parseLong(campaignRequestDto.getCampaignId()), Long.parseLong(campaignRequestDto.getCompanySiteId()));
//TimeRangeDialMode rangeDialMode = rangeDialModeRepository.findDialModeAtCurrent(Long.parseLong(campaignRequestDto.getCampaignId()), Long.parseLong(campaignRequestDto.getCompanySiteId()));
for (Object[] obj : data) { for (Object[] obj : data) {
CampaignDTO item = new CampaignDTO(); CampaignDTO item = new CampaignDTO();
...@@ -580,7 +584,11 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -580,7 +584,11 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
return result; return result;
} catch (Exception e) { } catch (Exception e) {
// e.printStackTrace(); e.printStackTrace();
} finally {
if (null != session) {
session.close();
}
} }
return result; return result;
......
...@@ -20,7 +20,7 @@ public interface CampaignExecuteService { ...@@ -20,7 +20,7 @@ public interface CampaignExecuteService {
XSSFWorkbook exportInteractiveResult(CampaignRequestDTO dto) throws IOException; XSSFWorkbook exportInteractiveResult(CampaignRequestDTO dto) throws IOException;
ResultDTO searchCampaignExecute(CampaignRequestDTO requestDto, String xAuthToken); ResultDTO searchCampaignExecute(CampaignRequestDTO requestDto);
ResultDTO checkExecuteCampaign(CampaignRequestDTO requestDto); ResultDTO checkExecuteCampaign(CampaignRequestDTO requestDto);
...@@ -54,7 +54,7 @@ public interface CampaignExecuteService { ...@@ -54,7 +54,7 @@ public interface CampaignExecuteService {
ResultDTO updateListContactQuestResult(ContactQuestResultDTO dto); ResultDTO updateListContactQuestResult(ContactQuestResultDTO dto);
String getDialModeAtCurrent(Long campaignId, Long companySiteId); String getDialModeAtCurrent(Long companySiteId, Long campaignId);
ResultDTO getContactCustResultById(Long contactCustResultId); ResultDTO getContactCustResultById(Long contactCustResultId);
......
...@@ -261,31 +261,43 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -261,31 +261,43 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
//</editor-fold: hungtt> //</editor-fold: hungtt>
@Override @Override
public ResultDTO searchCampaignExecute(CampaignRequestDTO requestDto, String xAuthToken) { public ResultDTO searchCampaignExecute(CampaignRequestDTO requestDto) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
Map data = new HashMap(); Map data = new HashMap();
UserSession userSession = (UserSession) RedisUtil.getInstance().get(xAuthToken); String campaignSystemStatus = "";
String campaignExecuting = "";
Integer count = campaignExecuteRepository.searchCampaignExecute(requestDto, null).size(); try {
Integer count = campaignExecuteRepository.searchCampaignExecute(requestDto, null).size();
if (count > 0) {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
result.setTotalRow(count);
result.setListData(campaignExecuteRepository.searchCampaignExecute(requestDto, SQLBuilder.buildPageable(requestDto)));
Agents agents = agentsRepository.findByAgentId(requestDto.getAgentId());
//TimeZoneDialMode zoneDialMode = zoneDialModeRepository.findDialModeAtCurrent(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getCompanySiteId()));
//TimeRangeDialMode rangeDialMode = rangeDialModeRepository.findDialModeAtCurrent(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getCompanySiteId()));
if (agents.getUserStatus() != null && agents.getCampaignSystemStatus() != null) { if (count > 0) {
if (agents.getUserStatus().equalsIgnoreCase("CALLOUT") && agents.getCampaignSystemStatus().equalsIgnoreCase("AVAILABLE")) { result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
//if (zoneDialMode != null && zoneDialMode.getDialMode().equals(0) || rangeDialMode != null && rangeDialMode.getDialMode().equals(0)) result.setDescription(Constants.ApiErrorDesc.SUCCESS);
data.put("dialModeManual", "1"); result.setTotalRow(count);
List<CampaignDTO> campaignList = campaignExecuteRepository.searchCampaignExecute(requestDto, SQLBuilder.buildPageable(requestDto));
result.setListData(campaignList);
Agents agents = agentsRepository.findByAgentId(requestDto.getAgentId());
if (agents.getCampaignSystemStatus() != null && agents.getCampaignSystemStatus().equalsIgnoreCase("AVAILABLE")) {
campaignSystemStatus = "1";
for (CampaignDTO item : campaignList) {
if (item.getStatus() == 2 && item.getAgentStatus() == 1) {
campaignExecuting = item.getCampaignId().toString();
break;
}
}
} }
data.put("campaignSystemStatus", campaignSystemStatus);
data.put("campaignExecuting", campaignExecuting);
result.setData(data);
} else {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
data.put("dialModeManual", campaignSystemStatus);
data.put("campaignExecuting", campaignExecuting);
result.setData(data);
} }
result.setData(data); } catch (Exception e) {
} else {
result.setErrorCode(Constants.ApiErrorCode.ERROR); result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR); result.setDescription(Constants.ApiErrorDesc.ERROR);
} }
...@@ -298,7 +310,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -298,7 +310,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
try { try {
String dialMode = getDialModeAtCurrent(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getCompanySiteId())); String dialMode = getDialModeAtCurrent(Long.parseLong(requestDto.getCompanySiteId()), Long.parseLong(requestDto.getCampaignId()));
VSAUsers vsa = vsaUsersRepository.findByUserId(Long.parseLong(requestDto.getAgentId())); VSAUsers vsa = vsaUsersRepository.findByUserId(Long.parseLong(requestDto.getAgentId()));
AgentStatusStat ass = agentStatusStatRepository.findByKzUserIdAndCurrentStatusNotIn(vsa.getUserKazooId(), Arrays.asList("logged_out", "campaign")); AgentStatusStat ass = agentStatusStatRepository.findByKzUserIdAndCurrentStatusNotIn(vsa.getUserKazooId(), Arrays.asList("logged_out", "campaign"));
if (ass != null) { if (ass != null) {
...@@ -325,6 +337,14 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -325,6 +337,14 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
try { try {
if (requestDto.getType() == 2) {
List<CampaignAgent> ca = campaignAgentRepository.findByAgentId(Long.parseLong(requestDto.getAgentId()));
for (CampaignAgent item: ca) {
item.setStatus(0);
}
ca = campaignAgentRepository.saveAll(ca);
}
// update acd_full.agents table // update acd_full.agents table
Agents agents = agentsRepository.findByAgentId(requestDto.getAgentId()); Agents agents = agentsRepository.findByAgentId(requestDto.getAgentId());
agents.setAgentId(requestDto.getAgentId()); agents.setAgentId(requestDto.getAgentId());
...@@ -334,11 +354,9 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -334,11 +354,9 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
Agents a1 = agentsRepository.save(agents); Agents a1 = agentsRepository.save(agents);
// update ccms_full.campaign_agent table // update ccms_full.campaign_agent table
List<CampaignAgent> ca = campaignAgentRepository.findByCampaignIdAndAgentId(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getAgentId())); CampaignAgent ca = campaignAgentRepository.findByCampaignIdAndAgentId(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getAgentId()));
for (CampaignAgent item : ca) { ca.setStatus(1);
item.setStatus(1); ca = campaignAgentRepository.save(ca);
}
List<CampaignAgent> ca1 = campaignAgentRepository.saveAll(ca);
result.setErrorCode(Constants.ApiErrorCode.SUCCESS); result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS); result.setDescription(Constants.ApiErrorDesc.SUCCESS);
...@@ -542,11 +560,9 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -542,11 +560,9 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
try { try {
agentsRepository.updateAgentLogoutFromCampaign(dto.getAgentId(), "LOGOUT"); agentsRepository.updateAgentLogoutFromCampaign(dto.getAgentId(), "LOGOUT");
// update ccms_full.campaign_agent table // update ccms_full.campaign_agent table
List<CampaignAgent> ca = campaignAgentRepository.findByCampaignIdAndAgentId(Long.parseLong(dto.getCampaignId()), Long.parseLong(dto.getAgentId())); CampaignAgent ca = campaignAgentRepository.findByCampaignIdAndAgentId(Long.parseLong(dto.getCampaignId()), Long.parseLong(dto.getAgentId()));
for (CampaignAgent item : ca) { ca.setStatus(1);
item.setStatus(1); ca = campaignAgentRepository.save(ca);
}
List<CampaignAgent> ca1 = campaignAgentRepository.saveAll(ca);
result.setErrorCode(Constants.ApiErrorCode.SUCCESS); result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS); result.setDescription(Constants.ApiErrorDesc.SUCCESS);
...@@ -840,7 +856,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -840,7 +856,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
} }
@Override @Override
public String getDialModeAtCurrent(Long campaignId, Long companySiteId) { public String getDialModeAtCurrent(Long companySiteId, Long campaignId) {
// 0: manual, 1- Preview, 2-Progressive, 3-Super Progressive, 4- Predictive // 0: manual, 1- Preview, 2-Progressive, 3-Super Progressive, 4- Predictive
try { try {
TimeRangeDialMode lstTimeRange = rangeDialModeRepository.findDialModeAtCurrent(companySiteId, campaignId); TimeRangeDialMode lstTimeRange = rangeDialModeRepository.findDialModeAtCurrent(companySiteId, campaignId);
......
...@@ -34,9 +34,8 @@ public class CampaignExecuteController { ...@@ -34,9 +34,8 @@ public class CampaignExecuteController {
@PostMapping("/searchCampaignExecute") @PostMapping("/searchCampaignExecute")
@ResponseBody @ResponseBody
public ResponseEntity<ResultDTO> searchCampaignExecute(@RequestBody CampaignRequestDTO requestDto, HttpServletRequest request) { public ResponseEntity<ResultDTO> searchCampaignExecute(@RequestBody CampaignRequestDTO requestDto) {
String xAuthToken = request.getHeader("X-Auth-Token"); ResultDTO result = campaignExecuteService.searchCampaignExecute(requestDto);
ResultDTO result = campaignExecuteService.searchCampaignExecute(requestDto, xAuthToken);
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