Commit df10e191 authored by Vu Duy Anh's avatar Vu Duy Anh

anhvd commit datasource property

parent 4677cf39
...@@ -3,3 +3,4 @@ target/ ...@@ -3,3 +3,4 @@ target/
logs/ logs/
out/ out/
/campaign.iml /campaign.iml
/lib
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<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>
...@@ -82,11 +83,11 @@ ...@@ -82,11 +83,11 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId> <artifactId>spring-boot-starter-websocket</artifactId>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>com.viettel</groupId> <!-- <groupId>com.viettel</groupId>-->
<artifactId>viettelsercurity</artifactId> <!-- <artifactId>viettelsercurity</artifactId>-->
<version>11.2.0.3</version> <!-- <version>11.2.0.3</version>-->
</dependency> <!-- </dependency>-->
<!--<dependency>--> <!--<dependency>-->
<!--<groupId>org.apache.kafka</groupId>--> <!--<groupId>org.apache.kafka</groupId>-->
<!--<artifactId>kafka-streams</artifactId>--> <!--<artifactId>kafka-streams</artifactId>-->
...@@ -98,8 +99,8 @@ ...@@ -98,8 +99,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>
...@@ -280,5 +281,14 @@ ...@@ -280,5 +281,14 @@
</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>
package com.viettel.campaign; package com.viettel.campaign;
import com.viettel.campaign.config.DataSourceProperties;
import com.viettel.campaign.utils.Config; import com.viettel.campaign.utils.Config;
import com.viettel.campaign.utils.RedisUtil; import com.viettel.campaign.utils.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication(scanBasePackages={"com.viettel.campaign"}) @SpringBootApplication(scanBasePackages={"com.viettel.campaign"})
@ComponentScan({"com.viettel"})
public class ServiceCampaignApplication { public class ServiceCampaignApplication {
@Autowired
DataSourceProperties dataSourceProperties;
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ServiceCampaignApplication.class, args); SpringApplication.run(ServiceCampaignApplication.class, args);
......
...@@ -2,6 +2,7 @@ package com.viettel.campaign.config; ...@@ -2,6 +2,7 @@ package com.viettel.campaign.config;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.*; import org.springframework.context.annotation.*;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
...@@ -11,6 +12,7 @@ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; ...@@ -11,6 +12,7 @@ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.PlatformTransactionManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.util.HashMap; import java.util.HashMap;
...@@ -29,15 +31,30 @@ public class ACDFullDatasourceConfig { ...@@ -29,15 +31,30 @@ public class ACDFullDatasourceConfig {
@Autowired @Autowired
private Environment env; private Environment env;
@Bean("datasource2.datasource") @Value("${datasource-property.acd-full.driver-class-name}")
private String driverClassName;
@Value("${datasource-property.acd-full.url}")
private String url;
@Value("${datasource-property.acd-full.max_pool_size}")
private Integer maxPoolSize;
@Value("${datasource-property.acd-full.password}")
private String password;
@Value("${datasource-property.acd-full.username}")
private String username;
@Bean("datasource.datasource2")
public DataSource dataSource(){ public DataSource dataSource(){
OracleDataSource r = new OracleDataSource(); OracleDataSource r = new OracleDataSource();
r.setDriverClassName(env.getProperty("spring.datasource2.driver-class-name")); r.setDriverClassName(driverClassName);
r.setPoolName("app.datasource2"); r.setPoolName("app.datasource2");
r.setJdbcUrl(env.getProperty("spring.datasource2.url")); r.setJdbcUrl(url);
r.setMaximumPoolSize(env.getProperty("spring.datasource2.max_pool_size", Integer.class)); r.setMaximumPoolSize(maxPoolSize);
r.setPassword(env.getProperty("spring.datasource2.password")); r.setPassword(password);
r.setUsername(env.getProperty("spring.datasource2.username")); r.setUsername(username);
return r; return r;
} }
...@@ -69,8 +86,8 @@ public class ACDFullDatasourceConfig { ...@@ -69,8 +86,8 @@ public class ACDFullDatasourceConfig {
} }
@Bean(name = DataSourceQualify.NAMED_JDBC_PARAMETER_TEMPLATE_ACD_FULL) @Bean(name = DataSourceQualify.NAMED_JDBC_PARAMETER_TEMPLATE_ACD_FULL)
@DependsOn("datasource2.datasource") @DependsOn("datasource.datasource2")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource2.datasource") DataSource abcDataSource) { public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource.datasource2") DataSource abcDataSource) {
return new NamedParameterJdbcTemplate(abcDataSource); return new NamedParameterJdbcTemplate(abcDataSource);
} }
} }
......
...@@ -2,6 +2,7 @@ package com.viettel.campaign.config; ...@@ -2,6 +2,7 @@ package com.viettel.campaign.config;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn; import org.springframework.context.annotation.DependsOn;
...@@ -32,15 +33,30 @@ public class CCMSFullDatasourceConfig { ...@@ -32,15 +33,30 @@ public class CCMSFullDatasourceConfig {
@Autowired @Autowired
private Environment env; private Environment env;
@Bean("datasource1.datasource") @Value("${datasource-property.ccms-full.driver-class-name}")
private String driverClassName;
@Value("${datasource-property.ccms-full.url}")
private String url;
@Value("${datasource-property.ccms-full.max_pool_size}")
private Integer maxPoolSize;
@Value("${datasource-property.ccms-full.password}")
private String password;
@Value("${datasource-property.ccms-full.username}")
private String username;
@Bean(name= "datasource.datasource1")
public DataSource dataSource(){ public DataSource dataSource(){
OracleDataSource r = new OracleDataSource(); OracleDataSource r = new OracleDataSource();
r.setDriverClassName(env.getProperty("spring.datasource.driver-class-name")); r.setDriverClassName(driverClassName);
r.setPoolName("app.datasource1"); r.setPoolName("app.datasource1");
r.setJdbcUrl(env.getProperty("spring.datasource.url")); r.setJdbcUrl(url);
r.setMaximumPoolSize(env.getProperty("spring.datasource.max_pool_size", Integer.class)); r.setMaximumPoolSize(maxPoolSize);
r.setPassword(env.getProperty("spring.datasource.password")); r.setPassword(password);
r.setUsername(env.getProperty("spring.datasource.username")); r.setUsername(username);
return r; return r;
} }
...@@ -72,8 +88,8 @@ public class CCMSFullDatasourceConfig { ...@@ -72,8 +88,8 @@ public class CCMSFullDatasourceConfig {
} }
@Bean(name = DataSourceQualify.NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL) @Bean(name = DataSourceQualify.NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL)
@DependsOn("datasource1.datasource") @DependsOn("datasource.datasource1")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource1.datasource") DataSource abcDataSource) { public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource.datasource1") DataSource abcDataSource) {
return new NamedParameterJdbcTemplate(abcDataSource); return new NamedParameterJdbcTemplate(abcDataSource);
} }
} }
package com.viettel.campaign.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @author anhvd_itsol
*/
@Component
@ConfigurationProperties(prefix = "datasource-property")
public class DataSourceProperties {
public static class CCMSFull{
private String driverClassName;
private String url;
private String username;
private String password;
private Integer maxPoolSize;
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getMaxPoolSize() {
return maxPoolSize;
}
public void setMaxPoolSize(Integer maxPoolSize) {
this.maxPoolSize = maxPoolSize;
}
}
public static class ACDFull{
private String driverClassName;
private String url;
private String username;
private String password;
private Integer maxPoolSize;
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getMaxPoolSize() {
return maxPoolSize;
}
public void setMaxPoolSize(Integer maxPoolSize) {
this.maxPoolSize = maxPoolSize;
}
}
}
...@@ -2,8 +2,12 @@ package com.viettel.campaign.repository.ccms_full; ...@@ -2,8 +2,12 @@ package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.ScenarioAnswer; import com.viettel.campaign.model.ccms_full.ScenarioAnswer;
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.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
*/ */
...@@ -11,4 +15,9 @@ import org.springframework.stereotype.Repository; ...@@ -11,4 +15,9 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface ScenarioAnswerRepository extends JpaRepository<ScenarioAnswer, Long> { public interface ScenarioAnswerRepository extends JpaRepository<ScenarioAnswer, Long> {
List<ScenarioAnswer> findByScenarioQuestionIdAndCompanySiteIdAndStatus(Long scenarioQuestionId, Long companySiteId, Short status);
@Query(value="SELECT MAX(orderIndex) FROM ScenarioAnswer WHERE scenarioQuestionId = :scenarioQuestionId AND companySiteId = :companySiteId AND status = 1")
Long getMaxAnswerOrderId(@Param("scenarioQuestionId") Long scenarioQuestionId, @Param("companySiteId") Long companySiteId);
} }
...@@ -14,7 +14,7 @@ import java.util.List; ...@@ -14,7 +14,7 @@ import java.util.List;
@Repository @Repository
public interface ScenarioQuestionRepository extends JpaRepository<ScenarioQuestion, Long> { public interface ScenarioQuestionRepository extends JpaRepository<ScenarioQuestion, Long> {
List<ScenarioQuestion> findScenarioQuestionsByScenarioIdAndCampaignIdAndCompanySiteIdAndStatus(Long scenarioId, Long campaignId, Long companySiteId, Short status); List<ScenarioQuestion> findScenarioQuestionsByScenarioIdAndCampaignIdAndCompanySiteIdAndStatusOrderByOrderIndex(Long scenarioId, Long campaignId, Long companySiteId, Short status);
@Query(value="SELECT MAX(orderIndex) FROM ScenarioQuestion WHERE scenarioId = :scenarioId AND campaignId = :campaignId AND companySiteId = :companySiteId AND status = 1") @Query(value="SELECT MAX(orderIndex) FROM ScenarioQuestion WHERE scenarioId = :scenarioId AND campaignId = :campaignId AND companySiteId = :companySiteId AND status = 1")
Long getMaxOrderId(@Param("scenarioId") Long scenarioId, @Param("campaignId") Long campaignId, @Param("companySiteId") Long companySiteId); Long getMaxOrderId(@Param("scenarioId") Long scenarioId, @Param("campaignId") Long campaignId, @Param("companySiteId") Long companySiteId);
......
package com.viettel.campaign.service; package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.ResultDTO;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
*/ */
public interface ScenarioAnswerService { public interface ScenarioAnswerService {
ResultDTO findByScenarioQuestionCompany(Long scenarioQuestionId, Long companySiteId);
Long getMaxAnswerOrderId(Long scenarioQuestionId, Long companySiteId);
} }
...@@ -15,7 +15,6 @@ import com.viettel.campaign.utils.DataUtil; ...@@ -15,7 +15,6 @@ import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.utils.WorkBookBuilder; import com.viettel.campaign.utils.WorkBookBuilder;
import com.viettel.campaign.web.dto.*; import com.viettel.campaign.web.dto.*;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import oracle.jdbc.driver.Const;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
......
package com.viettel.campaign.service.impl; package com.viettel.campaign.service.impl;
import com.viettel.campaign.model.ccms_full.ScenarioAnswer;
import com.viettel.campaign.repository.ccms_full.ScenarioAnswerRepository;
import com.viettel.campaign.service.ScenarioAnswerService; import com.viettel.campaign.service.ScenarioAnswerService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.ResultDTO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
*/ */
@Service @Service
public class ScenarioAnswerServiceImpl implements ScenarioAnswerService { public class ScenarioAnswerServiceImpl implements ScenarioAnswerService {
private static final Logger logger = LogManager.getLogger(ScenarioQuestionServiceImpl.class);
@Autowired
ScenarioAnswerRepository scenarioAnswerRepository;
@Override
public ResultDTO findByScenarioQuestionCompany(Long scenarioQuestionId, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO();
try {
List<ScenarioAnswer> lst = scenarioAnswerRepository.findByScenarioQuestionIdAndCompanySiteIdAndStatus(scenarioQuestionId, companySiteId, (short) 1);
resultDTO.setData(lst);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} catch(Exception ex) {
logger.error(ex.getMessage(), ex);
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
return resultDTO;
}
@Override
public Long getMaxAnswerOrderId(Long scenarioQuestionId, Long companySiteId) {
try {
return scenarioAnswerRepository.getMaxAnswerOrderId(scenarioQuestionId, companySiteId);
}catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
return null;
}
} }
...@@ -3,12 +3,15 @@ package com.viettel.campaign.service.impl; ...@@ -3,12 +3,15 @@ package com.viettel.campaign.service.impl;
import com.viettel.campaign.config.DataSourceQualify; import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.CampaignLog; import com.viettel.campaign.model.ccms_full.CampaignLog;
import com.viettel.campaign.model.ccms_full.Scenario; import com.viettel.campaign.model.ccms_full.Scenario;
import com.viettel.campaign.model.ccms_full.ScenarioAnswer;
import com.viettel.campaign.model.ccms_full.ScenarioQuestion; import com.viettel.campaign.model.ccms_full.ScenarioQuestion;
import com.viettel.campaign.repository.ccms_full.CampaignLogRepository; import com.viettel.campaign.repository.ccms_full.CampaignLogRepository;
import com.viettel.campaign.repository.ccms_full.ScenarioAnswerRepository;
import com.viettel.campaign.repository.ccms_full.ScenarioQuestionRepository; import com.viettel.campaign.repository.ccms_full.ScenarioQuestionRepository;
import com.viettel.campaign.service.ScenarioQuestionService; import com.viettel.campaign.service.ScenarioQuestionService;
import com.viettel.campaign.utils.Constants; import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.ScenarioAnswerDTO;
import com.viettel.campaign.web.dto.ScenarioQuestionDTO; import com.viettel.campaign.web.dto.ScenarioQuestionDTO;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
...@@ -17,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -17,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -35,6 +39,9 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService { ...@@ -35,6 +39,9 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
@Autowired @Autowired
CampaignLogRepository campaignLogRepository; CampaignLogRepository campaignLogRepository;
@Autowired
ScenarioAnswerRepository scenarioAnswerRepository;
@Autowired @Autowired
ModelMapper modelMapper; ModelMapper modelMapper;
...@@ -43,7 +50,7 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService { ...@@ -43,7 +50,7 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
public ResultDTO findByScenarioIdAndCampaignIdAndCompanySiteId(Long scenarioId, Long campaignId, Long companySiteId) { public ResultDTO findByScenarioIdAndCampaignIdAndCompanySiteId(Long scenarioId, Long campaignId, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
try { try {
List<ScenarioQuestion> lst = scenarioQuestionRepository.findScenarioQuestionsByScenarioIdAndCampaignIdAndCompanySiteIdAndStatus(scenarioId, campaignId, companySiteId, (short)1); List<ScenarioQuestion> lst = scenarioQuestionRepository.findScenarioQuestionsByScenarioIdAndCampaignIdAndCompanySiteIdAndStatusOrderByOrderIndex(scenarioId, campaignId, companySiteId, (short)1);
resultDTO.setData(lst); resultDTO.setData(lst);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS); resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
...@@ -59,12 +66,39 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService { ...@@ -59,12 +66,39 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO add(ScenarioQuestionDTO scenarioQuestionDTO) { public ResultDTO add(ScenarioQuestionDTO scenarioQuestionDTO) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
List<ScenarioAnswerDTO> lstAnswers = new ArrayList<>();
List<ScenarioAnswer> lstAnswersToInsert = new ArrayList<>();
try { try {
ScenarioQuestion scenarioQuestion = modelMapper.map(scenarioQuestionDTO, ScenarioQuestion.class); ScenarioQuestion scenarioQuestion = modelMapper.map(scenarioQuestionDTO, ScenarioQuestion.class);
scenarioQuestion.setCreateTime(new Date()); scenarioQuestion.setCreateTime(new Date());
scenarioQuestion.setStatus((short) 1); scenarioQuestion.setStatus((short) 1);
scenarioQuestionRepository.save(scenarioQuestion); scenarioQuestionRepository.save(scenarioQuestion);
if (scenarioQuestionDTO.getLstAnswers().size() > 0) {
lstAnswers = scenarioQuestionDTO.getLstAnswers();
lstAnswers.forEach(item -> {
item.setCode(scenarioQuestion.getScenarioQuestionId() + "_" + item.getOrderIndex());
item.setScenarioQuestionId(scenarioQuestion.getScenarioQuestionId());
item.setCreateTime(new Date());
item.setStatus((short) 1);
ScenarioAnswer answer = modelMapper.map(item, ScenarioAnswer.class);
lstAnswersToInsert.add(answer);
});
scenarioAnswerRepository.saveAll(lstAnswersToInsert);
CampaignLog campaignLogAnswer = new CampaignLog();
campaignLogAnswer.setCompanySiteId(scenarioQuestion.getCompanySiteId());
campaignLogAnswer.setCreateTime(new Date());
campaignLogAnswer.setAgentId(null);
campaignLogAnswer.setTableName("SCENARIO_ANSWER");
campaignLogAnswer.setColumnName(null);
campaignLogAnswer.setPreValue(null);
campaignLogAnswer.setPostValue(null);
campaignLogAnswer.setDescription("Them moi cau tra loi rieng le");
campaignLogAnswer.setCampaignId(scenarioQuestion.getCampaignId());
campaignLogAnswer.setCustomerId(scenarioQuestion.getScenarioQuestionId());
campaignLogRepository.save(campaignLogAnswer);
}
CampaignLog campaignLog = new CampaignLog(); CampaignLog campaignLog = new CampaignLog();
campaignLog.setCompanySiteId(scenarioQuestion.getCompanySiteId()); campaignLog.setCompanySiteId(scenarioQuestion.getCompanySiteId());
campaignLog.setCreateTime(new Date()); campaignLog.setCreateTime(new Date());
...@@ -109,4 +143,5 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService { ...@@ -109,4 +143,5 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
} }
return null; return null;
} }
} }
...@@ -3,6 +3,7 @@ package com.viettel.campaign.web.dto; ...@@ -3,6 +3,7 @@ package com.viettel.campaign.web.dto;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.io.Serializable;
import java.util.Date; import java.util.Date;
/** /**
...@@ -11,7 +12,7 @@ import java.util.Date; ...@@ -11,7 +12,7 @@ import java.util.Date;
@Getter @Getter
@Setter @Setter
public class ScenarioAnswerDTO { public class ScenarioAnswerDTO implements Serializable {
public Long scenarioAnswerId; public Long scenarioAnswerId;
public Long companySiteId; public Long companySiteId;
public Long scenarioQuestionId; public Long scenarioQuestionId;
......
...@@ -3,7 +3,9 @@ package com.viettel.campaign.web.dto; ...@@ -3,7 +3,9 @@ package com.viettel.campaign.web.dto;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
...@@ -11,7 +13,7 @@ import java.util.Date; ...@@ -11,7 +13,7 @@ import java.util.Date;
@Getter @Getter
@Setter @Setter
public class ScenarioQuestionDTO { public class ScenarioQuestionDTO implements Serializable {
private Long scenarioQuestionId; private Long scenarioQuestionId;
private Long companySiteId; private Long companySiteId;
private Long campaignId; private Long campaignId;
...@@ -26,4 +28,5 @@ public class ScenarioQuestionDTO { ...@@ -26,4 +28,5 @@ public class ScenarioQuestionDTO {
private Short isRequire; private Short isRequire;
private Short isDefault; private Short isDefault;
private Short answerIndex; private Short answerIndex;
private List<ScenarioAnswerDTO> lstAnswers;
} }
package com.viettel.campaign.web.rest; package com.viettel.campaign.web.rest;
import org.springframework.web.bind.annotation.CrossOrigin; import com.viettel.campaign.service.ScenarioAnswerService;
import org.springframework.web.bind.annotation.RequestMapping; import com.viettel.campaign.web.dto.ResultDTO;
import org.springframework.web.bind.annotation.RestController; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
...@@ -12,4 +15,19 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -12,4 +15,19 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/ipcc/campaign/scenario-answer") @RequestMapping("/ipcc/campaign/scenario-answer")
@CrossOrigin @CrossOrigin
public class ScenarioAnswerController { public class ScenarioAnswerController {
@Autowired
ScenarioAnswerService scenarioAnswerService;
@RequestMapping(value = "/findByScenarioQuestionCompany", method= RequestMethod.GET)
public ResponseEntity<ResultDTO> findByScenarioQuestionCampaignCompany(@RequestParam Long scenarioQuestionId,
@RequestParam Long companySiteId) {
ResultDTO resultDTO = scenarioAnswerService.findByScenarioQuestionCompany(scenarioQuestionId, companySiteId);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
@RequestMapping(value = "/get-max-orderId", method = RequestMethod.GET)
public Long getMaxOrderId(@RequestParam Long scenarioQuestionId, @RequestParam Long companySiteId)
{
return scenarioAnswerService.getMaxAnswerOrderId(scenarioQuestionId, companySiteId);
}
} }
...@@ -43,4 +43,5 @@ public class ScenarioQuestionController { ...@@ -43,4 +43,5 @@ public class ScenarioQuestionController {
public Integer countDuplicateQuestionCode(@RequestParam String code, @RequestParam Long scenarioId, @RequestParam Long campaignId, @RequestParam Long companySiteId) { public Integer countDuplicateQuestionCode(@RequestParam String code, @RequestParam Long scenarioId, @RequestParam Long campaignId, @RequestParam Long companySiteId) {
return scenarioQuestionService.countDuplicateQuestionCode(code, scenarioId, campaignId, companySiteId); return scenarioQuestionService.countDuplicateQuestionCode(code, scenarioId, campaignId, companySiteId);
} }
} }
...@@ -3,18 +3,18 @@ server: ...@@ -3,18 +3,18 @@ server:
spring: spring:
application: application:
name: campaign name: campaign
datasource: # datasource:
driver-class-name: oracle.jdbc.driver.OracleDriver # driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@10.60.157.135:1521:vt # url: jdbc:oracle:thin:@10.60.157.135:1521:vt
username: CCMS_FULL # username: CCMS_FULL
password: CCMS_FULL#123 # password: CCMS_FULL#123
max_pool_size: 32 # max_pool_size: 32
datasource2: # datasource2:
driver-class-name: oracle.jdbc.driver.OracleDriver # driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@10.60.157.135:1521:vt # url: jdbc:oracle:thin:@10.60.157.135:1521:vt
username: ACD_FULL # username: ACD_FULL
password: ACD_FULL#123 # password: ACD_FULL#123
max_pool_size: 32 # max_pool_size: 32
jpa: jpa:
database-platform: org.hibernate.dialect.Oracle10gDialect database-platform: org.hibernate.dialect.Oracle10gDialect
show-sql: true show-sql: true
...@@ -34,3 +34,22 @@ spring: ...@@ -34,3 +34,22 @@ spring:
# bootstrap-servers: 192.168.1.201:9092 # bootstrap-servers: 192.168.1.201:9092
# key-serializer: org.apache.kafka.common.serialization.StringSerializer # key-serializer: org.apache.kafka.common.serialization.StringSerializer
# value-serializer: org.apache.kafka.common.serialization.StringSerializer # value-serializer: org.apache.kafka.common.serialization.StringSerializer
datasource-property:
ccms-full:
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
acd-full:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@10.60.157.135:1521:vt
username: ACD_FULL
password: ACD_FULL#123
max_pool_size: 32
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