Commit f9fe55ef authored by đinh thị đầm's avatar đinh thị đầm

Merge branch 'master' of http://git.myitsol.com/hanv/service-campaign

# Conflicts:
#	src/main/java/com/viettel/campaign/service/CustomerService.java
#	src/main/java/com/viettel/campaign/service/impl/CampaignCompleteCodeServiceImpl.java
parents 788465ae bd579f71
......@@ -3,7 +3,7 @@ package com.viettel.campaign;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@SpringBootApplication(scanBasePackages={"com.viettel.campaign"})
public class ServiceCampaignApplication {
public static void main(String[] args) {
......
package com.viettel.campaign.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.*;
import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
import java.util.HashMap;
/**
* @author anhvd_itsol
*/
@Configuration
@PropertySource({ "classpath:application.yml" })
@EnableJpaRepositories(
basePackages = "com.viettel.campaign.repository.acd_full",
entityManagerFactoryRef = "acdFullEntityManager",
transactionManagerRef = DataSourceQualify.ACD_FULL
)
public class ACDFullDatasourceConfig {
@Autowired
private Environment env;
@Bean("datasource2.datasource")
public DataSource dataSource(){
OracleDataSource r = new OracleDataSource();
r.setDriverClassName(env.getProperty("spring.datasource2.driver-class-name"));
r.setPoolName("app.datasource2");
r.setJdbcUrl(env.getProperty("spring.datasource2.url"));
r.setMaximumPoolSize(env.getProperty("spring.datasource2.max_pool_size", Integer.class));
r.setPassword(env.getProperty("spring.datasource2.password"));
r.setUsername(env.getProperty("spring.datasource2.username"));
return r;
}
@Bean
public LocalContainerEntityManagerFactoryBean acdFullEntityManager() {
LocalContainerEntityManagerFactoryBean em2
= new LocalContainerEntityManagerFactoryBean();
em2.setDataSource(dataSource());
em2.setPackagesToScan(
new String[] { "com.viettel.campaign.model.acd_full" });
em2.setPersistenceUnitName(DataSourceQualify.JPA_UNIT_NAME_ACD_FULL); // Important !!
HibernateJpaVendorAdapter vendorAdapter
= new HibernateJpaVendorAdapter();
em2.setJpaVendorAdapter(vendorAdapter);
HashMap<String, Object> properties = new HashMap<>();
properties.put("hibernate.dialect", env.getProperty("spring.jpa.database-platform"));
em2.setJpaPropertyMap(properties);
return em2;
}
@Bean(name = DataSourceQualify.ACD_FULL)
public PlatformTransactionManager acdFullTransactionManager() {
JpaTransactionManager transactionManager
= new JpaTransactionManager();
transactionManager.setEntityManagerFactory(
acdFullEntityManager().getObject());
return transactionManager;
}
@Bean(name = DataSourceQualify.NAMED_JDBC_PARAMETER_TEMPLATE_ACD_FULL)
@DependsOn("datasource2.datasource")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource2.datasource") DataSource abcDataSource) {
return new NamedParameterJdbcTemplate(abcDataSource);
}
}
package com.viettel.campaign.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
import java.util.HashMap;
/**
* @author anhvd_itsol
*/
@Configuration
@PropertySource({ "classpath:application.yml" })
@EnableJpaRepositories(
basePackages = "com.viettel.campaign.repository.ccms_full",
entityManagerFactoryRef = "ccmsFullEntityManager",
transactionManagerRef = DataSourceQualify.CCMS_FULL
)
public class CCMSFullDatasourceConfig {
@Autowired
private Environment env;
@Bean("datasource1.datasource")
public DataSource dataSource(){
OracleDataSource r = new OracleDataSource();
r.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
r.setPoolName("app.datasource1");
r.setJdbcUrl(env.getProperty("spring.datasource.url"));
r.setMaximumPoolSize(env.getProperty("spring.datasource.max_pool_size", Integer.class));
r.setPassword(env.getProperty("spring.datasource.password"));
r.setUsername(env.getProperty("spring.datasource.username"));
return r;
}
@Bean
public LocalContainerEntityManagerFactoryBean ccmsFullEntityManager() {
LocalContainerEntityManagerFactoryBean em
= new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setPackagesToScan(
new String[] { "com.viettel.campaign.model.ccms_full" });
em.setPersistenceUnitName(DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL); // Important !!
HibernateJpaVendorAdapter vendorAdapter
= new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
HashMap<String, Object> properties = new HashMap<>();
properties.put("hibernate.dialect", env.getProperty("spring.jpa.database-platform"));
em.setJpaPropertyMap(properties);
return em;
}
@Bean(name = DataSourceQualify.CCMS_FULL)
public PlatformTransactionManager ccmsFullTransactionManager() {
JpaTransactionManager transactionManager
= new JpaTransactionManager();
transactionManager.setEntityManagerFactory(
ccmsFullEntityManager().getObject());
return transactionManager;
}
@Bean(name = DataSourceQualify.NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL)
@DependsOn("datasource1.datasource")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource1.datasource") DataSource abcDataSource) {
return new NamedParameterJdbcTemplate(abcDataSource);
}
}
package com.viettel.campaign.config;
/**
* @author anhvd_itsol
*/
public class DataSourceQualify {
public static final String CCMS_FULL = "ccmsFullTransactionManager";
public static final String ACD_FULL = "acdFullTransactionManager";
public static final String JPA_UNIT_NAME_CCMS_FULL ="PERSITENCE_UNIT_NAME_1";
public static final String JPA_UNIT_NAME_ACD_FULL ="PERSITENCE_UNIT_NAME_2";
public static final String NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL ="NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL";
public static final String NAMED_JDBC_PARAMETER_TEMPLATE_ACD_FULL ="NAMED_JDBC_PARAMETER_TEMPLATE_ACD_FULL";
}
......@@ -5,6 +5,7 @@ import com.viettel.campaign.job.CampaignJob;
import com.viettel.campaign.service.ApParamService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.TaskScheduler;
......@@ -15,6 +16,7 @@ import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.concurrent.ScheduledFuture;
......@@ -84,15 +86,15 @@ public class JobConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setPoolSize(10);
threadPoolTaskScheduler.setThreadNamePrefix("scheduler-thread");
threadPoolTaskScheduler.initialize();
scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
// scheduledTaskRegistrar.addTriggerTask(() -> campaignJob().process(), (TriggerContext triggerContext) -> yourService.getCron());
scheduledTaskRegistrar.addTriggerTask(() -> campaignJob().process(), triggerContext -> {
CronTrigger trigger = new CronTrigger("0/5 * * * * ?");
return trigger.nextExecutionTime(triggerContext);
});
// ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
// threadPoolTaskScheduler.setPoolSize(10);
// threadPoolTaskScheduler.setThreadNamePrefix("scheduler-thread");
// threadPoolTaskScheduler.initialize();
// scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
//// scheduledTaskRegistrar.addTriggerTask(() -> campaignJob().process(), (TriggerContext triggerContext) -> yourService.getCron());
// scheduledTaskRegistrar.addTriggerTask(() -> campaignJob().process(), triggerContext -> {
// CronTrigger trigger = new CronTrigger("0/5 * * * * ?");
// return trigger.nextExecutionTime(triggerContext);
// });
}
}
package com.viettel.campaign.config;
import com.zaxxer.hikari.HikariDataSource;
/**
* @author anhvd_itsol
*/
public class OracleDataSource extends HikariDataSource {
public OracleDataSource(){
super.addDataSourceProperty("useSSL", "false");
super.addDataSourceProperty("cachePrepStmts", "true");
super.addDataSourceProperty("prepStmtCacheSize", "256");
super.addDataSourceProperty("allowMultiQueries", "true");
super.addDataSourceProperty("useServerPrepStmts", "false");
super.addDataSourceProperty("useLocalSessionState", "true");
super.addDataSourceProperty("prepStmtCacheSqlLimit", "81920");
super.addDataSourceProperty("nullCatalogMeansCurrent", "true");
super.addDataSourceProperty("rewriteBatchedStatements", "false");
super.addDataSourceProperty("useOldAliasMetadataBehavior", "true");
this.setIdleTimeout(600000); this.setConnectionTimeout(18000); this.setMinimumIdle(0);
this.setMaxLifetime(1800000); this.setInitializationFailTimeout(0);
}
}
package com.viettel.campaign.job;
import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.model.ProcessConfig;
import com.viettel.campaign.model.ccms_full.Campaign;
import com.viettel.campaign.model.ccms_full.ProcessConfig;
import com.viettel.campaign.service.CampaignService;
import com.viettel.campaign.service.ProcessConfigService;
import com.viettel.campaign.utils.DateTimeUtil;
......
package com.viettel.campaign.mapper;
import com.viettel.campaign.web.dto.ApParamDTO;
import com.viettel.campaign.model.ApParam;
import com.viettel.campaign.model.ccms_full.ApParam;
public class ApParamMapper extends BaseMapper<ApParam, ApParamDTO> {
......
package com.viettel.campaign.mapper;
import com.viettel.campaign.web.dto.CampaignCompleteCodeDTO;
import com.viettel.campaign.model.CampaignCompleteCode;
import com.viettel.campaign.model.ccms_full.CampaignCompleteCode;
public class CampaignCompleteCodeMapper extends BaseMapper<CampaignCompleteCode, CampaignCompleteCodeDTO> {
......
package com.viettel.campaign.mapper;
import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.model.ccms_full.CustomerList;
import com.viettel.campaign.web.dto.CustomerListDTO;
public class CustomerListMapper extends BaseMapper<CustomerList, CustomerListDTO> {
......
package com.viettel.campaign.mapper;
import com.viettel.campaign.web.dto.CustomerDTO;
import com.viettel.campaign.model.Customer;
import com.viettel.campaign.model.ccms_full.Customer;
public class CustomerMapper extends BaseMapper<Customer, CustomerDTO> {
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......@@ -75,6 +75,7 @@ public class Campaign implements Serializable {
private String dayOfWeek;
@Column(name = "CURRENT_TIME_MODE")
private Long currentTimeMode;
private Long currentTimeModel;
@Column(name = "WRAPUP_TIME_CONNECT")
private Long wrapupTimeConnect;
@Column(name = "WRAPUP_TIME_DISCONNECT")
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Data;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.model;
package com.viettel.campaign.model.ccms_full;
import javax.persistence.Entity;
import lombok.Getter;
......
package com.viettel.campaign.repository;
import com.viettel.campaign.model.CampaignCompleteCode;
public interface CampaignCompleteCodeRepositoryCustom {
// CampaignCompleteCode updateStatusById(Long id);
// CampaignCompleteCode findMaxValueCampaignType(Long companySiteId);
}
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ApParam;
import com.viettel.campaign.model.ccms_full.ApParam;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import org.springframework.stereotype.Repository;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.CampaignCompleteCode;
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;
......@@ -12,7 +12,7 @@ import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CampaignCompleteCodeRepository extends JpaRepository<CampaignCompleteCode, Long>, CampaignCompleteCodeRepositoryCustom {
public interface CampaignCompleteCodeRepository extends JpaRepository<CampaignCompleteCode, Long>{
@Query(" select u FROM CampaignCompleteCode u WHERE u.status = 1")
Page<CampaignCompleteCode> findAll(Pageable pageable);
......
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);
}
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.CampaignCustomerList;
import com.viettel.campaign.model.ccms_full.CampaignCustomerList;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.CampaignCustomer;
import com.viettel.campaign.model.ccms_full.CampaignCustomer;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.web.dto.ApParamDTO;
import com.viettel.campaign.web.dto.ContactCustResultDTO;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.web.dto.CampaignDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.model.ccms_full.Campaign;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.CustomerContact;
import com.viettel.campaign.model.ccms_full.CustomerContact;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.CustomerListMapping;
import com.viettel.campaign.model.ccms_full.CustomerListMapping;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.model.ccms_full.CustomerList;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
......@@ -22,6 +22,6 @@ public interface CustomerListRepository extends JpaRepository<CustomerList, Long
@Query("update CustomerList c set c.status = 0 where c.customerListId in (:p_ids) and c.companySiteId=:p_company_site_id")
int deleteCustomerListIds(@Param("p_ids") List<Long> p_ids, @Param("p_company_site_id") Long p_company_site_id);
@Query(value = "SELECT * FROM (SELECT c.*, MAX(c.CREATE_AT) OVER() AS LATEST_CREATED FROM CUSTOMER_LIST c) WHERE CREATE_AT = LATEST_CREATED", nativeQuery = true)
CustomerList latestCreated();
@Query(value = "SELECT * FROM (SELECT c.*, MAX(c.CREATE_AT) OVER() AS LATEST_CREATED FROM CUSTOMER_LIST c) WHERE CREATE_AT = LATEST_CREATED AND COMPANY_SITE_ID =:p_company_site_id", nativeQuery = true)
CustomerList latestCreated(@Param("p_company_site_id") Long p_company_site_id);
}
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.Customer;
import com.viettel.campaign.model.ccms_full.Customer;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ProcessConfig;
import com.viettel.campaign.model.ccms_full.ProcessConfig;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.Ticket;
import com.viettel.campaign.model.ccms_full.Ticket;
public interface TicketRepository extends BaseRepository<Ticket>, TicketRepositoryCustom {
}
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.web.dto.TicketDTO;
import org.springframework.data.domain.Pageable;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.TimeRangeDialMode;
import com.viettel.campaign.model.ccms_full.TimeRangeDialMode;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.TimeZoneDialMode;
import com.viettel.campaign.model.ccms_full.TimeZoneDialMode;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
......
package com.viettel.campaign.repository;
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.web.dto.ResultDTO;
......
package com.viettel.campaign.repository.impl;
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.repository.ApParamRepositoryCustom;
import com.viettel.campaign.repository.ccms_full.ApParamRepositoryCustom;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
......
package com.viettel.campaign.repository.impl;
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.model.CampaignCompleteCode;
import com.viettel.campaign.repository.CampaignCompleteCodeRepositoryCustom;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.CampaignCompleteCode;
import com.viettel.campaign.repository.ccms_full.CampaignCompleteCodeRepositoryCustom;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Repository
public class CampaignCompleteCompleteCodeRepositoryIpml implements CampaignCompleteCodeRepositoryCustom {
@Autowired
EntityManager entityManager;
@PersistenceContext( unitName= DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL)
private EntityManager entityManager;
private Logger log = LoggerFactory.getLogger(CampaignCompleteCompleteCodeRepositoryIpml.class);
@Transactional
@Override
// @Transactional(DataSourceQualify.CCMS_FULL)
public CampaignCompleteCode updateStatusById(Long id) {
CampaignCompleteCode dto = new CampaignCompleteCode();
try {
......@@ -32,7 +34,8 @@ public class CampaignCompleteCompleteCodeRepositoryIpml implements CampaignCompl
return dto;
}
@Transactional
@Override
// @Transactional(DataSourceQualify.CCMS_FULL)
public CampaignCompleteCode findMaxValueCampaignType(Long companySiteId) {
CampaignCompleteCode result = new CampaignCompleteCode();
try {
......
package com.viettel.campaign.repository.impl;
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.repository.CampaignExecuteRepository;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.repository.ccms_full.CampaignExecuteRepository;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.utils.HibernateUtil;
......@@ -17,6 +18,7 @@ import org.hibernate.type.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
......@@ -25,6 +27,7 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.*;
import java.util.concurrent.TimeUnit;
......@@ -34,20 +37,23 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
private static final Logger logger = LoggerFactory.getLogger(CampaignRepositoryImpl.class);
@Autowired
@Qualifier(DataSourceQualify.NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL)
NamedParameterJdbcTemplate namedParameterJdbcTemplate;
@Autowired
@PersistenceContext( unitName = DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL)
EntityManager entityManager;
@Override
public List<ApParamDTO> getComboBoxStatus(String companySiteId, String completeType) {
List<ApParamDTO> list = new ArrayList<>();
Map<String, String> params = new HashMap<>();
String sql = SQLBuilder.getSqlQueryById(Constants.SQL_MODULES.MODULE_EXECUTE, "get-combo-status");
String sql = SQLBuilder.getSqlQueryById(Constants.SQL_MODULES.MODULE_EXECUTE, "get-combo-connect-status");
try {
params.put("p_company_site_id", companySiteId);
params.put("p_complete_type", completeType);
list = namedParameterJdbcTemplate.query(sql, params, BeanPropertyRowMapper.newInstance(ApParamDTO.class));
// list = namedParameterJdbcTemplate.getJdbcTemplate().query(sql, (PreparedStatementSetter) params, BeanPropertyRowMapper.newInstance(ComboBoxDTO.class));
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
......@@ -81,69 +87,37 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
String sql = SQLBuilder.getSqlQueryById(Constants.SQL_MODULES.MODULE_EXECUTE, "get-execute-interactive");
sqlBuilder.append(sql);
sqlBuilder.append(" and to_char(a.customer_id) like :p_customer_id");
sqlBuilder.append(" and to_char(a.contact_status) in (:p_list_contact_status)");
sqlBuilder.append(" and to_char(a.call_status) in (:p_list_survey_status)");
sqlBuilder.append(" and to_char(a.status) in (:p_list_record_status)");
if (!DataUtil.isNullOrEmpty(dto.getPhoneNumber())) {
sqlBuilder.append(" and a.phone_number like :p_phone_number");
}
if (!DataUtil.isNullOrEmpty(dto.getCampaignId())) {
sqlBuilder.append(" and b.campaign_code in (:p_list_campaign_id) ");
}
if (!DataUtil.isNullOrEmpty(dto.getCampaignName())) {
sqlBuilder.append(" and upper(b.campaign_name) like :p_campaign_name");
sqlBuilder.append(" and upper(campaignName) like upper(:p_campaign_name)");
}
if (!DataUtil.isNullOrEmpty(dto.getAgentId())) {
sqlBuilder.append(" and upper(c.user_name) like :p_user_name");
sqlBuilder.append(" and upper(userName) like upper(:p_user_name)");
}
SQLQuery query = session.createSQLQuery(sqlBuilder.toString());
query.setParameter("p_company_site_id", dto.getCompanySiteId());
query.setParameter("p_customer_id", "%" + dto.getCustomerId()
.replace("\\", "\\\\")
.replaceAll("%", "\\%")
.replaceAll("_", "\\_")
+ "%");
query.setParameterList("p_list_campaign_id", dto.getCampaignId().split(","));
query.setParameter("p_customer_id", dto.getCustomerId());
query.setParameter("p_date_from", dto.getFromDate());
query.setParameter("p_date_to", dto.getToDate());
query.setParameterList("p_list_contact_status", dto.getContactStatus().split(","));
query.setParameterList("p_list_survey_status", dto.getSurveyStatus().split(","));
query.setParameterList("p_list_record_status", dto.getRecordStatus().split(","));
query.setParameter("p_phone_number", dto.getPhoneNumber());
query.setParameter("p_call_time_from", dto.getCallTimeFrom());
query.setParameter("p_call_time_to", dto.getCallTimeTo());
if (!DataUtil.isNullOrEmpty(dto.getCampaignId())) {
query.setParameterList("p_list_campaign_id", dto.getCampaignId().split(","));
}
if (!DataUtil.isNullOrEmpty(dto.getPhoneNumber())) {
query.setParameter("p_phone_number", "%" + dto.getPhoneNumber()
.replace("\\", "\\\\")
.replaceAll("%", "\\%")
.replaceAll("_", "\\_")
+ "%");
}
if (!DataUtil.isNullOrEmpty(dto.getCampaignName())) {
query.setParameter("p_campaign_name", "%" + dto.getCampaignName().toUpperCase()
.replace("\\", "\\\\")
.replaceAll("%", "\\%")
.replaceAll("_", "\\_")
+ "%");
query.setParameter("p_campaign_name", dto.getCampaignName().trim());
}
if (!DataUtil.isNullOrEmpty(dto.getAgentId())) {
query.setParameter("p_user_name", "%" + dto.getAgentId().toUpperCase()
.replace("\\", "\\\\")
.replaceAll("%", "\\%")
.replaceAll("_", "\\_")
+ "%");
query.setParameter("p_user_name", dto.getAgentId().trim());
}
query.addScalar("campaignCode", new StringType());
query.addScalar("campaignName", new StringType());
query.addScalar("userName", new StringType());
query.addScalar("phoneNumber", new StringType());
query.addScalar("phoneNumber", new LongType());
query.addScalar("customerName", new StringType());
query.addScalar("createTime", new DateType());
query.addScalar("contactStatus", new StringType());
......@@ -187,8 +161,8 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
logger.error(e.getMessage(), e);
} finally {
session.close();
return resultDTO;
}
return resultDTO;
}
@Override
......@@ -203,69 +177,37 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
String sql = SQLBuilder.getSqlQueryById(Constants.SQL_MODULES.MODULE_EXECUTE, "get-execute-interactive");
sqlBuilder.append(sql);
sqlBuilder.append(" and to_char(a.customer_id) like :p_customer_id");
sqlBuilder.append(" and to_char(a.contact_status) in (:p_list_contact_status)");
sqlBuilder.append(" and to_char(a.call_status) in (:p_list_survey_status)");
sqlBuilder.append(" and to_char(a.status) in (:p_list_record_status)");
if (!DataUtil.isNullOrEmpty(dto.getPhoneNumber())) {
sqlBuilder.append(" and a.phone_number like :p_phone_number");
}
if (!DataUtil.isNullOrEmpty(dto.getCampaignId())) {
sqlBuilder.append(" and b.campaign_code in (:p_list_campaign_id) ");
}
if (!DataUtil.isNullOrEmpty(dto.getCampaignName())) {
sqlBuilder.append(" and upper(b.campaign_name) like :p_campaign_name");
sqlBuilder.append(" and upper(campaignName) like upper(:p_campaign_name)");
}
if (!DataUtil.isNullOrEmpty(dto.getAgentId())) {
sqlBuilder.append(" and upper(c.user_name) like :p_user_name");
sqlBuilder.append(" and upper(userName) like upper(:p_user_name)");
}
SQLQuery query = session.createSQLQuery(sqlBuilder.toString());
query.setParameter("p_company_site_id", dto.getCompanySiteId());
query.setParameter("p_customer_id", "%" + dto.getCustomerId()
.replace("\\", "\\\\")
.replaceAll("%", "\\%")
.replaceAll("_", "\\_")
+ "%");
query.setParameterList("p_list_campaign_id", dto.getCampaignId().split(","));
query.setParameter("p_customer_id", dto.getCustomerId());
query.setParameter("p_date_from", dto.getFromDate());
query.setParameter("p_date_to", dto.getToDate());
query.setParameterList("p_list_contact_status", dto.getContactStatus().split(","));
query.setParameterList("p_list_survey_status", dto.getSurveyStatus().split(","));
query.setParameterList("p_list_record_status", dto.getRecordStatus().split(","));
query.setParameter("p_phone_number", dto.getPhoneNumber());
query.setParameter("p_call_time_from", dto.getCallTimeFrom());
query.setParameter("p_call_time_to", dto.getCallTimeTo());
if (!DataUtil.isNullOrEmpty(dto.getCampaignId())) {
query.setParameterList("p_list_campaign_id", dto.getCampaignId().split(","));
}
if (!DataUtil.isNullOrEmpty(dto.getPhoneNumber())) {
query.setParameter("p_phone_number", "%" + dto.getPhoneNumber()
.replace("\\", "\\\\")
.replaceAll("%", "\\%")
.replaceAll("_", "\\_")
+ "%");
}
if (!DataUtil.isNullOrEmpty(dto.getCampaignName())) {
query.setParameter("p_campaign_name", "%" + dto.getCampaignName().toUpperCase()
.replace("\\", "\\\\")
.replaceAll("%", "\\%")
.replaceAll("_", "\\_")
+ "%");
query.setParameter("p_campaign_name", dto.getCampaignName().trim());
}
if (!DataUtil.isNullOrEmpty(dto.getAgentId())) {
query.setParameter("p_user_name", "%" + dto.getAgentId().toUpperCase()
.replace("\\", "\\\\")
.replaceAll("%", "\\%")
.replaceAll("_", "\\_")
+ "%");
query.setParameter("p_user_name", dto.getAgentId().trim());
}
query.addScalar("campaignCode", new StringType());
query.addScalar("campaignName", new StringType());
query.addScalar("userName", new StringType());
query.addScalar("phoneNumber", new StringType());
query.addScalar("phoneNumber", new LongType());
query.addScalar("customerName", new StringType());
query.addScalar("createTime", new DateType());
query.addScalar("contactStatus", new StringType());
......
package com.viettel.campaign.repository.impl;
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.repository.CampaignRepositoryCustom;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.repository.ccms_full.CampaignRepositoryCustom;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.utils.HibernateUtil;
......@@ -20,6 +21,7 @@ import org.springframework.data.domain.*;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.math.BigDecimal;
import java.util.ArrayList;
......@@ -32,6 +34,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
private static final Logger logger = LogManager.getLogger(CampaignRepositoryImpl.class);
@Autowired
@PersistenceContext( unitName= DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL)
EntityManager entityManager;
@Override
......
package com.viettel.campaign.repository.impl;
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.repository.TicketRepositoryCustom;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.repository.ccms_full.TicketRepositoryCustom;
import com.viettel.campaign.web.dto.TicketDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.math.BigDecimal;
import java.util.ArrayList;
......@@ -15,6 +17,7 @@ import java.util.List;
public class TicketRepositoryImpl implements TicketRepositoryCustom {
@Autowired
@PersistenceContext( unitName= DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL)
EntityManager entityManager;
@Override
......
package com.viettel.campaign.repository.impl;
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.repository.UserActionLogRepositoryCustom;
import com.viettel.campaign.repository.ccms_full.UserActionLogRepositoryCustom;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.HibernateUtil;
import com.viettel.campaign.utils.SQLBuilder;
......
......@@ -2,7 +2,7 @@ package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.ApParamDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.model.ApParam;
import com.viettel.campaign.model.ccms_full.ApParam;
import java.util.List;
......
package com.viettel.campaign.service;
import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.model.ccms_full.Campaign;
import com.viettel.campaign.web.dto.CampaignDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
......
......@@ -36,12 +36,16 @@ public interface CustomerService {
ResultDTO searchCustomerList(SearchCustomerRequestDTO searchCustomerRequestDTO);
CustomerList getLatestCreated();
CustomerList getLatestCreated(Long companySiteId);
// ------------ customer contact ------------ //
<<<<<<< HEAD
=======
ResultDTO getCustomerContact(CustomerContactDTO customer);
>>>>>>> 1e6b797350a4aab62031bb2ede27d0beb4dc3bb3
// danh sach khach hang cua chien dich //
ResultDTO searchCustomerListInfoFromCustomerList(int page, int pageSize, String sort, Long campaignId, Long companySiteId);
......
package com.viettel.campaign.service;
import com.viettel.campaign.model.ProcessConfig;
import com.viettel.campaign.repository.ProcessConfigRepository;
import com.viettel.campaign.model.ccms_full.ProcessConfig;
import com.viettel.campaign.repository.ccms_full.ProcessConfigRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......
package com.viettel.campaign.service.impl;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.service.ApParamService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.ApParamDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.mapper.ApParamMapper;
import com.viettel.campaign.model.ApParam;
import com.viettel.campaign.repository.ApParamRepository;
import com.viettel.campaign.model.ccms_full.ApParam;
import com.viettel.campaign.repository.ccms_full.ApParamRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
......@@ -14,8 +15,10 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.transaction.annotation.Transactional;
@Service
public class ApParamServiceImpl implements ApParamService {
......@@ -26,11 +29,13 @@ public class ApParamServiceImpl implements ApParamService {
private static final Logger logger = LogManager.getLogger(ApParamServiceImpl.class);
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public Iterable<ApParam> getAllParams(int page, int pageSize, String sort) {
return apParamRepository.findAll(PageRequest.of(page, pageSize, Sort.by(sort)));
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public List<ApParam> getParamByName(int page, int pageSize, String sort, String parName) {
List<ApParam> lst = new ArrayList<>();
......@@ -41,6 +46,7 @@ public class ApParamServiceImpl implements ApParamService {
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO createApParam(ApParamDTO apParamDTO) {
ResultDTO result = new ResultDTO();
ApParamMapper apParamMapper = new ApParamMapper();
......@@ -67,6 +73,7 @@ public class ApParamServiceImpl implements ApParamService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO findParamByParType(String parType) {
ResultDTO resultDTO = new ResultDTO();
try {
......
package com.viettel.campaign.service.impl;
import com.viettel.campaign.repository.CampaignExecuteRepository;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.repository.ccms_full.CampaignExecuteRepository;
import com.viettel.campaign.service.CampaignExecuteService;
import com.viettel.campaign.utils.BundleUtils;
import com.viettel.campaign.utils.Constants;
......@@ -8,7 +9,6 @@ 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 org.apache.commons.collections4.BagUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
......@@ -16,8 +16,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
......@@ -34,6 +34,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
//<editor-fold: hungtt>
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO getComboBoxStatus(String companySiteId, String completeType) {
ResultDTO resultDTO = new ResultDTO();
try {
......@@ -48,6 +49,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO getComboCampaignType(String companySiteId) {
ResultDTO resultDTO = new ResultDTO();
try {
......@@ -62,6 +64,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO searchInteractiveResult(CampaignRequestDTO dto) {
ResultDTO resultDTO = new ResultDTO();
try {
......@@ -73,6 +76,7 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public XSSFWorkbook exportInteractiveResult(CampaignRequestDTO dto) {
Locale locale = Locale.forLanguageTag("vi");
List<ContactCustResultDTO> list = campaignExecuteRepository.getExcelInteractiveResult(dto);
......
package com.viettel.campaign.service.impl;
import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.model.TimeRangeDialMode;
import com.viettel.campaign.model.TimeZoneDialMode;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.Campaign;
import com.viettel.campaign.model.ccms_full.TimeRangeDialMode;
import com.viettel.campaign.model.ccms_full.TimeZoneDialMode;
//import com.viettel.campaign.model.UserActionLog;
import com.viettel.campaign.repository.CampaignRepository;
import com.viettel.campaign.repository.TimeRangeDialModeRepository;
import com.viettel.campaign.repository.TimeZoneDialModeRepository;
import com.viettel.campaign.repository.ccms_full.CampaignRepository;
import com.viettel.campaign.repository.ccms_full.TimeRangeDialModeRepository;
import com.viettel.campaign.repository.ccms_full.TimeZoneDialModeRepository;
//import com.viettel.campaign.repository.UserActionLogRepository;
import com.viettel.campaign.repository.UserActionLogRepositoryCustom;
import com.viettel.campaign.repository.impl.CampaignRepositoryImpl;
import com.viettel.campaign.repository.ccms_full.UserActionLogRepositoryCustom;
import com.viettel.campaign.service.CampaignService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.*;
......@@ -21,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
......@@ -31,7 +30,7 @@ import java.util.*;
@Service
@Transactional(rollbackFor = Exception.class)
public class CampaignServiceImpl implements CampaignService {
private static final Logger logger = LogManager.getLogger(CampaignRepositoryImpl.class);
private static final Logger logger = LogManager.getLogger(CampaignServiceImpl.class);
@Autowired
CampaignRepository campaignRepository;
......@@ -49,41 +48,49 @@ public class CampaignServiceImpl implements CampaignService {
ModelMapper modelMapper;
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO searchCampaignExecute(CampaignRequestDTO requestDto) {
return campaignRepository.searchCampaignExecute(requestDto);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO search(CampaignRequestDTO requestDto) {
return campaignRepository.search(requestDto);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO findByCampaignCode(CampaignRequestDTO requestDTO) {
return campaignRepository.findByCampaignCode(requestDTO);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public List<Campaign> findAllCondition(Long companySiteId) {
return campaignRepository.findAllByCompanySiteId(companySiteId);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public List<Campaign> findCampaignByCompanySiteIdAndStartTimeIsLessThanEqualAndStatusIn(Long siteId, Date startTime, List<Long> status) {
return campaignRepository.findCampaignByCompanySiteIdAndStartTimeIsLessThanEqualAndStatusIn(siteId, startTime, status);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public List<Campaign> findCampaignByCompanySiteIdAndEndTimeIsLessThanEqualAndStatusIn(Long siteId, Date endTime, List<Long> status) {
return campaignRepository.findCampaignByCompanySiteIdAndEndTimeIsLessThanEqualAndStatusIn(siteId, endTime, status);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public Campaign updateProcess(Campaign c) {
return campaignRepository.save(c);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO findByCampaignId(Long campaignId) {
ResultDTO result = new ResultDTO();
Campaign campaign = campaignRepository.findByCampaignId(campaignId);
......@@ -101,6 +108,7 @@ public class CampaignServiceImpl implements CampaignService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO addNewCampaign(CampaignDTO campaignDTO) {
logger.info("=== Start add new campaign ");
ResultDTO resultDTO = new ResultDTO();
......@@ -166,6 +174,7 @@ public class CampaignServiceImpl implements CampaignService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO findCampaignById(Long campaignId) {
logger.info("=== Start find campaign by id: " + campaignId);
ResultDTO resultDTO = new ResultDTO();
......@@ -185,6 +194,7 @@ public class CampaignServiceImpl implements CampaignService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO changeCampaignStatus(CampaignDTO dto) {
ResultDTO result = new ResultDTO();
try {
......@@ -237,6 +247,7 @@ public class CampaignServiceImpl implements CampaignService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO checkAllowStatusToPrepare(Long campaignId) {
return campaignRepository.checkAllowStatusToPrepare(campaignId);
}
......
package com.viettel.campaign.service.impl;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.mapper.CustomerListMapper;
import com.viettel.campaign.mapper.CustomerMapper;
import com.viettel.campaign.model.Customer;
import com.viettel.campaign.model.CustomerContact;
import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.repository.*;
import com.viettel.campaign.model.ccms_full.Customer;
import com.viettel.campaign.model.ccms_full.CustomerContact;
import com.viettel.campaign.model.ccms_full.CustomerList;
import com.viettel.campaign.repository.ccms_full.*;
import com.viettel.campaign.service.CustomerService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil;
......@@ -28,6 +29,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.util.Date;
import java.util.List;
......@@ -36,6 +38,7 @@ import java.util.List;
public class CustomerServiceImpl implements CustomerService {
@Autowired
@PersistenceContext( unitName= DataSourceQualify.JPA_UNIT_NAME_CCMS_FULL)
EntityManager entityManager;
@Autowired
......@@ -57,6 +60,7 @@ public class CustomerServiceImpl implements CustomerService {
CustomerListMappingRepository customerListMappingRepository;
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO getAllCustomer(int page, int pageSize, String sort, long customerListId, long companySiteId) {
ResultDTO resultDTO = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
......@@ -122,6 +126,7 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO getCustomerId(Long customerId) {
ResultDTO resultDTO = new ResultDTO();
......@@ -140,6 +145,7 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO searchAllCustomer(int page, int pageSize, String sort, long customerListId, long companySiteId, String name, String mobileNumber, String email) {
ResultDTO resultDTO = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
......@@ -238,7 +244,7 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
@Transactional
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO createCustomer(CustomerDTO customerDTO) {
ResultDTO resultDTO = new ResultDTO();
CustomerMapper customerMapper = new CustomerMapper();
......@@ -272,8 +278,8 @@ public class CustomerServiceImpl implements CustomerService {
return resultDTO;
}
@Transactional
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO deleteCustomer(CustomerRequestDTO customerRequestDTO) {
ResultDTO resultDTO = new ResultDTO();
try {
......@@ -295,8 +301,8 @@ public class CustomerServiceImpl implements CustomerService {
return resultDTO;
}
@Transactional
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO deleteIds(CustomerRequestDTO customerRequestDTO) {
ResultDTO resultDTO = new ResultDTO();
try {
......@@ -332,6 +338,7 @@ public class CustomerServiceImpl implements CustomerService {
// ------------- customer list ----------------- //
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO getAllCustomerList(int page, int pageSize, String sort, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
......@@ -396,6 +403,7 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO createCustomerList(CustomerListDTO customerListDTO) {
ResultDTO resultDTO = new ResultDTO();
CustomerListMapper customerListMapper = new CustomerListMapper();
......@@ -426,6 +434,7 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO updateCustomerList(CustomerListDTO customerListDTO) {
ResultDTO resultDTO = new ResultDTO();
CustomerListMapper customerListMapper = new CustomerListMapper();
......@@ -456,8 +465,8 @@ public class CustomerServiceImpl implements CustomerService {
return resultDTO;
}
@Transactional
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO deleteCustomerList(CustomerListDTO customerListDTO) {
ResultDTO resultDTO = new ResultDTO();
......@@ -483,8 +492,8 @@ public class CustomerServiceImpl implements CustomerService {
return resultDTO;
}
@Transactional
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO deleteCustomerListIds(CustomerRequestDTO customerRequestDTO) {
ResultDTO resultDTO = new ResultDTO();
try {
......@@ -511,6 +520,7 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO searchCustomerList(SearchCustomerRequestDTO searchCustomerRequestDTO) {
ResultDTO resultDTO = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
......@@ -602,11 +612,13 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
public CustomerList getLatestCreated() {
return customerListRepository.latestCreated();
@Transactional(DataSourceQualify.CCMS_FULL)
public CustomerList getLatestCreated(Long companySiteId) {
return customerListRepository.latestCreated(companySiteId);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO getCustomerContact(CustomerContactDTO customer) {
ResultDTO result = new ResultDTO();
......@@ -630,6 +642,7 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO getCustomerRecall(Long campaignId, Long customerId) {
ResultDTO result = new ResultDTO();
......@@ -652,6 +665,7 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO searchCustomerListInfoFromCustomerList(int page, int pageSize, String sort, Long campaignId, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO();
try {
......
package com.viettel.campaign.service.impl;
import com.viettel.campaign.repository.TicketRepository;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.repository.ccms_full.TicketRepository;
import com.viettel.campaign.service.TicketService;
import com.viettel.campaign.web.dto.TicketDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
......@@ -20,6 +22,7 @@ public class TicketServiceImpl implements TicketService {
TicketRepository ticketRepository;
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public Map getHistory(int page, int pageSize, String sort, String customerId) {
Map result = new HashMap();
List<TicketDTO> lst = new ArrayList<>();
......
package com.viettel.campaign.web.rest;
import com.viettel.campaign.model.ApParam;
import com.viettel.campaign.model.ccms_full.ApParam;
import com.viettel.campaign.service.ApParamService;
import com.viettel.campaign.service.CampaignExecuteService;
import org.apache.log4j.Logger;
......
......@@ -53,7 +53,7 @@ public class CustomerController {
@GetMapping("/searchAllCustomerByParams")
@ResponseBody
public ResponseEntity findAllCustomerName(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("sort") String sort, @RequestParam("customerListId") Long customerListId, @RequestParam("companySiteId") Long companySiteId, @RequestParam("name") String name, @RequestParam("mobileNumber") String mobileNumber, @RequestParam("email") String email) {
public ResponseEntity findAllCustomerByParams(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("sort") String sort, @RequestParam("customerListId") Long customerListId, @RequestParam("companySiteId") Long companySiteId, @RequestParam("name") String name, @RequestParam("mobileNumber") String mobileNumber, @RequestParam("email") String email) {
ResultDTO result = customerService.searchAllCustomer(page, pageSize, sort, customerListId, companySiteId, name, mobileNumber, email);
return new ResponseEntity(result, HttpStatus.OK);
}
......@@ -166,9 +166,9 @@ public class CustomerController {
@GetMapping("/latestCreated")
@ResponseBody
public ResponseEntity getLatestCreated() {
public ResponseEntity getLatestCreated(@RequestParam("companySiteId") Long companySiteId) {
ResultDTO result = new ResultDTO();
result.setData(customerService.getLatestCreated());
result.setData(customerService.getLatestCreated(companySiteId));
return new ResponseEntity<>(result, HttpStatus.OK);
}
......
......@@ -8,6 +8,13 @@ spring:
url: jdbc:oracle:thin:@10.60.157.135:1521:vt
username: CCMS_FULL
password: CCMS_FULL#123
max_pool_size: 32
datasource2:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@10.60.157.135:1521:vt
username: CCMS_FULL
password: CCMS_FULL#123
max_pool_size: 32
jpa:
database-platform: org.hibernate.dialect.Oracle10gDialect
show-sql: true
......
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