Commit b7ee83e1 authored by Phạm Duy Phi's avatar Phạm Duy Phi
parents 8d9584f9 1a7e533e
...@@ -3,4 +3,3 @@ target/ ...@@ -3,4 +3,3 @@ target/
logs/ logs/
out/ out/
/campaign.iml /campaign.iml
/lib
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<name>service-campaign</name> <name>service-campaign</name>
<description>Campaign service for Spring Boot</description> <description>Campaign service for Spring Boot</description>
<packaging>jar</packaging>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
...@@ -99,8 +98,8 @@ ...@@ -99,8 +98,8 @@
<dependency> <dependency>
<groupId>com.oracle</groupId> <groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId> <artifactId>ojdbc7</artifactId>
<!-- <scope>system</scope>--> <scope>system</scope>
<!-- <systemPath>${project.basedir}/lib/ojdbc7.jar</systemPath>--> <systemPath>${project.basedir}/lib/ojdbc7.jar</systemPath>
<version>1.0</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
...@@ -281,14 +280,5 @@ ...@@ -281,14 +280,5 @@
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<repositories>
<repository>
<id>unknown-jars-temp-repo</id>
<name>A temporary repository created by NetBeans for libraries and jars it could not identify. Please
replace the dependencies in this repository with correct ones and delete this repository.
</name>
<url>file:${project.basedir}/lib</url>
</repository>
</repositories>
</project> </project>
...@@ -31,27 +31,27 @@ public class CorsFilter implements Filter { ...@@ -31,27 +31,27 @@ public class CorsFilter implements Filter {
HttpServletRequest request = (HttpServletRequest) req; HttpServletRequest request = (HttpServletRequest) req;
// chain.doFilter(req, resp); chain.doFilter(req, resp);
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) { // if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
chain.doFilter(req, resp); // chain.doFilter(req, resp);
return; // return;
} // }
if ("/".equals(request.getRequestURI())) { // if ("/".equals(request.getRequestURI())) {
chain.doFilter(req, resp); // chain.doFilter(req, resp);
return; // return;
} // }
String xAuthToken = request.getHeader("X-Auth-Token"); // String xAuthToken = request.getHeader("X-Auth-Token");
if (xAuthToken == null || "".equals(xAuthToken)) { // if (xAuthToken == null || "".equals(xAuthToken)) {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is null."); // response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is null.");
return; // return;
} // }
Object obj = RedisUtil.getInstance().get(xAuthToken); // Object obj = RedisUtil.getInstance().get(xAuthToken);
if (obj instanceof UserSession) { // if (obj instanceof UserSession) {
chain.doFilter(req, resp); // chain.doFilter(req, resp);
} else { // } else {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is invalid."); // response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is invalid.");
} // }
} }
@Override @Override
......
package com.viettel.campaign.mapper; package com.viettel.campaign.mapper;
import com.viettel.campaign.web.dto.CampaignCompleteCodeDTO; import com.viettel.campaign.web.dto.CampaignCfgDTO;
import com.viettel.campaign.model.ccms_full.CampaignCompleteCode; import com.viettel.campaign.model.ccms_full.CampaignCfg;
public class CampaignCompleteCodeMapper extends BaseMapper<CampaignCompleteCode, CampaignCompleteCodeDTO> { public class CampaignCompleteCodeMapper extends BaseMapper<CampaignCfg, CampaignCfgDTO> {
@Override @Override
public CampaignCompleteCodeDTO toDtoBean(CampaignCompleteCode entity) { public CampaignCfgDTO toDtoBean(CampaignCfg entity) {
CampaignCompleteCodeDTO dto = new CampaignCompleteCodeDTO(); CampaignCfgDTO dto = new CampaignCfgDTO();
if (entity != null) { if (entity != null) {
dto.setCampaignCompleteCodeId(entity.getCampaignCompleteCodeId()); dto.setCampaignCompleteCodeId(entity.getCampaignCompleteCodeId());
...@@ -34,8 +34,8 @@ public class CampaignCompleteCodeMapper extends BaseMapper<CampaignCompleteCode, ...@@ -34,8 +34,8 @@ public class CampaignCompleteCodeMapper extends BaseMapper<CampaignCompleteCode,
} }
@Override @Override
public CampaignCompleteCode toPersistenceBean(CampaignCompleteCodeDTO dtoBean) { public CampaignCfg toPersistenceBean(CampaignCfgDTO dtoBean) {
CampaignCompleteCode entity = new CampaignCompleteCode(); CampaignCfg entity = new CampaignCfg();
if (dtoBean != null) { if (dtoBean != null) {
entity.setCampaignCompleteCodeId(dtoBean.getCampaignCompleteCodeId()); entity.setCampaignCompleteCodeId(dtoBean.getCampaignCompleteCodeId());
......
package com.viettel.campaign.mapper;
import com.viettel.campaign.model.ccms_full.ReceiveCustLog;
import com.viettel.campaign.web.dto.ReceiveCustLogDTO;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
public class ReceiveCustLogMapper extends BaseMapper<ReceiveCustLog, ReceiveCustLogDTO> {
@Autowired
ModelMapper modelMapper;
@Override
public ReceiveCustLogDTO toDtoBean(ReceiveCustLog receiveCustLog) {
return modelMapper.map(receiveCustLog, ReceiveCustLogDTO.class);
}
@Override
public ReceiveCustLog toPersistenceBean(ReceiveCustLogDTO dtoBean) {
return modelMapper.map(dtoBean, ReceiveCustLog.class);
}
}
...@@ -11,7 +11,7 @@ import java.util.Date; ...@@ -11,7 +11,7 @@ import java.util.Date;
@Table(name = "CAMPAIGN_COMPLETE_CODE") @Table(name = "CAMPAIGN_COMPLETE_CODE")
@Getter @Getter
@Setter @Setter
public class CampaignCompleteCode implements Serializable { public class CampaignCfg implements Serializable {
@Id @Id
@GeneratedValue(generator = "CAMPAIGN_COMPLETE_CODE_SEQ") @GeneratedValue(generator = "CAMPAIGN_COMPLETE_CODE_SEQ")
......
package com.viettel.campaign.model.ccms_full;
public class CustomizeField {
}
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
@Entity
@Table(name = "RECEIVE_CUST_LOG")
@Getter
@Setter
public class ReceiveCustLog implements Serializable {
@Id
@GeneratedValue(generator = "RECEIVE_CUST_LOG_SEQ")
@SequenceGenerator(name = "RECEIVE_CUST_LOG_SEQ", sequenceName = "RECEIVE_CUST_LOG_SEQ", allocationSize = 1)
@Basic(optional = false)
@Column(name = "RECEIVE_CUST_LOG_ID")
private Long receiveCustLogId;
@Column(name = "COMPANY_SITE_ID")
private Long companySiteId;
@Column(name = "CUSTOMER_ID")
private Long customerId;
@Column(name = "AGENT_ID")
private Long agentId;
@Column(name = "CAMPAIGN_ID")
private Long campaignId;
@Column(name = "START_TIME")
@Temporal(TemporalType.TIMESTAMP)
private Date startTime;
@Column(name = "END_TIME")
@Temporal(TemporalType.TIMESTAMP)
private Date endTime;
}
...@@ -3,9 +3,6 @@ package com.viettel.campaign.repository.acd_full; ...@@ -3,9 +3,6 @@ package com.viettel.campaign.repository.acd_full;
import com.viettel.campaign.config.DataSourceQualify; import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.acd_full.Agents; import com.viettel.campaign.model.acd_full.Agents;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -14,8 +11,4 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -14,8 +11,4 @@ import org.springframework.transaction.annotation.Transactional;
public interface AgentsRepository extends JpaRepository<Agents, String> { public interface AgentsRepository extends JpaRepository<Agents, String> {
Agents findByAgentId(String agentId); Agents findByAgentId(String agentId);
@Modifying
@Query(value = "UPDATE Agents SET campaignSystemStatus = :campaignSystemStatus WHERE agentId = :agentId")
void updateAgentLogoutFromCampaign(@Param("agentId") Long agentId, @Param("campaignSystemStatus") String campaignSystemStatus);
} }
package com.viettel.campaign.repository.ccms_full; package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.ApParam; import com.viettel.campaign.model.ccms_full.ApParam;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
...@@ -8,12 +7,10 @@ import org.springframework.data.jpa.repository.JpaRepository; ...@@ -8,12 +7,10 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
@Repository @Repository
@Transactional(DataSourceQualify.CCMS_FULL)
public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParamRepositoryCustom { public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParamRepositoryCustom {
Page<ApParam> findAll(Pageable pageable); Page<ApParam> findAll(Pageable pageable);
...@@ -24,6 +21,6 @@ public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParam ...@@ -24,6 +21,6 @@ public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParam
@Query(value = "SELECT p FROM ApParam p WHERE status = 1 AND parType LIKE concat('%', :parType, '%') ") @Query(value = "SELECT p FROM ApParam p WHERE status = 1 AND parType LIKE concat('%', :parType, '%') ")
List<ApParam> findParamByParType(@Param("parType") String parType); List<ApParam> findParamByParType(@Param("parType") String parType);
@Query(value = "FROM ApParam WHERE status = 1 AND parType = :parType") @Query(value = "select a from ApParam a WHERE status = 1 AND parType = 'CAMPAIGN_TYPE'")
List<ApParam> findAllParam(@Param("parType") String parType); List<ApParam> findAllParam();
} }
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.CampaignCfg;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CampaignCfgRepository extends JpaRepository<CampaignCfg, Long>{
@Query(" select u FROM CampaignCfg u WHERE u.status = 1")
Page<CampaignCfg> findAll(Pageable pageable);
@Query("FROM CampaignCfg WHERE completeName LIKE concat('%', :name, '%') ")
List<CampaignCfg> findByName(@Param("name") String name, Pageable pageable);
List<CampaignCfg> findByCompleteNameContains(String name, Pageable pageable);
@Modifying
@Query("update CampaignCfg c set c.status = 0 where c.campaignCompleteCodeId in (:p_ids) and c.companySiteId=:p_company_site_id" )
int deletedList(@Param("p_ids") List<Long> p_ids, @Param("p_company_site_id") Long p_company_site_id);
List<CampaignCfg> findCampaignCompleteCodesByCompanySiteId(Long companySiteId);
@Query(value="SELECT max(completeValue) FROM CampaignCfg WHERE companySiteId = :companySiteId GROUP BY companySiteId")
Short findByMaxCompanySiteId(Long companySiteId);
@Modifying
@Query("update CampaignCfg c set c.status = 0 where c.campaignCompleteCodeId=:p_campaignCompleteCode_list_id and c.companySiteId=:p_company_site_id")
int deleteCampaignCompleteCodeBy(@Param("p_campaignCompleteCode_list_id") Long p_campaignCompleteCode_list_id, @Param("p_company_site_id") Long p_company_site_id);
@Query(value = "FROM CampaignCfg WHERE status = 1 AND completeValue = :completeValue AND completeType = :completeType AND companySiteId = :companySiteId")
List<CampaignCfg> getCustomerStatus(@Param("completeValue") String completeValue, @Param("completeType") Short completeType, @Param("companySiteId") Long companySiteId);
@Query(value = "FROM CampaignCfg WHERE status = 1 AND completeValue <> :completeValue AND completeType = :completeType AND companySiteId = :companySiteId")
List<CampaignCfg> getCustomerStatusWithoutValue(@Param("completeValue") String completeValue, @Param("completeType") Short completeType, @Param("companySiteId") Long companySiteId);
@Query("select c from CampaignCfg c where c.companySiteId =:p_company_site_id")
List<CampaignCfg> findAllCampaignCompleteCode();
}
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.CampaignCfg;
public interface CampaignCfgRepositoryCustom {
CampaignCfg updateStatusById(Long id);
CampaignCfg findMaxValueCampaignType(Long companySiteId);
}
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.CampaignCompleteCode;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CampaignCompleteCodeRepository extends JpaRepository<CampaignCompleteCode, Long>{
@Query(" select u FROM CampaignCompleteCode u WHERE u.status = 1")
Page<CampaignCompleteCode> findAll(Pageable pageable);
@Query("FROM CampaignCompleteCode WHERE completeName LIKE concat('%', :name, '%') ")
List<CampaignCompleteCode> findByName(@Param("name") String name, Pageable pageable);
List<CampaignCompleteCode> findByCompleteNameContains(String name, Pageable pageable);
@Modifying
@Query("update CampaignCompleteCode c set c.status = 0 where c.campaignCompleteCodeId in (:p_ids) and c.companySiteId=:p_company_site_id" )
int deletedList(@Param("p_ids") List<Long> p_ids, @Param("p_company_site_id") Long p_company_site_id);
List<CampaignCompleteCode> findCampaignCompleteCodesByCompanySiteId(Long companySiteId);
@Query(value="SELECT max(completeValue) FROM CampaignCompleteCode WHERE companySiteId = :companySiteId GROUP BY companySiteId")
Short findByMaxCompanySiteId(Long companySiteId);
@Modifying
@Query("update CampaignCompleteCode c set c.status = 0 where c.campaignCompleteCodeId=:p_campaignCompleteCode_list_id and c.companySiteId=:p_company_site_id")
int deleteCampaignCompleteCodeBy(@Param("p_campaignCompleteCode_list_id") Long p_campaignCompleteCode_list_id, @Param("p_company_site_id") Long p_company_site_id);
@Query(value = "FROM CampaignCompleteCode WHERE status = 1 AND completeValue = :completeValue AND completeType = :completeType AND companySiteId = :companySiteId")
List<CampaignCompleteCode> getCustomerStatus(@Param("completeValue") String completeValue, @Param("completeType") Short completeType, @Param("companySiteId") Long companySiteId);
@Query(value = "FROM CampaignCompleteCode WHERE status = 1 AND completeValue <> :completeValue AND completeType = :completeType AND companySiteId = :companySiteId")
List<CampaignCompleteCode> getCustomerStatusWithoutValue(@Param("completeValue") String completeValue, @Param("completeType") Short completeType, @Param("companySiteId") Long companySiteId);
@Query("select c from CampaignCompleteCode c where c.companySiteId =:p_company_site_id")
List<CampaignCompleteCode> findAllCampaignCompleteCode();
}
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.CampaignCompleteCode;
public interface CampaignCompleteCodeRepositoryCustom {
CampaignCompleteCode updateStatusById(Long id);
CampaignCompleteCode findMaxValueCampaignType(Long companySiteId);
}
...@@ -5,31 +5,32 @@ import com.viettel.campaign.model.ccms_full.CampaignCustomer; ...@@ -5,31 +5,32 @@ import com.viettel.campaign.model.ccms_full.CampaignCustomer;
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.jpa.repository.Query;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Repository import java.util.List;
@Transactional(DataSourceQualify.CCMS_FULL)
public interface CampaignCustomerRepository extends JpaRepository<CampaignCustomer, Long>, CampaignCustomerRepositoryCustom {
@Query(value = "SELECT COUNT(*) " +
" FROM CAMPAIGN_CUSTOMER CC " +
" JOIN CAMPAIGN C ON CC.CAMPAIGN_ID = C.CAMPAIGN_ID " +
" LEFT JOIN CAMPAIGN_COMPLETE_CODE CCC ON CC.STATUS = CCC.COMPLETE_VALUE" +
" WHERE CC.COMPANY_SITE_ID = :companySiteId " +
" AND CC.AGENT_ID = :agentId" +
" AND C.STATUS = 2 " +
" AND CC.RECALL_TIME <= SYSDATE " +
" AND CCC.IS_RECALL = 1", nativeQuery = true)
Long countRecallCustomer(@Param("companySiteId") Long pCompanySiteId, @Param("agentId") Long agentId);
@Transactional(DataSourceQualify.CCMS_FULL)
public interface CampaignCustomerRepository extends JpaRepository<CampaignCustomer, Long> {
@Query(value = "SELECT COUNT(*) " + @Query(value = "SELECT COUNT(*) " +
"FROM CAMPAIGN_CUSTOMER CC JOIN CAMPAIGN_COMPLETE_CODE CCC ON CC.CAMPAIGN_ID = CCC.CAMPAIGN_ID " + "FROM CAMPAIGN_CUSTOMER CC JOIN CAMPAIGN_COMPLETE_CODE CCC ON CC.CAMPAIGN_ID = CCC.CAMPAIGN_ID " +
"WHERE CC.CAMPAIGN_ID = :campaignId " + "WHERE CC.STATUS = 3 AND CC.CAMPAIGN_ID = :campaignId AND CC.CUSTOMER_ID = :customerId AND CCC.IS_RECALL = 1 AND CCC.STATUS = 1 ",
"AND CC.CUSTOMER_ID = :customerId " + nativeQuery = true)
"AND CC.STATUS = 3 " +
"AND CCC.IS_RECALL = 1 " +
"AND CCC.STATUS = 1 ", nativeQuery = true)
Long getCustomerRecall(@Param("campaignId") Long campaignId, @Param("customerId") Long customerId); Long getCustomerRecall(@Param("campaignId") Long campaignId, @Param("customerId") Long customerId);
@Query(value = "SELECT cc.customer_id \n" +
"FROM campaign_customer cc LEFT JOIN receive_cust_log cl ON cc.customer_id = cl.customer_id\n" +
"WHERE cc.campaign_id = :campaignId \n" +
" AND cc.agent_id = :agentId \n" +
" AND cc.in_campaign_status = 1 \n" +
" AND cl.customer_id IS NULL \n" +
" AND EXISTS(SELECT 1 \n" +
" FROM campaign_complete_code ccc \n" +
" WHERE cc.status = ccc.complete_value \n" +
" AND ccc.status = 1 \n" +
" AND ccc.is_recall = 1 \n" +
" AND ccc.complete_type = 2 \n" +
" AND ccc.company_site_id = :companySiteId) \n" +
" AND cc.recall_time <= SYSDATE\n" +
" AND cc.recall_time + interval :apParam MINUTE >= SYSDATE", nativeQuery = true)
List<CampaignCustomer> getCustomerRecallDate(@Param("campaignId") Long campaignId, @Param("agentId") Long agentId, @Param("companySiteId") Long companySiteId, @Param("apParam") String apParam);
} }
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.web.dto.CampaignCustomerDTO;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CampaignCustomerRepositoryCustom {
List<CampaignCustomerDTO> getDataCampaignCustomer(CampaignCustomerDTO dto, String expression);
}
...@@ -18,6 +18,16 @@ public interface CampaignRepository extends JpaRepository<Campaign, Long> { ...@@ -18,6 +18,16 @@ public interface CampaignRepository extends JpaRepository<Campaign, Long> {
List<Campaign> findCampaignByCompanySiteIdAndEndTimeIsLessThanEqualAndStatusIn(Long siteId, Date endTime, List<Long> status); List<Campaign> findCampaignByCompanySiteIdAndEndTimeIsLessThanEqualAndStatusIn(Long siteId, Date endTime, List<Long> status);
@Query("SELECT COUNT(c.campaignId) " +
" FROM Campaign c JOIN CampaignCustomer cc ON c.campaignId = cc.campaignId " +
" WHERE cc.companySiteId = :pCompanySiteId " +
" AND cc.status = 1 " +
" AND cc.recallTime <= sysdate " +
" AND cc.agentId = :pAgentId")
Long countRecallCustomer(@Param("pCompanySiteId") Long pCompanySiteId, @Param("pAgentId") Long pAgentId);
Campaign findByCampaignId(Long campaignId); Campaign findByCampaignId(Long campaignId);
Campaign findCampaignByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId); Campaign findCampaignByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId);
......
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.ReceiveCustLog;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ReceiveCustLogRepository extends JpaRepository<ReceiveCustLog, Long> {
}
package com.viettel.campaign.repository.ccms_full.impl; package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.config.DataSourceQualify; import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.CampaignCompleteCode; import com.viettel.campaign.model.ccms_full.CampaignCfg;
import com.viettel.campaign.repository.ccms_full.CampaignCompleteCodeRepositoryCustom; import com.viettel.campaign.repository.ccms_full.CampaignCfgRepositoryCustom;
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;
...@@ -12,20 +12,20 @@ import javax.persistence.EntityManager; ...@@ -12,20 +12,20 @@ import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContext;
@Repository @Repository
public class CampaignCompleteCompleteCodeRepositoryIpml implements CampaignCompleteCodeRepositoryCustom { public class CampaignCfgRepositoryIpml implements CampaignCfgRepositoryCustom {
@Autowired @Autowired
@PersistenceContext( unitName= DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL) @PersistenceContext( unitName= DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL)
private EntityManager entityManager; private EntityManager entityManager;
private Logger log = LoggerFactory.getLogger(CampaignCompleteCompleteCodeRepositoryIpml.class); private Logger log = LoggerFactory.getLogger(CampaignCfgRepositoryIpml.class);
@Override @Override
// @Transactional(DataSourceQualify.CCMS_FULL) // @Transactional(DataSourceQualify.CCMS_FULL)
public CampaignCompleteCode updateStatusById(Long id) { public CampaignCfg updateStatusById(Long id) {
CampaignCompleteCode dto = new CampaignCompleteCode(); CampaignCfg dto = new CampaignCfg();
try { try {
CampaignCompleteCode e = entityManager.find(CampaignCompleteCode.class, id); CampaignCfg e = entityManager.find(CampaignCfg.class, id);
e.setStatus(new Short("0")); // set status = 0 --> khong hoat dong e.setStatus(new Short("0")); // set status = 0 --> khong hoat dong
entityManager.merge(e); entityManager.merge(e);
} catch (Exception e) { } catch (Exception e) {
...@@ -36,8 +36,8 @@ public class CampaignCompleteCompleteCodeRepositoryIpml implements CampaignCompl ...@@ -36,8 +36,8 @@ public class CampaignCompleteCompleteCodeRepositoryIpml implements CampaignCompl
@Override @Override
// @Transactional(DataSourceQualify.CCMS_FULL) // @Transactional(DataSourceQualify.CCMS_FULL)
public CampaignCompleteCode findMaxValueCampaignType(Long companySiteId) { public CampaignCfg findMaxValueCampaignType(Long companySiteId) {
CampaignCompleteCode result = new CampaignCompleteCode(); CampaignCfg result = new CampaignCfg();
try { try {
} catch (Exception e) { } catch (Exception e) {
......
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.ApParam;
import com.viettel.campaign.repository.ccms_full.ApParamRepository;
import com.viettel.campaign.repository.ccms_full.CampaignCustomerRepositoryCustom;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.utils.HibernateUtil;
import com.viettel.campaign.utils.SQLBuilder;
import com.viettel.campaign.web.dto.CampaignCustomerDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;
import org.hibernate.type.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Transactional(DataSourceQualify.CCMS_FULL)
public class CampaignCustomerRepositoryImpl implements CampaignCustomerRepositoryCustom {
@Autowired
ApParamRepository apParamRepository;
@Autowired
@PersistenceContext(unitName = DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL)
EntityManager entityManager;
@Override
public List<CampaignCustomerDTO> getDataCampaignCustomer(CampaignCustomerDTO customerDTO, String expression) {
List<CampaignCustomerDTO> result = new ArrayList<>();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
try {
SQLQuery query = session.createSQLQuery(expression);
query.setParameter("campaignId", customerDTO.getCampaignId());
query.setParameter("companySiteId", customerDTO.getCompanySiteId());
if (expression.contains(":agentId")) {
query.setParameter("agentId", customerDTO.getAgentId());
}
if (expression.contains(":dungSai")) {
List<ApParam> apParam = apParamRepository.findAllParam("DUNG_SAI");
query.setParameter("dungSai", apParam.get(0).getParValue());
}
query.addScalar("customerId", new LongType());
query.setResultTransformer(Transformers.aliasToBean(CampaignCustomerDTO.class));
result = query.list();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
session.close();
}
return result;
}
}
...@@ -16,7 +16,7 @@ public interface ApParamService { ...@@ -16,7 +16,7 @@ public interface ApParamService {
ResultDTO findParamByParType(String parType); ResultDTO findParamByParType(String parType);
List<ApParam>findAllParam(String parType); List<ApParam>findAllParam();
} }
package com.viettel.campaign.service; package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.CampaignCompleteCodeDTO; import com.viettel.campaign.web.dto.CampaignCfgDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignCompleteCodeRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignCfgRequestDTO;
import java.util.List;
import java.util.Map; import java.util.Map;
public interface CampaignCompleteCodeService { public interface CampaignCfgService {
ResultDTO listAllCompleteCode(int page, int pageSize, String sort,Long companySiteId); ResultDTO listAllCompleteCode(int page, int pageSize, String sort,Long companySiteId);
Map listCompleteCodeByName(int page, int pageSize, String sort, String name); Map listCompleteCodeByName(int page, int pageSize, String sort, String name);
ResultDTO createCompleteCode(CampaignCompleteCodeDTO completeCodeDTO); ResultDTO createCompleteCode(CampaignCfgDTO completeCodeDTO);
ResultDTO updateCompleteCode(CampaignCompleteCodeDTO completeCodeDTO); ResultDTO updateCompleteCode(CampaignCfgDTO completeCodeDTO);
ResultDTO deleteCompleteCode(CampaignCompleteCodeRequestDTO completeCodeDTO); ResultDTO deleteCompleteCode(CampaignCfgRequestDTO completeCodeDTO);
ResultDTO deleteList(CampaignCompleteCodeRequestDTO campaignCompleteCodeRequestDTO); ResultDTO deleteList(CampaignCfgRequestDTO campaignCfgRequestDTO);
ResultDTO deleteById(Long id); ResultDTO deleteById(Long id);
ResultDTO findMaxValueCampaignCompleteCode(CampaignCompleteCodeDTO completeCodeDTO); ResultDTO findMaxValueCampaignCompleteCode(CampaignCfgDTO completeCodeDTO);
ResultDTO getListStatus(String completeValue, Short completeType, Long companySiteId); ResultDTO getListStatus(String completeValue, Short completeType, Long companySiteId);
......
package com.viettel.campaign.service; package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.CampaignCustomerDTO;
import com.viettel.campaign.web.dto.ContactCustResultDTO; import com.viettel.campaign.web.dto.ContactCustResultDTO;
import com.viettel.campaign.web.dto.ReceiveCustLogDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
...@@ -28,9 +26,5 @@ public interface CampaignExecuteService { ...@@ -28,9 +26,5 @@ public interface CampaignExecuteService {
ResultDTO getExecuteCampaign(CampaignRequestDTO requestDto); ResultDTO getExecuteCampaign(CampaignRequestDTO requestDto);
ResultDTO getCall(CampaignCustomerDTO dto); ResultDTO getCall(CampaignRequestDTO dto);
ResultDTO getCallLog(ReceiveCustLogDTO dto);
ResultDTO getAgentLogout(CampaignRequestDTO dto);
} }
...@@ -30,9 +30,7 @@ public interface CampaignService { ...@@ -30,9 +30,7 @@ public interface CampaignService {
ResultDTO addNewCampaign(CampaignDTO campaignDTO); ResultDTO addNewCampaign(CampaignDTO campaignDTO);
ResultDTO countRecallCustomer(Long companySiteId, Long agentId); Map countRecallCustomer(Long companySiteId, Long agentId);
ResultDTO getCustomerRecall(Long campaignId, Long customerId);
ResultDTO findCampaignById(Long campaignId); ResultDTO findCampaignById(Long campaignId);
......
...@@ -90,7 +90,10 @@ public class ApParamServiceImpl implements ApParamService { ...@@ -90,7 +90,10 @@ public class ApParamServiceImpl implements ApParamService {
return resultDTO; return resultDTO;
} }
public List<ApParam> findAllParam(String parType) { @Override
return apParamRepository.findAllParam(parType); public List<ApParam> findAllParam() {
return apParamRepository.findAllParam() ;
} }
} }
...@@ -3,16 +3,16 @@ package com.viettel.campaign.service.impl; ...@@ -3,16 +3,16 @@ package com.viettel.campaign.service.impl;
import com.viettel.campaign.config.DataSourceQualify; import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.mapper.CampaignCompleteCodeMapper; import com.viettel.campaign.mapper.CampaignCompleteCodeMapper;
import com.viettel.campaign.model.ccms_full.CampaignCompleteCode; import com.viettel.campaign.model.ccms_full.CampaignCfg;
import com.viettel.campaign.repository.ccms_full.CampaignCompleteCodeRepository; import com.viettel.campaign.repository.ccms_full.CampaignCfgRepository;
import com.viettel.campaign.service.CampaignCompleteCodeService; import com.viettel.campaign.service.CampaignCfgService;
import com.viettel.campaign.utils.Constants; import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil; 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.CampaignCompleteCodeDTO; import com.viettel.campaign.web.dto.CampaignCfgDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignCompleteCodeRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignCfgRequestDTO;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
...@@ -31,12 +31,12 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -31,12 +31,12 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
@Service @Service
public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeService { public class CampaignCfgServiceImpl implements CampaignCfgService {
protected Logger logger = LoggerFactory.getLogger(CampaignCompleteCodeServiceImpl.class); protected Logger logger = LoggerFactory.getLogger(CampaignCfgServiceImpl.class);
@Autowired @Autowired
CampaignCompleteCodeRepository completeCodeRepository; CampaignCfgRepository completeCodeRepository;
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
...@@ -79,9 +79,9 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -79,9 +79,9 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
query.addScalar("companySiteId", new LongType()); query.addScalar("companySiteId", new LongType());
query.addScalar("durationLock", new LongType()); query.addScalar("durationLock", new LongType());
query.addScalar("chanel", new LongType()); query.addScalar("chanel", new LongType());
query.setResultTransformer(Transformers.aliasToBean(CampaignCompleteCodeDTO.class)); query.setResultTransformer(Transformers.aliasToBean(CampaignCfgDTO.class));
int count = 0; int count = 0;
List<CampaignCompleteCodeDTO> dtoList = query.list(); List<CampaignCfgDTO> dtoList = query.list();
if (dtoList.size() > 0) { if (dtoList.size() > 0) {
count = query.list().size(); count = query.list().size();
} }
...@@ -92,8 +92,8 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -92,8 +92,8 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
query.setMaxResults(pageable.getPageSize()); query.setMaxResults(pageable.getPageSize());
} }
List<CampaignCompleteCodeDTO>data = query.list(); List<CampaignCfgDTO>data = query.list();
Page<CampaignCompleteCodeDTO> dataPage = new PageImpl<>(data, pageable, count); Page<CampaignCfgDTO> dataPage = new PageImpl<>(data, pageable, count);
resultDTO.setData(dataPage); resultDTO.setData(dataPage);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS); resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
...@@ -112,8 +112,8 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -112,8 +112,8 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public Map listCompleteCodeByName(int page, int pageSize, String sort, String name) { public Map listCompleteCodeByName(int page, int pageSize, String sort, String name) {
Map result = new HashMap(); Map result = new HashMap();
List<CampaignCompleteCode> lst = new ArrayList<>(); List<CampaignCfg> lst = new ArrayList<>();
List<CampaignCompleteCode> count = new ArrayList<>(); List<CampaignCfg> count = new ArrayList<>();
lst = completeCodeRepository.findByCompleteNameContains(name, PageRequest.of(page, pageSize, Sort.by(sort))); lst = completeCodeRepository.findByCompleteNameContains(name, PageRequest.of(page, pageSize, Sort.by(sort)));
count = completeCodeRepository.findByCompleteNameContains(name, null); count = completeCodeRepository.findByCompleteNameContains(name, null);
...@@ -126,11 +126,11 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -126,11 +126,11 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO createCompleteCode(CampaignCompleteCodeDTO completeCodeDTO) { public ResultDTO createCompleteCode(CampaignCfgDTO completeCodeDTO) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
CampaignCompleteCodeMapper compCodeMapper = new CampaignCompleteCodeMapper(); CampaignCompleteCodeMapper compCodeMapper = new CampaignCompleteCodeMapper();
Date today = new Date(); Date today = new Date();
CampaignCompleteCode compCode = new CampaignCompleteCode(); CampaignCfg compCode = new CampaignCfg();
try { try {
if (completeCodeDTO != null) { if (completeCodeDTO != null) {
...@@ -153,11 +153,11 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -153,11 +153,11 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO updateCompleteCode(CampaignCompleteCodeDTO completeCodeDTO) { public ResultDTO updateCompleteCode(CampaignCfgDTO completeCodeDTO) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
CampaignCompleteCodeMapper compCodeMapper = new CampaignCompleteCodeMapper(); CampaignCompleteCodeMapper compCodeMapper = new CampaignCompleteCodeMapper();
Date today = new Date(); Date today = new Date();
CampaignCompleteCode compCode = new CampaignCompleteCode(); CampaignCfg compCode = new CampaignCfg();
try { try {
if (completeCodeDTO != null) { if (completeCodeDTO != null) {
...@@ -180,7 +180,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -180,7 +180,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO deleteCompleteCode(CampaignCompleteCodeRequestDTO completeCodeDTO) { public ResultDTO deleteCompleteCode(CampaignCfgRequestDTO completeCodeDTO) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
try { try {
...@@ -205,7 +205,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -205,7 +205,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO deleteList(CampaignCompleteCodeRequestDTO completeCodeDTO) { public ResultDTO deleteList(CampaignCfgRequestDTO completeCodeDTO) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
try { try {
if (completeCodeDTO != null) { if (completeCodeDTO != null) {
...@@ -244,7 +244,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -244,7 +244,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO findMaxValueCampaignCompleteCode(CampaignCompleteCodeDTO completeCodeDTO) { public ResultDTO findMaxValueCampaignCompleteCode(CampaignCfgDTO completeCodeDTO) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
...@@ -266,9 +266,9 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -266,9 +266,9 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
query.addScalar("completeValue", new StringType()); query.addScalar("completeValue", new StringType());
query.addScalar("companySiteId", new LongType()); query.addScalar("companySiteId", new LongType());
query.setResultTransformer(Transformers.aliasToBean(CampaignCompleteCodeDTO.class)); query.setResultTransformer(Transformers.aliasToBean(CampaignCfgDTO.class));
List<CampaignCompleteCodeDTO> data = query.list(); List<CampaignCfgDTO> data = query.list();
if (data != null && data.size() > 0) { if (data != null && data.size() > 0) {
int tmp = 5; int tmp = 5;
String completeValue = data.get(0).getCompleteValue(); String completeValue = data.get(0).getCompleteValue();
...@@ -297,7 +297,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -297,7 +297,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
public ResultDTO getListStatus(String completeValue, Short completeType, Long companySiteId) { public ResultDTO getListStatus(String completeValue, Short completeType, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
try { try {
List<CampaignCompleteCode> list = completeCodeRepository.getCustomerStatus(completeValue, completeType, companySiteId); List<CampaignCfg> list = completeCodeRepository.getCustomerStatus(completeValue, completeType, companySiteId);
resultDTO.setListData(list); resultDTO.setListData(list);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
...@@ -314,7 +314,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -314,7 +314,7 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
public ResultDTO getListStatusWithoutType(String completeValue, Short completeType, Long companySiteId) { public ResultDTO getListStatusWithoutType(String completeValue, Short completeType, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
try { try {
List<CampaignCompleteCode> list = completeCodeRepository.getCustomerStatusWithoutValue(completeValue, completeType, companySiteId); List<CampaignCfg> list = completeCodeRepository.getCustomerStatusWithoutValue(completeValue, completeType, companySiteId);
resultDTO.setListData(list); resultDTO.setListData(list);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS); resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
...@@ -366,8 +366,8 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -366,8 +366,8 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
query.addScalar("companySiteId", new LongType()); query.addScalar("companySiteId", new LongType());
query.addScalar("durationLock", new LongType()); query.addScalar("durationLock", new LongType());
query.addScalar("chanel", new LongType()); query.addScalar("chanel", new LongType());
query.setResultTransformer(Transformers.aliasToBean(CampaignCompleteCodeDTO.class)); query.setResultTransformer(Transformers.aliasToBean(CampaignCfgDTO.class));
List<CampaignCompleteCodeDTO>data = query.list(); List<CampaignCfgDTO>data = query.list();
resultDTO.setData(data); resultDTO.setData(data);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS); resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
......
package com.viettel.campaign.service.impl; package com.viettel.campaign.service.impl;
import com.viettel.campaign.config.DataSourceQualify; import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.mapper.ReceiveCustLogMapper;
import com.viettel.campaign.model.acd_full.Agents; import com.viettel.campaign.model.acd_full.Agents;
import com.viettel.campaign.model.ccms_full.ReceiveCustLog; import com.viettel.campaign.model.ccms_full.CampaignCustomer;
import com.viettel.campaign.model.ccms_full.TimeRangeDialMode;
import com.viettel.campaign.model.ccms_full.TimeZoneDialMode;
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.CampaignExecuteService; import com.viettel.campaign.service.CampaignExecuteService;
import com.viettel.campaign.utils.BundleUtils; import com.viettel.campaign.utils.BundleUtils;
import com.viettel.campaign.utils.Constants; import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.SQLBuilder; import com.viettel.campaign.utils.SQLBuilder;
import com.viettel.campaign.web.dto.*; import com.viettel.campaign.web.dto.ApParamDTO;
import com.viettel.campaign.web.dto.ContactCustResultDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
...@@ -30,9 +33,6 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -30,9 +33,6 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
private static final Logger logger = LoggerFactory.getLogger(CampaignExecuteServiceImp.class); private static final Logger logger = LoggerFactory.getLogger(CampaignExecuteServiceImp.class);
private SimpleDateFormat formatter = new SimpleDateFormat(Constants.DATE_FORMAT.FOMART_DATE_TYPE_1); private SimpleDateFormat formatter = new SimpleDateFormat(Constants.DATE_FORMAT.FOMART_DATE_TYPE_1);
@Autowired
ReceiveCustLogRepository custLogRepository;
@Autowired @Autowired
CampaignRepositoryCustom campaignRepositoryCustom; CampaignRepositoryCustom campaignRepositoryCustom;
...@@ -278,87 +278,24 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService { ...@@ -278,87 +278,24 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
} }
@Override @Override
public ResultDTO getCall(CampaignCustomerDTO dto) { public ResultDTO getCall(CampaignRequestDTO dto) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
//Agents agents = agentsRepository.findByAgentId(dto.getAgentId()); //Agents agents = agentsRepository.findByAgentId(dto.getAgentId());
//TimeZoneDialMode zoneDialMode = zoneDialModeRepository.findDialModeAtCurrent(Long.parseLong(dto.getCampaignId()), Long.parseLong(dto.getCompanySiteId())); //TimeZoneDialMode zoneDialMode = zoneDialModeRepository.findDialModeAtCurrent(Long.parseLong(dto.getCampaignId()), Long.parseLong(dto.getCompanySiteId()));
//TimeRangeDialMode rangeDialMode = rangeDialModeRepository.findDialModeAtCurrent(Long.parseLong(dto.getCampaignId()), Long.parseLong(dto.getCompanySiteId())); //TimeRangeDialMode rangeDialMode = rangeDialModeRepository.findDialModeAtCurrent(Long.parseLong(dto.getCampaignId()), Long.parseLong(dto.getCompanySiteId()));
List<CampaignCustomerDTO> lst = new ArrayList<>();
// Khách hàng đến thời điểm hẹn gọi lại và là khách hàng mà chính NSD hẹn gọi lại
List<CampaignCustomerDTO> lst1 = campaignCustomerRepository.getDataCampaignCustomer(dto, SQLBuilder.getSqlQueryById("campaign-execute", "get-execute-customer1"));
if (lst1.size() > 0) {
lst = lst1;
} else {
// Khách hàng đến thời điểm hẹn gọi lại và không là khách hàng mà NSD dùng hẹn gọi lại nhưng TVV hẹn gọi lại không đăng nhập hoặc không thực hiện chiến dịch hiện tại
List<CampaignCustomerDTO> lst2 = campaignCustomerRepository.getDataCampaignCustomer(dto, SQLBuilder.getSqlQueryById("campaign-execute", "get-execute-customer2"));
if (lst2.size() > 0) {
lst = lst2;
} else {
// Khách hàng là khách hàng hẹn gọi lại nhưng thời gian hẹn gọi lại đã quá thời gian hẹn gọi lại + dung sai
List<CampaignCustomerDTO> lst3 = campaignCustomerRepository.getDataCampaignCustomer(dto, SQLBuilder.getSqlQueryById("campaign-execute", "get-execute-customer3"));
if (lst3.size() > 0) {
lst = lst3;
} else {
// Khách hàng mới
List<CampaignCustomerDTO> lst4 = campaignCustomerRepository.getDataCampaignCustomer(dto, SQLBuilder.getSqlQueryById("campaign-execute", "get-execute-customer4"));
if (lst4.size() > 0) {
lst = lst4;
} else {
// Khách hàng không liên lạc được nhưng chưa phải là cuộc gọi kết thúc và có số lần đã gọi < Số lần gọi tối đa được cấu hình và khoảng cách giữa 2 lần gọi < thời gian tương tác giữa 2 lần gọi được cấu hình
List<CampaignCustomerDTO> lst5 = campaignCustomerRepository.getDataCampaignCustomer(dto, SQLBuilder.getSqlQueryById("campaign-execute", "get-execute-customer5"));
lst = lst5;
}
}
}
}
if (lst != null) {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
result.setListData(lst);
//result.setData(data);
} else {
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
}
return result;
}
@Override
public ResultDTO getCallLog(ReceiveCustLogDTO dto) {
ResultDTO result = new ResultDTO();
ReceiveCustLog receiveCustLog = (new ReceiveCustLogMapper()).toPersistenceBean(dto);
try {
custLogRepository.save(receiveCustLog);
agentsRepository.updateAgentLogoutFromCampaign(dto.getAgentId(), "NOT AVAILABLE");
result.setErrorCode(Constants.ApiErrorCode.SUCCESS); List<CampaignCustomer> lst = null;//campaignCustomerRepository.getCustomerRecallDate(dto.getCampaignId(), dto.getAgentId(), dto.getCompanySiteId(), );
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
} catch (Exception e) {
e.printStackTrace();
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
}
return result;
}
@Override
public ResultDTO getAgentLogout(CampaignRequestDTO dto) {
ResultDTO result = new ResultDTO();
try {
agentsRepository.updateAgentLogoutFromCampaign(Long.parseLong(dto.getAgentId()), "LOGOUT");
campaignAgentRepository.updateCampaignAgentSetStatus(Long.parseLong(dto.getAgentId()), Long.parseLong(dto.getCampaignId()), 0);
if (lst != null) {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS); result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS); result.setDescription(Constants.ApiErrorDesc.SUCCESS);
} catch (Exception e) { //result.setTotalRow(count);
e.printStackTrace(); //result.setListData(campaignExecuteRepository.searchCampaignExecute(requestDto, SQLBuilder.buildPageable(requestDto)));
//result.setData(data);
} else {
result.setErrorCode(Constants.ApiErrorCode.ERROR); result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR); result.setDescription(Constants.ApiErrorDesc.ERROR);
} }
......
...@@ -43,9 +43,6 @@ public class CampaignServiceImpl implements CampaignService { ...@@ -43,9 +43,6 @@ public class CampaignServiceImpl implements CampaignService {
@Autowired @Autowired
CampaignRepository campaignRepository; CampaignRepository campaignRepository;
@Autowired
CampaignCustomerRepository campaignCustomerRepository;
@Autowired @Autowired
CampaignRepositoryCustom campaignRepositoryCustom; CampaignRepositoryCustom campaignRepositoryCustom;
...@@ -166,37 +163,23 @@ public class CampaignServiceImpl implements CampaignService { ...@@ -166,37 +163,23 @@ public class CampaignServiceImpl implements CampaignService {
} }
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO countRecallCustomer(Long companySiteId, Long agentId) { public Map countRecallCustomer(Long companySiteId, Long agentId) {
Long count = campaignCustomerRepository.countRecallCustomer(companySiteId, agentId); Map result = new HashMap();
Long count = campaignRepository.countRecallCustomer(companySiteId, agentId);
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
if (count != null) { if (count != null) {
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS); resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
resultDTO.setData(count); result.put("info", resultDTO);
result.put("result", count);
} else { } else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR); resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR); resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
resultDTO.setData(0); result.put("info", resultDTO);
result.put("result", 0);
} }
return resultDTO; return result;
}
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO getCustomerRecall(Long campaignId, Long customerId) {
Long count = campaignCustomerRepository.getCustomerRecall(campaignId, customerId);
ResultDTO resultDTO = new ResultDTO();
if (count != null) {
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
resultDTO.setData(count);
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
resultDTO.setData(0);
}
return resultDTO;
} }
@Override @Override
......
package com.viettel.campaign.utils; package com.viettel.campaign.utils;
import com.viettel.security.PassTranformer; //import com.viettel.security.PassTranformer;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import java.io.File; import java.io.File;
...@@ -60,7 +60,7 @@ public class Config { ...@@ -60,7 +60,7 @@ public class Config {
} catch (IOException ex) { } catch (IOException ex) {
Logger.getLogger(Config.class.getName()).error(ex.getMessage(), ex); Logger.getLogger(Config.class.getName()).error(ex.getMessage(), ex);
} }
PassTranformer.setInputKey("Ipcc#987654321#@!"); // PassTranformer.setInputKey("Ipcc#987654321#@!");
// rabbitConnection = properties.getProperty("rabbit_connection_string"); // rabbitConnection = properties.getProperty("rabbit_connection_string");
// fbGatewayUser = PassTranformer.decrypt(properties.getProperty("rabbit_user", "").trim()); // fbGatewayUser = PassTranformer.decrypt(properties.getProperty("rabbit_user", "").trim());
......
...@@ -7,7 +7,7 @@ import java.util.Date; ...@@ -7,7 +7,7 @@ import java.util.Date;
@Getter @Getter
@Setter @Setter
public class CampaignCompleteCodeDTO extends BaseDTO { public class CampaignCfgDTO extends BaseDTO {
private Long campaignCompleteCodeId; private Long campaignCompleteCodeId;
private Long campaignId; private Long campaignId;
......
package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class ReceiveCustLogDTO extends BaseDTO {
private Long receiveCustLogId;
private Long companySiteId;
private Long customerId;
private Long agentId;
private Long campaignId;
private Date startTime;
private Date endTime;
}
...@@ -6,7 +6,7 @@ import lombok.Setter; ...@@ -6,7 +6,7 @@ import lombok.Setter;
import java.util.List; import java.util.List;
@Getter @Getter
@Setter @Setter
public class CampaignCompleteCodeRequestDTO { public class CampaignCfgRequestDTO {
List<Long> listId; List<Long> listId;
Long companySiteId; Long companySiteId;
Long campaignCompleteCodeID; Long campaignCompleteCodeID;
......
...@@ -56,10 +56,10 @@ public class ApParamController { ...@@ -56,10 +56,10 @@ public class ApParamController {
return new ResponseEntity<>(apParamService.findParamByParType(parType), HttpStatus.OK); return new ResponseEntity<>(apParamService.findParamByParType(parType), HttpStatus.OK);
} }
@GetMapping(path = "/findAllParam") @GetMapping(path ="/findAllParam")
@ResponseBody @ResponseBody
public ResponseEntity findAllParam(@RequestParam("parType") String parType) { public ResponseEntity findAllParam() {
List<ApParam> findAll = apParamService.findAllParam(parType); List<ApParam> findAll = apParamService.findAllParam();
if(findAll.isEmpty()) { if(findAll.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT); return new ResponseEntity<>(HttpStatus.NO_CONTENT);
} }
......
package com.viettel.campaign.web.rest; package com.viettel.campaign.web.rest;
import com.viettel.campaign.web.dto.CampaignCompleteCodeDTO; import com.viettel.campaign.web.dto.CampaignCfgDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.service.CampaignCompleteCodeService; import com.viettel.campaign.service.CampaignCfgService;
import com.viettel.campaign.web.dto.request_dto.CampaignCompleteCodeRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignCfgRequestDTO;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
...@@ -11,17 +11,16 @@ import org.springframework.http.ResponseEntity; ...@@ -11,17 +11,16 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List;
import java.util.Map; import java.util.Map;
@RestController @RestController
@RequestMapping("/ipcc/completeCode") @RequestMapping("/ipcc/completeCode")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
public class CampaignCompleteCodeController { public class CampaignCfg {
private static final Logger LOGGER = Logger.getLogger(CustomerController.class); private static final Logger LOGGER = Logger.getLogger(CustomerController.class);
@Autowired @Autowired
CampaignCompleteCodeService completeCodeService; CampaignCfgService completeCodeService;
@GetMapping("/findAll") @GetMapping("/findAll")
@ResponseBody @ResponseBody
...@@ -39,7 +38,7 @@ public class CampaignCompleteCodeController { ...@@ -39,7 +38,7 @@ public class CampaignCompleteCodeController {
@PostMapping("/create") @PostMapping("/create")
@ResponseBody @ResponseBody
public ResultDTO createCompleteCode(@RequestBody @Valid CampaignCompleteCodeDTO completeCodeDTO) { public ResultDTO createCompleteCode(@RequestBody @Valid CampaignCfgDTO completeCodeDTO) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
//LogUtil logUtil = new LogUtil(); //LogUtil logUtil = new LogUtil();
//logUtil.initKpiLog("createCust") //logUtil.initKpiLog("createCust")
...@@ -58,7 +57,7 @@ public class CampaignCompleteCodeController { ...@@ -58,7 +57,7 @@ public class CampaignCompleteCodeController {
@PostMapping("/update") @PostMapping("/update")
@ResponseBody @ResponseBody
public ResultDTO updateCompleteCode(@RequestBody @Valid CampaignCompleteCodeDTO completeCodeDTO public ResultDTO updateCompleteCode(@RequestBody @Valid CampaignCfgDTO completeCodeDTO
) { ) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
try { try {
...@@ -86,16 +85,16 @@ public class CampaignCompleteCodeController { ...@@ -86,16 +85,16 @@ public class CampaignCompleteCodeController {
@PostMapping("/delete") @PostMapping("/delete")
@ResponseBody @ResponseBody
public ResultDTO deleteCompleteCode(@RequestBody @Valid CampaignCompleteCodeRequestDTO campaignCompleteCodeRequestDTO) { public ResultDTO deleteCompleteCode(@RequestBody @Valid CampaignCfgRequestDTO campaignCfgRequestDTO) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
result = completeCodeService.deleteCompleteCode(campaignCompleteCodeRequestDTO); result = completeCodeService.deleteCompleteCode(campaignCfgRequestDTO);
return result; return result;
} }
@PostMapping("/listDelete") @PostMapping("/listDelete")
@ResponseBody @ResponseBody
public ResponseEntity<ResultDTO> deleteLists(@RequestBody @Valid CampaignCompleteCodeRequestDTO campaignCompleteCodeRequestDTO){ public ResponseEntity<ResultDTO> deleteLists(@RequestBody @Valid CampaignCfgRequestDTO campaignCfgRequestDTO){
ResultDTO resultDTO = completeCodeService.deleteList(campaignCompleteCodeRequestDTO); ResultDTO resultDTO = completeCodeService.deleteList(campaignCfgRequestDTO);
return new ResponseEntity<>(resultDTO, HttpStatus.OK); return new ResponseEntity<>(resultDTO, HttpStatus.OK);
} }
...@@ -110,7 +109,7 @@ public class CampaignCompleteCodeController { ...@@ -110,7 +109,7 @@ public class CampaignCompleteCodeController {
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PostMapping("/getMaxValue") @PostMapping("/getMaxValue")
@ResponseBody @ResponseBody
public ResultDTO findMaxValueCampaignType(@RequestBody CampaignCompleteCodeDTO completeCodeDTO){ public ResultDTO findMaxValueCampaignType(@RequestBody CampaignCfgDTO completeCodeDTO){
return completeCodeService.findMaxValueCampaignCompleteCode(completeCodeDTO); return completeCodeService.findMaxValueCampaignCompleteCode(completeCodeDTO);
} }
......
...@@ -4,9 +4,7 @@ import com.viettel.campaign.model.ccms_full.TimeRangeDialMode; ...@@ -4,9 +4,7 @@ import com.viettel.campaign.model.ccms_full.TimeRangeDialMode;
import com.viettel.campaign.model.ccms_full.TimeZoneDialMode; import com.viettel.campaign.model.ccms_full.TimeZoneDialMode;
import com.viettel.campaign.service.CampaignExecuteService; import com.viettel.campaign.service.CampaignExecuteService;
import com.viettel.campaign.service.CampaignService; import com.viettel.campaign.service.CampaignService;
import com.viettel.campaign.web.dto.CampaignCustomerDTO;
import com.viettel.campaign.web.dto.CampaignDTO; import com.viettel.campaign.web.dto.CampaignDTO;
import com.viettel.campaign.web.dto.ReceiveCustLogDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
...@@ -57,25 +55,11 @@ public class CampaignController { ...@@ -57,25 +55,11 @@ public class CampaignController {
@PostMapping("/getCall") @PostMapping("/getCall")
@ResponseBody @ResponseBody
public ResponseEntity<ResultDTO> getCall(@RequestBody CampaignCustomerDTO requestDto) { public ResponseEntity<ResultDTO> getCall(@RequestBody CampaignRequestDTO requestDto) {
ResultDTO result = campaignExecuteService.getCall(requestDto); ResultDTO result = campaignExecuteService.getCall(requestDto);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
@PostMapping("/getCallLog")
@ResponseBody
public ResponseEntity<ResultDTO> getCallLog(@RequestBody ReceiveCustLogDTO requestDto) {
ResultDTO result = campaignExecuteService.getCallLog(requestDto);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@PostMapping("/getAgentLogout")
@ResponseBody
public ResponseEntity<ResultDTO> getAgentLogout(@RequestBody CampaignRequestDTO requestDto) {
ResultDTO result = campaignExecuteService.getAgentLogout(requestDto);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@RequestMapping(value = "/search", method = RequestMethod.POST) @RequestMapping(value = "/search", method = RequestMethod.POST)
public ResponseEntity<ResultDTO> search(@RequestBody CampaignRequestDTO requestDto) { public ResponseEntity<ResultDTO> search(@RequestBody CampaignRequestDTO requestDto) {
ResultDTO result = campaignService.search(requestDto); ResultDTO result = campaignService.search(requestDto);
...@@ -95,14 +79,7 @@ public class CampaignController { ...@@ -95,14 +79,7 @@ public class CampaignController {
@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) {
ResultDTO result = campaignService.countRecallCustomer(companySiteId, agentId); Map result = campaignService.countRecallCustomer(companySiteId, agentId);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@GetMapping("/getCustomerRecall")
@ResponseBody
public ResponseEntity getCustomerRecall(@RequestParam("campaignId") Long campaignId, @RequestParam("customerId") Long customerId) {
ResultDTO result = campaignService.getCustomerRecall(campaignId, customerId);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
......
SELECT CC.CUSTOMER_ID AS customerId
FROM CAMPAIGN_CUSTOMER CC
LEFT JOIN CCMS_FULL.RECEIVE_CUST_LOG CL ON CC.CUSTOMER_ID = CL.CUSTOMER_ID
WHERE CC.CAMPAIGN_ID = :campaignId
AND CC.COMPANY_SITE_ID = :companySiteId
AND CC.IN_CAMPAIGN_STATUS = 1
AND CL.CUSTOMER_ID IS NULL
AND CL.END_TIME IS NULL
AND EXISTS(SELECT 1
FROM CCMS_FULL.CAMPAIGN_COMPLETE_CODE CCC
WHERE CC.STATUS = CCC.COMPLETE_VALUE
AND STATUS = 1
AND IS_RECALL = 1
AND COMPLETE_TYPE = 2
AND COMPANY_SITE_ID = :companySiteId)
AND CC.RECALL_TIME <= SYSDATE
AND CC.RECALL_TIME + NUMTODSINTERVAL(:dungSai, 'MINUTE') >= SYSDATE
AND CC.AGENT_ID = :agentId
SELECT CC.CUSTOMER_ID AS customerId
FROM CCMS_FULL.CAMPAIGN_CUSTOMER CC
LEFT JOIN CCMS_FULL.RECEIVE_CUST_LOG CL ON CC.CUSTOMER_ID = CL.CUSTOMER_ID
LEFT JOIN ACD_FULL.AGENTS AG ON CC.AGENT_ID = AG.AGENT_ID AND CC.CAMPAIGN_ID = AG.CURRENT_CAMPAIGN_ID
WHERE CC.CAMPAIGN_ID = :campaignId
AND CC.COMPANY_SITE_ID = :companySiteId
AND CC.IN_CAMPAIGN_STATUS = 1
AND CL.CUSTOMER_ID IS NULL
AND CL.END_TIME IS NULL
AND EXISTS(SELECT 1
FROM CCMS_FULL.CAMPAIGN_COMPLETE_CODE CCC
WHERE CC.STATUS = CCC.COMPLETE_VALUE
AND STATUS = 1
AND IS_RECALL = 1
AND COMPLETE_TYPE = 2
AND COMPANY_SITE_ID = :companySiteId)
AND CC.RECALL_TIME <= SYSDATE
AND CC.RECALL_TIME + NUMTODSINTERVAL(:dungSai, 'MINUTE') >= SYSDATE
AND (AG.CAMPAIGN_SYSTEM_STATUS IS NULL OR AG.CAMPAIGN_SYSTEM_STATUS <> 'AVAILABLE')
SELECT CC.CUSTOMER_ID AS customerId
FROM CAMPAIGN_CUSTOMER CC
LEFT JOIN RECEIVE_CUST_LOG CL ON CC.CUSTOMER_ID = CL.CUSTOMER_ID
WHERE CC.CAMPAIGN_ID = :campaignId
AND CC.COMPANY_SITE_ID = :companySiteId
AND CC.IN_CAMPAIGN_STATUS = 1
AND CL.CUSTOMER_ID IS NULL
AND CL.END_TIME IS NULL
AND EXISTS(SELECT 1
FROM CCMS_FULL.CAMPAIGN_COMPLETE_CODE CCC
WHERE CC.STATUS = CCC.COMPLETE_VALUE
AND STATUS = 1
AND IS_RECALL = 1
AND COMPLETE_TYPE = 2
AND COMPANY_SITE_ID = :companySiteId)
AND CC.RECALL_TIME + NUMTODSINTERVAL(:dungSai, 'MINUTE') <= SYSDATE
SELECT CC.CUSTOMER_ID AS customerId
FROM CAMPAIGN_CUSTOMER CC
INNER JOIN CUSTOMER C ON CC.CUSTOMER_ID = C.CUSTOMER_ID
LEFT JOIN RECEIVE_CUST_LOG CL ON CC.CUSTOMER_ID = CL.CUSTOMER_ID
WHERE CC.CAMPAIGN_ID = :campaignId
AND CC.COMPANY_SITE_ID = :companySiteId
AND CC.IN_CAMPAIGN_STATUS = 1
AND CL.CUSTOMER_ID IS NULL
AND CL.END_TIME IS NULL
AND CC.STATUS = 0
AND C.STATUS = 1
AND C.CALL_ALLOWED = 1
AND C.IPCC_STATUS = 'active'
SELECT CC.CUSTOMER_ID AS customerId
FROM CAMPAIGN_CUSTOMER CC
LEFT JOIN CCMS_FULL.RECEIVE_CUST_LOG CL ON CC.CUSTOMER_ID = CL.CUSTOMER_ID
WHERE CC.CAMPAIGN_ID = :campaignId
AND CC.COMPANY_SITE_ID = :companySiteId
AND CC.IN_CAMPAIGN_STATUS = 1
AND CL.CUSTOMER_ID IS NULL
AND CL.END_TIME IS NULL
AND EXISTS(SELECT 1
FROM CCMS_FULL.CAMPAIGN_COMPLETE_CODE CCC
WHERE CC.STATUS = CCC.COMPLETE_VALUE
AND STATUS = 1
AND IS_FINISH = 0
AND COMPLETE_TYPE = 1
AND COMPANY_SITE_ID = :companySiteId)
AND CC.RECALL_COUNT < C.MAX_RECALL
AND SYSDATE MAX(CC.CALL_TIME) >= C.RECALL_DURATION
AND C.STATUS = 1
AND C.CALL_ALLOWED = 1
AND C.IPCC_STATUS = 'active'
SELECT PAR_NAME,AP_PARAM_ID, PAR_TYPE FROM AP_PARAM a WHERE STATUS= 1 AND PAR_TYPE = 'CAMPAIGN_TYPE' SELECT PAR_NAME,PAR_VALUE, PAR_TYPE FROM AP_PARAM a WHERE STATUS= 1 AND PAR_TYPE = 'CAMPAIGN_TYPE'
...@@ -3,7 +3,6 @@ SELECT ...@@ -3,7 +3,6 @@ SELECT
a.COMPLETE_VALUE completeValue, a.COMPLETE_VALUE completeValue,
a.COMPLETE_NAME completeName, a.COMPLETE_NAME completeName,
a.COMPLETE_TYPE completeType, a.COMPLETE_TYPE completeType,
-- a.CAMPAIGN_TYPE campaignType,
c.PAR_NAME campaignType, c.PAR_NAME campaignType,
b.CHANEL chanel, b.CHANEL chanel,
a.DESCRIPTION description, a.DESCRIPTION description,
......
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