Commit cb391bbf authored by Tu Bach's avatar Tu Bach
parents 6b181aaf df10e191
......@@ -3,3 +3,4 @@ target/
logs/
out/
/campaign.iml
/lib
#redis address, port
redis_address=10.60.156.82:8011,10.60.156.82:8012,10.60.156.82:8013,10.60.156.82:8014,10.60.156.82:8015,10.60.156.82:8016
redis_timeout=3000
#end
\ No newline at end of file
......@@ -13,6 +13,7 @@
<version>0.0.1-SNAPSHOT</version>
<name>service-campaign</name>
<description>Campaign service for Spring Boot</description>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
......@@ -98,8 +99,8 @@
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ojdbc7.jar</systemPath>
<!-- <scope>system</scope>-->
<!-- <systemPath>${project.basedir}/lib/ojdbc7.jar</systemPath>-->
<version>1.0</version>
</dependency>
<dependency>
......@@ -280,5 +281,14 @@
</plugin>
</plugins>
</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>
package com.viettel.campaign;
import com.viettel.campaign.config.DataSourceProperties;
import com.viettel.campaign.utils.Config;
import com.viettel.campaign.utils.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication(scanBasePackages={"com.viettel.campaign"})
@ComponentScan({"com.viettel"})
public class ServiceCampaignApplication {
@Autowired
DataSourceProperties dataSourceProperties;
public static void main(String[] args) {
SpringApplication.run(ServiceCampaignApplication.class, args);
......
......@@ -2,6 +2,7 @@ package com.viettel.campaign.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.*;
import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
......@@ -11,6 +12,7 @@ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.sql.DataSource;
import java.util.HashMap;
......@@ -29,15 +31,30 @@ public class ACDFullDatasourceConfig {
@Autowired
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(){
OracleDataSource r = new OracleDataSource();
r.setDriverClassName(env.getProperty("spring.datasource2.driver-class-name"));
r.setDriverClassName(driverClassName);
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"));
r.setJdbcUrl(url);
r.setMaximumPoolSize(maxPoolSize);
r.setPassword(password);
r.setUsername(username);
return r;
}
......@@ -69,8 +86,8 @@ public class ACDFullDatasourceConfig {
}
@Bean(name = DataSourceQualify.NAMED_JDBC_PARAMETER_TEMPLATE_ACD_FULL)
@DependsOn("datasource2.datasource")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource2.datasource") DataSource abcDataSource) {
@DependsOn("datasource.datasource2")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource.datasource2") DataSource abcDataSource) {
return new NamedParameterJdbcTemplate(abcDataSource);
}
}
......
......@@ -2,6 +2,7 @@ package com.viettel.campaign.config;
import org.springframework.beans.factory.annotation.Autowired;
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.Configuration;
import org.springframework.context.annotation.DependsOn;
......@@ -32,15 +33,30 @@ public class CCMSFullDatasourceConfig {
@Autowired
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(){
OracleDataSource r = new OracleDataSource();
r.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
r.setDriverClassName(driverClassName);
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"));
r.setJdbcUrl(url);
r.setMaximumPoolSize(maxPoolSize);
r.setPassword(password);
r.setUsername(username);
return r;
}
......@@ -72,8 +88,8 @@ public class CCMSFullDatasourceConfig {
}
@Bean(name = DataSourceQualify.NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL)
@DependsOn("datasource1.datasource")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource1.datasource") DataSource abcDataSource) {
@DependsOn("datasource.datasource1")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("datasource.datasource1") DataSource 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;
}
}
}
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
import org.springframework.stereotype.Component;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @author anhvd_itsol
*/
@Entity
@Table(name = "CAMPAIGN_LOG")
@Getter
@Setter
public class CampaignLog implements Serializable {
@Id
@NotNull
@GeneratedValue(generator = "CAMPAIGN_LOG_SEQ")
@SequenceGenerator(name = "CAMPAIGN_LOG_SEQ", sequenceName = "CAMPAIGN_LOG_SEQ", allocationSize = 1)
@Basic(optional = false)
@Column(name = "CAMPAIGN_LOG_ID")
private Long campaignLogId;
@Column(name = "COMPANY_SITE_ID")
private Long companySiteId;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATE_TIME")
private Date createTime;
@Column(name = "AGENT_ID")
private Long agentId;
@Column(name = "TABLE_NAME")
private String tableName;
@Column(name = "COLUMN_NAME")
private String columnName;
@Column(name = "PRE_VALUE")
private String preValue;
@Column(name = "POST_VALUE")
private String postValue;
@Column(name = "DESCRIPTION")
private String description;
@Column(name = "CAMPAIGN_ID")
private Long campaignId;
@Column(name = "CUSTOMER_ID")
private Long customerId;
}
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.CampaignLog;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* @author anhvd_itsol
*/
@Repository
public interface CampaignLogRepository extends JpaRepository<CampaignLog, Long> {
}
......@@ -2,8 +2,12 @@ package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.ScenarioAnswer;
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.util.List;
/**
* @author anhvd_itsol
*/
......@@ -11,4 +15,9 @@ import org.springframework.stereotype.Repository;
@Repository
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,8 +14,11 @@ import java.util.List;
@Repository
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")
Long getMaxOrderId(@Param("scenarioId") Long scenarioId, @Param("campaignId") Long campaignId, @Param("companySiteId") Long companySiteId);
@Query(value = "SELECT COUNT(1) FROM ScenarioQuestion WHERE code = :code AND scenarioId = :scenarioId AND campaignId = :campaignId AND companySiteId = :companySiteId AND status = 1")
Integer countDuplicateQuestionCode(@Param("code") String code, @Param("scenarioId") Long scenarioId, @Param("campaignId") Long campaignId, @Param("companySiteId") Long companySiteId);
}
package com.viettel.campaign.service;
import com.viettel.campaign.service.impl.CampaignLogServiceImpl;
/**
* @author anhvd_itsol
*/
public interface CampaignLogService {
}
package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.ResultDTO;
/**
* @author anhvd_itsol
*/
public interface ScenarioAnswerService {
ResultDTO findByScenarioQuestionCompany(Long scenarioQuestionId, Long companySiteId);
Long getMaxAnswerOrderId(Long scenarioQuestionId, Long companySiteId);
}
......@@ -13,4 +13,6 @@ public interface ScenarioQuestionService {
ResultDTO add(ScenarioQuestionDTO scenarioQuestionDTO);
Long getMaxOrderId(Long scenarioId, Long campaignId, Long companySiteId);
Integer countDuplicateQuestionCode(String code, Long scenarioId, Long campaignId, Long companySiteId);
}
package com.viettel.campaign.service.impl;
import com.viettel.campaign.service.CampaignLogService;
import org.springframework.stereotype.Service;
/**
* @author anhvd_itsol
*/
@Service
public class CampaignLogServiceImpl implements CampaignLogService {
}
......@@ -15,7 +15,6 @@ import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.utils.WorkBookBuilder;
import com.viettel.campaign.web.dto.*;
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.Logger;
import org.apache.poi.ss.usermodel.*;
......
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.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 java.util.List;
/**
* @author anhvd_itsol
*/
@Service
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;
}
}
package com.viettel.campaign.service.impl;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.CampaignLog;
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.repository.ccms_full.CampaignLogRepository;
import com.viettel.campaign.repository.ccms_full.ScenarioAnswerRepository;
import com.viettel.campaign.repository.ccms_full.ScenarioQuestionRepository;
import com.viettel.campaign.service.ScenarioQuestionService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.ScenarioAnswerDTO;
import com.viettel.campaign.web.dto.ScenarioQuestionDTO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -15,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
......@@ -22,12 +29,19 @@ import java.util.List;
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
private static final Logger logger = LogManager.getLogger(ScenarioQuestionServiceImpl.class);
@Autowired
ScenarioQuestionRepository scenarioQuestionRepository;
@Autowired
CampaignLogRepository campaignLogRepository;
@Autowired
ScenarioAnswerRepository scenarioAnswerRepository;
@Autowired
ModelMapper modelMapper;
......@@ -36,7 +50,7 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
public ResultDTO findByScenarioIdAndCampaignIdAndCompanySiteId(Long scenarioId, Long campaignId, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO();
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.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
......@@ -52,9 +66,51 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO add(ScenarioQuestionDTO scenarioQuestionDTO) {
ResultDTO resultDTO = new ResultDTO();
List<ScenarioAnswerDTO> lstAnswers = new ArrayList<>();
List<ScenarioAnswer> lstAnswersToInsert = new ArrayList<>();
try {
ScenarioQuestion scenarioQuestion = modelMapper.map(scenarioQuestionDTO, ScenarioQuestion.class);
scenarioQuestion.setCreateTime(new Date());
scenarioQuestion.setStatus((short) 1);
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.setCompanySiteId(scenarioQuestion.getCompanySiteId());
campaignLog.setCreateTime(new Date());
campaignLog.setAgentId(null);
campaignLog.setTableName("SCENARIO_QUESTION");
campaignLog.setColumnName(null);
campaignLog.setPreValue(null);
campaignLog.setPostValue(null);
campaignLog.setDescription("Them moi cau hoi rieng le");
campaignLog.setCampaignId(scenarioQuestion.getCampaignId());
campaignLog.setCustomerId(scenarioQuestion.getScenarioQuestionId());
campaignLogRepository.save(campaignLog);
resultDTO.setData(scenarioQuestion);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
......@@ -63,7 +119,7 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
return null;
return resultDTO;
}
@Override
......@@ -76,4 +132,16 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
}
return null;
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public Integer countDuplicateQuestionCode(String code, Long scenarioId, Long campaignId, Long companySiteId) {
try {
return scenarioQuestionRepository.countDuplicateQuestionCode(code, scenarioId, campaignId, companySiteId);
}catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
return null;
}
}
package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
/**
* @author anhvd_itsol
*/
@Getter
@Setter
public class CampaignLogDTO {
private Long campaignLogId;
private Long companySiteId;
private Date createTime;
private Long agentId;
private String tableName;
private String columnName;
private String preValue;
private String posValue;
private String description;
private Long campaignId;
private Long customerId;
}
......@@ -3,6 +3,7 @@ package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
/**
......@@ -11,7 +12,7 @@ import java.util.Date;
@Getter
@Setter
public class ScenarioAnswerDTO {
public class ScenarioAnswerDTO implements Serializable {
public Long scenarioAnswerId;
public Long companySiteId;
public Long scenarioQuestionId;
......
......@@ -3,7 +3,9 @@ package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @author anhvd_itsol
......@@ -11,7 +13,7 @@ import java.util.Date;
@Getter
@Setter
public class ScenarioQuestionDTO {
public class ScenarioQuestionDTO implements Serializable {
private Long scenarioQuestionId;
private Long companySiteId;
private Long campaignId;
......@@ -26,4 +28,5 @@ public class ScenarioQuestionDTO {
private Short isRequire;
private Short isDefault;
private Short answerIndex;
private List<ScenarioAnswerDTO> lstAnswers;
}
package com.viettel.campaign.web.rest;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.viettel.campaign.service.ScenarioAnswerService;
import com.viettel.campaign.web.dto.ResultDTO;
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
......@@ -12,4 +15,19 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/ipcc/campaign/scenario-answer")
@CrossOrigin
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);
}
}
......@@ -28,7 +28,7 @@ public class ScenarioQuestionController {
}
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<ResultDTO> add(ScenarioQuestionDTO scenarioQuestionDTO) {
public ResponseEntity<ResultDTO> add(@RequestBody ScenarioQuestionDTO scenarioQuestionDTO) {
ResultDTO resultDTO = scenarioQuestionService.add(scenarioQuestionDTO);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
......@@ -38,4 +38,10 @@ public class ScenarioQuestionController {
{
return scenarioQuestionService.getMaxOrderId(scenarioId, campaignId, companySiteId);
}
@RequestMapping(value = "/count-duplicate-question-code", method = RequestMethod.GET)
public Integer countDuplicateQuestionCode(@RequestParam String code, @RequestParam Long scenarioId, @RequestParam Long campaignId, @RequestParam Long companySiteId) {
return scenarioQuestionService.countDuplicateQuestionCode(code, scenarioId, campaignId, companySiteId);
}
}
......@@ -3,18 +3,18 @@ server:
spring:
application:
name: campaign
datasource:
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
datasource2:
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
# datasource:
# 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
# datasource2:
# 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
jpa:
database-platform: org.hibernate.dialect.Oracle10gDialect
show-sql: true
......@@ -34,3 +34,22 @@ spring:
# bootstrap-servers: 192.168.1.201:9092
# key-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