Commit fca8e007 authored by Tu Bach's avatar Tu Bach

tubn campaign execute update search manual

parent b1895e46
package com.viettel.campaign.model.ccms_full; package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
@Entity
@Table(name = "AGENT_STATUS_STAT")
@Getter
@Setter
public class AgentStatusStat { public class AgentStatusStat {
@Id
@NotNull
@GeneratedValue(generator = "AGENT_STATUS_STAT_SEQ")
@SequenceGenerator(name = "AGENT_STATUS_STAT_SEQ", sequenceName = "AGENT_STATUS_STAT_SEQ", allocationSize = 1)
@Basic(optional = false)
@Column(name = "KZ_ACCOUNT_ID")
@NotNull
private String kzAccountId;
@Column(name = "KZ_USER_ID")
@NotNull
private String kzUserId;
@Column(name = "CURRENT_STATUS")
@NotNull
private String currentStatus;
@Column(name = "TIMESTAMP")
@NotNull
private String timestamp;
@Column(name = "PREVIOUS_STATUS")
private String previousStatus;
@Column(name = "PREVIOUS_STATUS_DURATION")
private Long previousStatusDuration;
@Column(name = "ID")
@NotNull
private Long id;
@Column(name = "CHANNEL")
@NotNull
private String channel;
} }
package com.viettel.campaign.repository.ccms_full; package com.viettel.campaign.repository.ccms_full;
public class AgentStatusStatRepository { import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.AgentStatusStat;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Repository
@Transactional(DataSourceQualify.CCMS_FULL)
public interface AgentStatusStatRepository extends JpaRepository<AgentStatusStat, Long> {
AgentStatusStat findByKzUserIdAndCurrentStatusNotIn(String kzUserId, List<String> currentStatus);
} }
...@@ -21,13 +21,13 @@ public interface TimeRangeDialModeRepository extends JpaRepository<TimeRangeDial ...@@ -21,13 +21,13 @@ public interface TimeRangeDialModeRepository extends JpaRepository<TimeRangeDial
List<TimeRangeDialMode> findTimeRangeDialModeByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId); List<TimeRangeDialMode> findTimeRangeDialModeByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId);
@Query(value = "SELECT * " + @Query(value = "SELECT * " +
"FROM (SELECT Z.* " + "FROM (SELECT R.* " +
" FROM TIME_ZONE_DIAL_MODE Z INNER JOIN CAMPAIGN C ON Z.CAMPAIGN_ID = C.CAMPAIGN_ID " + " FROM TIME_RANGE_DIAL_MODE R INNER JOIN CAMPAIGN C ON R.CAMPAIGN_ID = C.CAMPAIGN_ID" +
" WHERE Z.COMPANY_SITE_ID = :companySiteId " + " WHERE R.COMPANY_SITE_ID = :companySiteId " +
" AND Z.CAMPAIGN_ID = :campaignId " + " AND R.CAMPAIGN_ID = :campaignId " +
" AND TO_DATE(START_TIME, 'YYYY/MM/DD') <= TO_DATE(SYSDATE, 'YYYY/MM/DD') " + " AND C.START_TIME <= SYSDATE " +
" AND TO_DATE((to_char(SYSDATE, 'YYYY/MM/DD') || ' ' || Z.HOUR || ':' || Z.MINUTE || ':00'), 'YYYY/MM/DD HH24:MI:SS') <= SYSDATE " + " AND R.START_TIME <= SYSDATE " +
" ORDER BY TO_DATE((to_char(SYSDATE, 'YYYY/MM/DD') || ' ' || Z.HOUR || ':' || Z.MINUTE || ':00'), 'YYYY/MM/DD HH24:MI:SS') DESC " + " ORDER BY R.START_TIME DESC " +
" ) WHERE ROWNUM = 1", nativeQuery = true) " ) WHERE ROWNUM = 1", nativeQuery = true)
TimeRangeDialMode findDialModeAtCurrent(@Param("companySiteId") Long companySiteId, @Param("campaignId") Long campaignId); TimeRangeDialMode findDialModeAtCurrent(@Param("companySiteId") Long companySiteId, @Param("campaignId") Long campaignId);
......
...@@ -21,14 +21,15 @@ public interface TimeZoneDialModeRepository extends JpaRepository<TimeZoneDialMo ...@@ -21,14 +21,15 @@ public interface TimeZoneDialModeRepository extends JpaRepository<TimeZoneDialMo
List<TimeZoneDialMode> findTimeZoneDialModeByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId); List<TimeZoneDialMode> findTimeZoneDialModeByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId);
@Query(value = "SELECT * " + @Query(value = "SELECT * " +
"FROM (SELECT R.* " + "FROM (SELECT Z.* " +
" FROM TIME_RANGE_DIAL_MODE R " + " FROM TIME_ZONE_DIAL_MODE Z INNER JOIN CAMPAIGN C ON Z.CAMPAIGN_ID = C.CAMPAIGN_ID " +
" WHERE R.CAMPAIGN_ID = 11 " + " WHERE Z.COMPANY_SITE_ID = :companySiteId " +
" AND R.COMPANY_SITE_ID = 662691 " + " AND Z.CAMPAIGN_ID = :campaignId " +
" AND TO_DATE(R.START_TIME, 'YYYY/MM/DD HH24:MI:SS') <= TO_DATE(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') " + " AND TO_CHAR(C.START_TIME, 'YYYY/MM/DD') <= TO_CHAR(SYSDATE, 'YYYY/MM/DD') " +
" ORDER BY R.START_TIME DESC " + " AND TO_DATE((TO_CHAR(SYSDATE, 'YYYY/MM/DD') || ' ' || Z.HOUR || ':' || Z.MINUTE || ':00'), 'YYYY/MM/DD HH24:MI:SS') <= SYSDATE " +
" ORDER BY TO_DATE((TO_CHAR(SYSDATE, 'YYYY/MM/DD') || ' ' || Z.HOUR || ':' || Z.MINUTE || ':00'), 'YYYY/MM/DD HH24:MI:SS') DESC " +
" ) WHERE ROWNUM = 1", nativeQuery = true) " ) WHERE ROWNUM = 1", nativeQuery = true)
TimeZoneDialMode findDialModeAtCurrent(@Param("campaignId") Long campaignId, @Param("companySiteId") Long companySiteId); TimeZoneDialMode findDialModeAtCurrent(@Param("companySiteId") Long companySiteId, @Param("campaignId") Long campaignId);
void deleteAllByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId); void deleteAllByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId);
} }
...@@ -6,5 +6,8 @@ import org.springframework.data.jpa.repository.JpaRepository; ...@@ -6,5 +6,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List; import java.util.List;
public interface VSAUsersRepository extends JpaRepository<VSAUsers, Long> { public interface VSAUsersRepository extends JpaRepository<VSAUsers, Long> {
List<VSAUsers> findAllByCompanySiteId(Long companySiteId); List<VSAUsers> findAllByCompanySiteId(Long companySiteId);
VSAUsers findByUserId(Long userId);
} }
...@@ -22,6 +22,8 @@ public interface CampaignExecuteService { ...@@ -22,6 +22,8 @@ public interface CampaignExecuteService {
ResultDTO searchCampaignExecute(CampaignRequestDTO requestDto, String xAuthToken); ResultDTO searchCampaignExecute(CampaignRequestDTO requestDto, String xAuthToken);
ResultDTO checkExecuteCampaign(CampaignRequestDTO requestDto);
ResultDTO getExecuteCampaign(CampaignRequestDTO requestDto); ResultDTO getExecuteCampaign(CampaignRequestDTO requestDto);
ResultDTO getCustomer(CampaignCustomerDTO dto); ResultDTO getCustomer(CampaignCustomerDTO dto);
......
...@@ -79,6 +79,12 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -79,6 +79,12 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
@Autowired @Autowired
CustomerRepository customerRepository; CustomerRepository customerRepository;
@Autowired
AgentStatusStatRepository agentStatusStatRepository;
@Autowired
VSAUsersRepository vsaUsersRepository;
public CampaignExecuteServiceImp() throws NoSuchAlgorithmException { public CampaignExecuteServiceImp() throws NoSuchAlgorithmException {
} }
...@@ -287,10 +293,36 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -287,10 +293,36 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
return result; return result;
} }
@Override
public ResultDTO checkExecuteCampaign(CampaignRequestDTO requestDto) {
ResultDTO result = new ResultDTO();
try {
String dialMode = getDialModeAtCurrent(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getCompanySiteId()));
VSAUsers vsa = vsaUsersRepository.findByUserId(Long.parseLong(requestDto.getAgentId()));
AgentStatusStat ass = agentStatusStatRepository.findByKzUserIdAndCurrentStatusNotIn(vsa.getUserKazooId(), Arrays.asList("logged_out", "campaign"));
if (ass != null) {
result.setErrorCode("02");
result.setDescription("campaign-agents-err-callout");
} else if (dialMode.equalsIgnoreCase("-1")) {
result.setErrorCode("03");
result.setDescription("campaign-agents-err-dial-mode");
} else {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
}
} catch (Exception e) {
// e.printStackTrace();
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
}
return result;
}
@Override @Override
public ResultDTO getExecuteCampaign(CampaignRequestDTO requestDto) { public ResultDTO getExecuteCampaign(CampaignRequestDTO requestDto) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
String dialMode = getDialModeAtCurrent(Long.parseLong(requestDto.getCompanySiteId()), Long.parseLong(requestDto.getCampaignId()));
try { try {
// update acd_full.agents table // update acd_full.agents table
...@@ -814,9 +846,9 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -814,9 +846,9 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
TimeRangeDialMode lstTimeRange = rangeDialModeRepository.findDialModeAtCurrent(companySiteId, campaignId); TimeRangeDialMode lstTimeRange = rangeDialModeRepository.findDialModeAtCurrent(companySiteId, campaignId);
TimeZoneDialMode lstTimeZone = zoneDialModeRepository.findDialModeAtCurrent(companySiteId, campaignId); TimeZoneDialMode lstTimeZone = zoneDialModeRepository.findDialModeAtCurrent(companySiteId, campaignId);
if (lstTimeRange.getTimeRangeDialModeId() != null) { if (lstTimeRange != null) {
return lstTimeRange.getDialMode().toString(); return lstTimeRange.getDialMode().toString();
} else if (lstTimeZone.getTimeZoneDialModeId() != null) { } else if (lstTimeZone != null) {
return lstTimeZone.getDialMode().toString(); return lstTimeZone.getDialMode().toString();
} }
} catch (Exception e) { } catch (Exception e) {
......
...@@ -40,6 +40,13 @@ public class CampaignExecuteController { ...@@ -40,6 +40,13 @@ public class CampaignExecuteController {
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
@PostMapping("/checkExecuteCampaign")
@ResponseBody
public ResponseEntity<ResultDTO> checkExecuteCampaign(@RequestBody CampaignRequestDTO requestDto) {
ResultDTO result = campaignExecuteService.checkExecuteCampaign(requestDto);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@PostMapping("/getExecuteCampaign") @PostMapping("/getExecuteCampaign")
@ResponseBody @ResponseBody
public ResponseEntity<ResultDTO> getExecuteCampaign(@RequestBody CampaignRequestDTO requestDto) { public ResponseEntity<ResultDTO> getExecuteCampaign(@RequestBody CampaignRequestDTO requestDto) {
......
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