Commit a3c9b61d authored by Phạm Duy Phi's avatar Phạm Duy Phi
parents 913ed792 e099d3d4
...@@ -2,6 +2,7 @@ package com.viettel.campaign.repository.ccms_full; ...@@ -2,6 +2,7 @@ package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.config.DataSourceQualify; import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.ContactQuestResult; import com.viettel.campaign.model.ccms_full.ContactQuestResult;
import com.viettel.campaign.web.dto.ContactQuestResultDTO;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -11,5 +12,10 @@ import java.util.List; ...@@ -11,5 +12,10 @@ import java.util.List;
@Repository @Repository
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public interface ContactQuestResultRepository extends JpaRepository<ContactQuestResult, Long> { public interface ContactQuestResultRepository extends JpaRepository<ContactQuestResult, Long> {
List<ContactQuestResultDTO> findByCompanySiteIdAndCampaignId(Long companySiteId, Long campaignId);
List<ContactQuestResult> findByContactCustResultId(Long contactCustResultId);
List<ContactQuestResult> findByCompanySiteIdAndCampaignIdAndCustomerId(Long companySiteId, Long campaignId, Long customerId); List<ContactQuestResult> findByCompanySiteIdAndCampaignIdAndCustomerId(Long companySiteId, Long campaignId, Long customerId);
} }
...@@ -123,7 +123,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -123,7 +123,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
sql.append(" CCR.PHONE_NUMBER AS phoneNumber, "); sql.append(" CCR.PHONE_NUMBER AS phoneNumber, ");
sql.append(" CUS.NAME AS customerName, "); sql.append(" CUS.NAME AS customerName, ");
sql.append(" CCR.START_CALL AS startCall, "); sql.append(" CCR.START_CALL AS startCall, ");
sql.append(" CC1.COMPLETE_NAME AS contactStatus, "); sql.append(" CC1.COMPLETE_NAME AS connectStatus, ");
sql.append(" CC2.COMPLETE_NAME AS surveyStatus, "); sql.append(" CC2.COMPLETE_NAME AS surveyStatus, ");
sql.append(" C.STATUS AS status, "); sql.append(" C.STATUS AS status, ");
sql.append(" CCR.STATUS AS recordStatus, "); sql.append(" CCR.STATUS AS recordStatus, ");
...@@ -291,7 +291,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -291,7 +291,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
item.setPhoneNumber((String) obj[5]); item.setPhoneNumber((String) obj[5]);
item.setCustomerName((String) obj[6]); item.setCustomerName((String) obj[6]);
item.setStartCall(obj[7] == null ? null : (Date) obj[7]); item.setStartCall(obj[7] == null ? null : (Date) obj[7]);
item.setContactStatus((Short) obj[8]); item.setConnectStatus((String) obj[8]);
item.setSurveyStatus((String) obj[9]); item.setSurveyStatus((String) obj[9]);
item.setStatus(obj[10] == null ? 0 : ((BigDecimal) obj[10]).shortValueExact()); item.setStatus(obj[10] == null ? 0 : ((BigDecimal) obj[10]).shortValueExact());
item.setRecordStatus(obj[11] == null ? 0 : ((BigDecimal) obj[11]).shortValueExact()); item.setRecordStatus(obj[11] == null ? 0 : ((BigDecimal) obj[11]).shortValueExact());
......
...@@ -32,8 +32,6 @@ public interface CampaignExecuteService { ...@@ -32,8 +32,6 @@ public interface CampaignExecuteService {
ResultDTO getCallLog(ReceiveCustLogDTO dto); ResultDTO getCallLog(ReceiveCustLogDTO dto);
ResultDTO getCallStatus(CampaignRequestDTO dto);
ResultDTO getAgentLogout(CampaignRequestDTO dto); ResultDTO getAgentLogout(CampaignRequestDTO dto);
ResultDTO updateContactCustResult(ContactCustResultDTO dto, UserSession userSession); ResultDTO updateContactCustResult(ContactCustResultDTO dto, UserSession userSession);
...@@ -50,7 +48,9 @@ public interface CampaignExecuteService { ...@@ -50,7 +48,9 @@ public interface CampaignExecuteService {
ResultDTO getCustomerInfor(Long companySiteId, Long customerId, Long campaignId); ResultDTO getCustomerInfor(Long companySiteId, Long customerId, Long campaignId);
ResultDTO createListContacQuestResult(List<ContactQuestResultDTO> dtoList); ResultDTO createListContactQuestResult(List<ContactQuestResultDTO> dtoList);
ResultDTO updateListContactQuestResult(ContactQuestResultDTO dto);
String getDialModeAtCurrent(Long campaignId, Long companySiteId); String getDialModeAtCurrent(Long campaignId, Long companySiteId);
......
...@@ -5,7 +5,6 @@ import com.viettel.campaign.model.acd_full.Agents; ...@@ -5,7 +5,6 @@ import com.viettel.campaign.model.acd_full.Agents;
import com.viettel.campaign.model.ccms_full.*; import com.viettel.campaign.model.ccms_full.*;
import com.viettel.campaign.repository.acd_full.AgentsRepository; import com.viettel.campaign.repository.acd_full.AgentsRepository;
import com.viettel.campaign.repository.ccms_full.*; import com.viettel.campaign.repository.ccms_full.*;
import com.viettel.campaign.service.CampaignCfgService;
import com.viettel.campaign.service.CampaignExecuteService; import com.viettel.campaign.service.CampaignExecuteService;
import com.viettel.campaign.utils.*; import com.viettel.campaign.utils.*;
import com.viettel.campaign.web.dto.*; import com.viettel.campaign.web.dto.*;
...@@ -504,24 +503,6 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -504,24 +503,6 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
return result; return result;
} }
@Override
public ResultDTO getCallStatus(CampaignRequestDTO dto) {
ResultDTO result = new ResultDTO();
// Random r = new Random();
String[] arr = {"ACCEPT", "REJECT", "MISSING"};
if (dto != null) {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
result.setData(arr[this.rand.nextInt(arr.length)]);
} else {
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
}
return result;
}
@Override @Override
public ResultDTO getAgentLogout(CampaignRequestDTO dto) { public ResultDTO getAgentLogout(CampaignRequestDTO dto) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
...@@ -554,14 +535,19 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -554,14 +535,19 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
try { try {
if (dto.getEventCall().equalsIgnoreCase("call")) { if (dto.getEventCall().equalsIgnoreCase("call")) {
ccr = ccResultRepository.save(modelMapper.map(dto, ContactCustResult.class)); ccr = ccResultRepository.save(modelMapper.map(dto, ContactCustResult.class));
} else if (dto.getContactCustResultId() != null) { }
if (dto.getContactCustResultId() != null) {
ccr = ccResultRepository.getOne(dto.getContactCustResultId()); ccr = ccResultRepository.getOne(dto.getContactCustResultId());
if (dto.getEventCall().equalsIgnoreCase("ringing")) { if (dto.getEventCall().equalsIgnoreCase("ringing")) {
ccr.setCallId(dto.getCallId()); ccr.setCallId(dto.getCallId());
ccr.setUpdateBy(userSession.getUserId()); ccr.setUpdateBy(userSession.getUserId());
ccr.setUpdateTime(new Date()); ccr.setUpdateTime(new Date());
ccr = ccResultRepository.save(ccr); ccr = ccResultRepository.save(ccr);
} else if (dto.getEventCall().equalsIgnoreCase("ended")) { }
if (dto.getEventCall().equalsIgnoreCase("ended")) {
ccr.setDurationCall(dto.getDurationCall()); ccr.setDurationCall(dto.getDurationCall());
ccr.setStartCall(dto.getStartCall()); ccr.setStartCall(dto.getStartCall());
ccr.setReceiveTime(dto.getReceiveTime()); ccr.setReceiveTime(dto.getReceiveTime());
...@@ -576,6 +562,19 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -576,6 +562,19 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
ag.setSystemStatus("AVAILABLE"); ag.setSystemStatus("AVAILABLE");
ag = agentsRepository.save(ag); ag = agentsRepository.save(ag);
} }
if (dto.getEventCall().equalsIgnoreCase("endedBeforeTen")) {
ccr.setStatus((short) 0);
ccr.setUpdateBy(userSession.getUserId());
ccr.setUpdateTime(new Date());
ccr = ccResultRepository.save(ccr);
}
}
if (dto.getEventCall().equalsIgnoreCase("endedAfterTen")) {
ccr = modelMapper.map(dto, ContactCustResult.class);
ccr.setPreEndTime(ccResultRepository.getMaxCreateTime(dto.getCampaignId(), dto.getAgentId()));
ccr = ccResultRepository.save(ccr);
} }
result.setErrorCode(Constants.ApiErrorCode.SUCCESS); result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
...@@ -763,15 +762,15 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -763,15 +762,15 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO createListContacQuestResult(List<ContactQuestResultDTO> dtoList) { public ResultDTO createListContactQuestResult(List<ContactQuestResultDTO> dtoList) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
List<ContactQuestResult> lstContactQuestResult = new ArrayList<>(); List<ContactQuestResult> lstContactQuestResult = new ArrayList<>();
for (ContactQuestResultDTO item : dtoList) {
lstContactQuestResult.add(modelMapper.map(item, ContactQuestResult.class));
}
try { try {
for (ContactQuestResultDTO item : dtoList) {
lstContactQuestResult.add(modelMapper.map(item, ContactQuestResult.class));
}
List<ContactQuestResult> dataReturn = new ArrayList<>(); List<ContactQuestResult> dataReturn = new ArrayList<>();
dataReturn = contactQuestResultRepository.saveAll(lstContactQuestResult); dataReturn = contactQuestResultRepository.saveAll(lstContactQuestResult);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
...@@ -785,6 +784,29 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -785,6 +784,29 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
return resultDTO; return resultDTO;
} }
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO updateListContactQuestResult(ContactQuestResultDTO dto) {
ResultDTO resultDTO = new ResultDTO();
List<ContactQuestResult> lstContactQuestResult = new ArrayList<>();
try {
lstContactQuestResult = contactQuestResultRepository.findByContactCustResultId(dto.getContactCustResultId());
for (ContactQuestResult item : lstContactQuestResult) {
item.setStatus((short) 0);
}
lstContactQuestResult = contactQuestResultRepository.saveAll(lstContactQuestResult);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
resultDTO.setListData(lstContactQuestResult);
} catch (Exception e) {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
return resultDTO;
}
@Override @Override
public String getDialModeAtCurrent(Long campaignId, Long companySiteId) { public String getDialModeAtCurrent(Long campaignId, Long companySiteId) {
// 0: manual, 1- Preview, 2-Progressive, 3-Super Progressive, 4- Predictive // 0: manual, 1- Preview, 2-Progressive, 3-Super Progressive, 4- Predictive
...@@ -798,7 +820,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -798,7 +820,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
return lstTimeZone.getDialMode().toString(); return lstTimeZone.getDialMode().toString();
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return "-1"; return "-1";
......
...@@ -52,6 +52,7 @@ public class ContactCustResultDTO extends BaseDTO { ...@@ -52,6 +52,7 @@ public class ContactCustResultDTO extends BaseDTO {
private String campaignCode; private String campaignCode;
private String userName; private String userName;
private String surveyStatus; private String surveyStatus;
private String connectStatus;
private Boolean enableEdit; private Boolean enableEdit;
private Integer totalRow; private Integer totalRow;
......
...@@ -68,13 +68,6 @@ public class CampaignExecuteController { ...@@ -68,13 +68,6 @@ public class CampaignExecuteController {
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
@PostMapping("/getCallStatus")
@ResponseBody
public ResponseEntity<ResultDTO> getCallStatus(@RequestBody CampaignRequestDTO requestDto) {
ResultDTO result = campaignExecuteService.getCallStatus(requestDto);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@GetMapping("/countRecallCustomer") @GetMapping("/countRecallCustomer")
@ResponseBody @ResponseBody
public ResponseEntity countRecallCustomer(@RequestParam("companySiteId") Long companySiteId, @RequestParam("agentId") Long agentId) { public ResponseEntity countRecallCustomer(@RequestParam("companySiteId") Long companySiteId, @RequestParam("agentId") Long agentId) {
...@@ -169,7 +162,15 @@ public class CampaignExecuteController { ...@@ -169,7 +162,15 @@ public class CampaignExecuteController {
@ResponseBody @ResponseBody
public ResponseEntity<ResultDTO> createListContactQuestResult(@RequestBody List<ContactQuestResultDTO> dtoList) { public ResponseEntity<ResultDTO> createListContactQuestResult(@RequestBody List<ContactQuestResultDTO> dtoList) {
ResultDTO result = null; ResultDTO result = null;
result = campaignExecuteService.createListContacQuestResult(dtoList); result = campaignExecuteService.createListContactQuestResult(dtoList);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@PutMapping("/updateListContactQuestResult")
@ResponseBody
public ResponseEntity<ResultDTO> updateListContactQuestResult(@RequestBody ContactQuestResultDTO dto) {
ResultDTO result = null;
result = campaignExecuteService.updateListContactQuestResult(dto);
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