Commit ed8fc845 authored by ='s avatar =

Merge remote-tracking branch 'origin/master'

parents d42969f6 b7ca4979
No preview for this file type
log4j.rootLogger=INFO, R, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=[%t] %d{dd/MM/yyyy HH:mm:ss} %5p %c{1}: (%L) : %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.DatePattern='.'yyyy-MM-dd
log4j.appender.R.File=log/campaign.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%t] %d{dd/MM/yyyy HH:mm:ss} %5p %c{1}: (%L) : %m%n
\ No newline at end of file
[main] 19/08/2019 17:50:53 INFO RedisUtil: (38) : Start connect Redis: 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
[main] 19/08/2019 17:53:34 INFO RedisUtil: (38) : Start connect Redis: 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
......@@ -127,11 +127,6 @@
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>com.cronutils</groupId>
<artifactId>cron-utils</artifactId>
<version>9.0.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
......@@ -153,45 +148,8 @@
</dependencies>
<!--<dependencyManagement>-->
<!--<dependencies>-->
<!--<dependency>-->
<!--<groupId>org.springframework.cloud</groupId>-->
<!--<artifactId>spring-cloud-dependencies</artifactId>-->
<!--<version>${spring-cloud.version}</version>-->
<!--<type>pom</type>-->
<!--<scope>import</scope>-->
<!--</dependency>-->
<!--</dependencies>-->
<!--</dependencyManagement>-->
<build>
<plugins>
<!--<plugin>-->
<!--<groupId>org.asciidoctor</groupId>-->
<!--<artifactId>asciidoctor-maven-plugin</artifactId>-->
<!--<version>1.5.3</version>-->
<!--<executions>-->
<!--<execution>-->
<!--<id>generate-docs</id>-->
<!--<phase>prepare-package</phase>-->
<!--<goals>-->
<!--<goal>process-asciidoc</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<backend>html</backend>-->
<!--<doctype>book</doctype>-->
<!--</configuration>-->
<!--</execution>-->
<!--</executions>-->
<!--<dependencies>-->
<!--<dependency>-->
<!--<groupId>org.springframework.restdocs</groupId>-->
<!--<artifactId>spring-restdocs-asciidoctor</artifactId>-->
<!--<version>${spring-restdocs.version}</version>-->
<!--</dependency>-->
<!--</dependencies>-->
<!--</plugin>-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
......
package com.viettel.campaign.config;
//import com.viettel.campaign.job.CampaignJob;
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;
import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.TriggerContext;
import org.springframework.scheduling.annotation.EnableScheduling;
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;
......
......@@ -31,27 +31,27 @@ public class CorsFilter implements Filter {
HttpServletRequest request = (HttpServletRequest) req;
chain.doFilter(req, resp);
// if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
// chain.doFilter(req, resp);
// return;
// }
// if ("/".equals(request.getRequestURI())) {
// chain.doFilter(req, resp);
// return;
// }
// String xAuthToken = request.getHeader("X-Auth-Token");
// if (xAuthToken == null || "".equals(xAuthToken)) {
// response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is null.");
// return;
// }
// Object obj = RedisUtil.getInstance().get(xAuthToken);
// if (obj instanceof UserSession) {
// chain.doFilter(req, resp);
// } else {
// response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is invalid.");
// }
// chain.doFilter(req, resp);
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
chain.doFilter(req, resp);
return;
}
if ("/".equals(request.getRequestURI())) {
chain.doFilter(req, resp);
return;
}
String xAuthToken = request.getHeader("X-Auth-Token");
if (xAuthToken == null || "".equals(xAuthToken)) {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is null.");
return;
}
Object obj = RedisUtil.getInstance().get(xAuthToken);
if (obj instanceof UserSession) {
chain.doFilter(req, resp);
} else {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is invalid.");
}
}
@Override
......
......@@ -16,7 +16,7 @@ import java.util.List;
@Repository
public interface ScenarioAnswerRepository extends JpaRepository<ScenarioAnswer, Long> {
List<ScenarioAnswer> findByScenarioQuestionIdAndCompanySiteIdAndStatus(Long scenarioQuestionId, Long companySiteId, Short status);
List<ScenarioAnswer> findByScenarioQuestionIdAndCompanySiteIdAndStatusOrderByOrderIndex(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);
......
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.web.dto.ScenarioQuestionDTO;
/**
* @author anhvd_itsol
*/
public interface ScenarioQuestionRepositoryCustom {
Integer countDuplicateQuestionCode(ScenarioQuestionDTO questionDTO);
}
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.repository.ccms_full.ScenarioQuestionRepositoryCustom;
import com.viettel.campaign.utils.HibernateUtil;
import com.viettel.campaign.web.dto.ScenarioQuestionDTO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.util.List;
/**
* @author anhvd_itsol
*/
@Repository
public class ScenarioQuestionRepositoryImpl implements ScenarioQuestionRepositoryCustom {
private static final Logger logger = LogManager.getLogger(ScenarioQuestionRepositoryImpl.class);
@Override
public Integer countDuplicateQuestionCode(ScenarioQuestionDTO questionDTO) {
logger.info("Start search duplicate quest code row::");
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
Integer count = null;
try {
StringBuilder sb = new StringBuilder();
//SELECT COUNT(1) FROM ScenarioQuestion WHERE code = :code AND scenarioId = :scenarioId AND campaignId = :campaignId AND companySiteId = :companySiteId AND status = 1"
sb.append("SELECT COUNT(1) FROM SCENARIO_QUESTION WHERE 1 = 1 AND STATUS = 1 ");
if (questionDTO.getScenarioQuestionId() != null) {
sb.append(" AND SCENARIO_QUESTION_ID <> :p_question_id ");
}
if (questionDTO.getCode() != null) {
sb.append(" AND CODE = :p_code ");
}
if (questionDTO.getCampaignId() != null) {
sb.append(" AND CAMPAIGN_ID = :p_campaign_id");
}
if (questionDTO.getCompanySiteId() != null) {
sb.append(" AND COMPANY_SITE_ID = :p_site_id");
}
SQLQuery query = session.createSQLQuery(sb.toString());
if (questionDTO.getScenarioQuestionId() != null) {
query.setParameter("p_question_id", questionDTO.getScenarioQuestionId());
}
if (questionDTO.getCode() != null) {
query.setParameter("p_code", questionDTO.getCode());
}
if (questionDTO.getCampaignId() != null) {
query.setParameter("p_campaign_id", questionDTO.getCampaignId());
}
if (questionDTO.getCompanySiteId() != null) {
query.setParameter("p_site_id", questionDTO.getCompanySiteId());
}
final List<BigDecimal> obj = query.list();
for (BigDecimal i : obj) {
if (i != null) {
count = i.intValue();
}
}
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
return count;
}
}
......@@ -14,7 +14,10 @@ public interface ScenarioQuestionService {
Long getMaxOrderId(Long scenarioId, Long campaignId, Long companySiteId);
Integer countDuplicateQuestionCode(String code, Long scenarioId, Long campaignId, Long companySiteId);
Integer countDuplicateQuestionCode(ScenarioQuestionDTO questionDTO);
ResultDTO delete(ScenarioQuestionDTO scenarioQuestionDTO);
ResultDTO update(ScenarioQuestionDTO scenarioQuestionDTO);
}
......@@ -43,7 +43,7 @@ public class ScenarioAnswerServiceImpl implements ScenarioAnswerService {
public ResultDTO findByScenarioQuestionCompany(Long scenarioQuestionId, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO();
try {
List<ScenarioAnswer> lst = scenarioAnswerRepository.findByScenarioQuestionIdAndCompanySiteIdAndStatus(scenarioQuestionId, companySiteId, (short) 1);
List<ScenarioAnswer> lst = scenarioAnswerRepository.findByScenarioQuestionIdAndCompanySiteIdAndStatusOrderByOrderIndex(scenarioQuestionId, companySiteId, (short) 1);
resultDTO.setData(lst);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
......
......@@ -2,10 +2,7 @@ package com.viettel.campaign.service.impl;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.*;
import com.viettel.campaign.repository.ccms_full.CampaignLogRepository;
import com.viettel.campaign.repository.ccms_full.CampaignRepository;
import com.viettel.campaign.repository.ccms_full.ScenarioAnswerRepository;
import com.viettel.campaign.repository.ccms_full.ScenarioQuestionRepository;
import com.viettel.campaign.repository.ccms_full.*;
import com.viettel.campaign.service.ScenarioQuestionService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.ResultDTO;
......@@ -46,6 +43,9 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
@Autowired
ModelMapper modelMapper;
@Autowired
ScenarioQuestionRepositoryCustom questionRepositoryCustom;
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO findByScenarioIdAndCampaignIdAndCompanySiteId(Long scenarioId, Long campaignId, Long companySiteId) {
......@@ -71,6 +71,7 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
List<ScenarioAnswer> lstAnswersToInsert = new ArrayList<>();
try {
ScenarioQuestion scenarioQuestion = modelMapper.map(scenarioQuestionDTO, ScenarioQuestion.class);
scenarioQuestion.setCreateTime(new Date());
scenarioQuestion.setStatus((short) 1);
scenarioQuestionRepository.save(scenarioQuestion);
......@@ -85,19 +86,23 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
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);
for (ScenarioAnswer a : 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.setCampaignId(scenarioQuestion.getCampaignId());
campaignLogAnswer.setCustomerId(a.getScenarioAnswerId());
campaignLogAnswer.setDescription("Them moi cau tra loi");
campaignLogRepository.save(campaignLogAnswer);
}
}
CampaignLog campaignLog = new CampaignLog();
......@@ -128,8 +133,9 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
public Long getMaxOrderId(Long scenarioId, Long campaignId, Long companySiteId) {
try {
Long index = scenarioQuestionRepository.getMaxOrderId(scenarioId, campaignId, companySiteId);
if(index == null) return 0L; else return index;
}catch (Exception ex) {
if (index == null) return 0L;
else return index;
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
return null;
......@@ -137,9 +143,9 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public Integer countDuplicateQuestionCode(String code, Long scenarioId, Long campaignId, Long companySiteId) {
public Integer countDuplicateQuestionCode(ScenarioQuestionDTO questionDTO) {
try {
return scenarioQuestionRepository.countDuplicateQuestionCode(code, scenarioId, campaignId, companySiteId);
return questionRepositoryCustom.countDuplicateQuestionCode(questionDTO);
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
......@@ -193,9 +199,9 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
campaignLog.setCustomerId(scenarioQuestionDTO.getScenarioQuestionId());
campaignLogRepository.save(campaignLog);
List<ScenarioAnswer> lstAnswer = scenarioAnswerRepository.findByScenarioQuestionIdAndCompanySiteIdAndStatus(scenarioQuestion.getScenarioQuestionId(),
List<ScenarioAnswer> lstAnswer = scenarioAnswerRepository.findByScenarioQuestionIdAndCompanySiteIdAndStatusOrderByOrderIndex(scenarioQuestion.getScenarioQuestionId(),
scenarioQuestion.getCompanySiteId(), (short) 1);
if(lstAnswer.size() > 0) {
if (lstAnswer.size() > 0) {
lstAnswer.forEach(answer -> {
answer.setStatus((short) 0);
answer.setDeleteTime(new Date());
......@@ -222,4 +228,87 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
return resultDTO;
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO update(ScenarioQuestionDTO scenarioQuestionDTO) {
ResultDTO resultDTO = new ResultDTO();
List<ScenarioAnswerDTO> lstAnswers = new ArrayList<>();
List<ScenarioAnswer> lstAnswersToInsert = new ArrayList<>();
if (scenarioQuestionDTO.getScenarioQuestionId() == null) {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
return resultDTO;
}
try {
//ScenarioQuestion scenarioQuestion = modelMapper.map(scenarioQuestionDTO, ScenarioQuestion.class);
ScenarioQuestion questionTmp = scenarioQuestionRepository.findScenarioQuestionByScenarioQuestionId(scenarioQuestionDTO.getScenarioQuestionId());
if (questionTmp != null) {
//questionTmp.setCode(scenarioQuestionDTO.getCode());
//questionTmp.setOrderIndex(scenarioQuestionDTO.getOrderIndex());
// questionTmp.setIsDefault(scenarioQuestionDTO.getIsDefault());
// questionTmp.setIsRequire(scenarioQuestionDTO.getIsRequire());
// questionTmp.setQuestion(scenarioQuestionDTO.getQuestion());
// questionTmp.setType(scenarioQuestionDTO.getType());
scenarioQuestionRepository.save(questionTmp);
CampaignLog campaignLog = new CampaignLog();
campaignLog.setCompanySiteId(questionTmp.getCompanySiteId());
campaignLog.setCreateTime(new Date());
campaignLog.setAgentId(null);
campaignLog.setTableName("SCENARIO_QUESTION");
campaignLog.setColumnName(null);
campaignLog.setPreValue(null);
campaignLog.setPostValue(null);
campaignLog.setDescription("Chinh sua cau hoi rieng le");
campaignLog.setCampaignId(questionTmp.getCampaignId());
campaignLog.setCustomerId(questionTmp.getScenarioQuestionId());
campaignLogRepository.save(campaignLog);
// if (scenarioQuestionDTO.getLstAnswers().size() > 0) {
// lstAnswers = scenarioQuestionDTO.getLstAnswers();
//
// lstAnswers.forEach(item -> {
// 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.setCampaignId(scenarioQuestion.getCampaignId());
//
// if (item.getScenarioAnswerId() != null) {
// ScenarioAnswer answer = modelMapper.map(item, ScenarioAnswer.class);
// scenarioAnswerRepository.save(answer);
// campaignLogAnswer.setCustomerId(answer.getScenarioAnswerId());
// campaignLogAnswer.setDescription("Chinh sua cau tra loi");
// campaignLogRepository.save(campaignLogAnswer);
// } else {
// 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);
// scenarioAnswerRepository.save(answer);
// campaignLogAnswer.setCustomerId(answer.getScenarioAnswerId());
// campaignLogAnswer.setDescription("Them moi cau tra loi");
// campaignLogRepository.save(campaignLogAnswer);
// }
// });
// }
}
resultDTO.setData(questionTmp);
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;
}
}
......@@ -79,6 +79,7 @@ public class ScenarioServiceImpl implements ScenarioService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO sortQuestionAndAnswer(ScenarioDTO scenarioDTO) {
ResultDTO resultDTO = new ResultDTO();
try {
......
package com.viettel.campaign.utils;
import com.cronutils.model.definition.CronDefinition;
import com.cronutils.model.definition.CronDefinitionBuilder;
import com.cronutils.model.time.ExecutionTime;
import com.cronutils.parser.CronParser;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.quartz.CronExpression;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.Optional;
import java.util.TimeZone;
import java.util.concurrent.atomic.AtomicReference;
import static com.cronutils.model.CronType.QUARTZ;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
......@@ -29,11 +20,24 @@ import static java.util.concurrent.TimeUnit.NANOSECONDS;
@Slf4j
public final class DateTimeUtil {
public static final long DAY_IN_MILLIS = 86400000L;
public static interface DateTimeProvider { long now(); }
public static interface DateTimeProvider {
long now();
}
private static final AtomicReference<DateTimeProvider> PROVIDER = new AtomicReference<DateTimeProvider>();
public static final DateTimeProvider getProvider() { return PROVIDER.get(); }
public static final DateTimeProvider getProvider() {
return PROVIDER.get();
}
static {
PROVIDER.set(new DateTimeProvider() { @Override public long now() { return System.currentTimeMillis(); } });
PROVIDER.set(new DateTimeProvider() {
@Override
public long now() {
return System.currentTimeMillis();
}
});
}
public static Date currentTime() {
......@@ -47,7 +51,8 @@ public final class DateTimeUtil {
public static final Date date(final long millis) {
final int offset = getTimeZoneOffset(millis);
long t = millis - ((t = (millis + offset) % DAY_IN_MILLIS) < 0 ? DAY_IN_MILLIS + t : t);
t = t + (offset - getTimeZoneOffset(t)); return new Date(t);
t = t + (offset - getTimeZoneOffset(t));
return new Date(t);
}
public static int getTimeZoneOffset(long millis) {
......@@ -74,8 +79,8 @@ public final class DateTimeUtil {
}
public static String format(String pattern, Date date, String defaultValue) {
if(date == null) return defaultValue;
return format(pattern ,date.getTime());
if (date == null) return defaultValue;
return format(pattern, date.getTime());
}
/**
......@@ -84,6 +89,7 @@ public final class DateTimeUtil {
public static boolean isValid(final long millis) {
return millis > 0L;
}
/**
*
*/
......@@ -99,9 +105,9 @@ public final class DateTimeUtil {
*
*/
public static boolean isRun(String cron, Date lastCheck){
public static boolean isRun(String cron, Date lastCheck) {
boolean isOk = false;
String format="dd-MMM-YYYY hh:mm:ss";
String format = "dd-MMM-YYYY hh:mm:ss";
// String cronExpression="* * 12 ? * FRI *";
SimpleDateFormat sdf = new SimpleDateFormat(format);
CronExpression expression = null;
......@@ -110,14 +116,14 @@ public final class DateTimeUtil {
} catch (ParseException e) {
e.printStackTrace();
}
Date currentDate = new Date();
Date currentDate = new Date();
assert expression != null;
Date lastDate = expression.getNextValidTimeAfter(lastCheck);
long interval = lastDate.getTime() - currentDate.getTime();
if(interval <= 0){
long interval = lastDate.getTime() - currentDate.getTime();
if (interval <= 0) {
isOk = true;
}
return isOk;
return isOk;
}
}
......@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/ipcc/campaign/scenario-question")
@CrossOrigin
@CrossOrigin("*")
public class ScenarioQuestionController {
@Autowired
ScenarioQuestionService scenarioQuestionService;
......@@ -39,8 +39,21 @@ 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);
@RequestMapping(value = "/count-duplicate-question-code", method = RequestMethod.POST)
public Integer countDuplicateQuestionCode(@RequestBody ScenarioQuestionDTO questionDTO) {
return scenarioQuestionService.countDuplicateQuestionCode(questionDTO);
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
public ResponseEntity<ResultDTO> deleteQuestion(@RequestBody ScenarioQuestionDTO scenarioQuestionDTO) {
ResultDTO resultDTO = scenarioQuestionService.delete(scenarioQuestionDTO);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
@RequestMapping(value="/update", method = RequestMethod.PUT)
public ResponseEntity<ResultDTO> update(@RequestBody ScenarioQuestionDTO scenarioQuestionDTO) {
ResultDTO resultDTO = scenarioQuestionService.update(scenarioQuestionDTO);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
}
package com.viettel.econtact;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ServiceCampaignApplicationTests {
@Test
public void contextLoads() {
}
}
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