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

anhvd commit

parent 3be9c3d7
No preview for this file type
...@@ -25,7 +25,7 @@ public class CorsFilter implements Filter { ...@@ -25,7 +25,7 @@ public class CorsFilter implements Filter {
HttpServletResponse response = (HttpServletResponse) resp; HttpServletResponse response = (HttpServletResponse) resp;
response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Origin, Authorization, X-Requested-With, Content-Type, Accept, token1, X-Auth-Token"); response.setHeader("Access-Control-Allow-Headers", "Origin, Authorization, X-Requested-With, Content-Type, Accept, token1, X-Auth-Token");
......
...@@ -16,7 +16,7 @@ import java.util.List; ...@@ -16,7 +16,7 @@ import java.util.List;
@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); 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") @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); Long getMaxAnswerOrderId(@Param("scenarioQuestionId") Long scenarioQuestionId, @Param("companySiteId") Long companySiteId);
......
package com.viettel.campaign.repository.ccms_full; package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.web.dto.ScenarioQuestionDTO;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
*/ */
public interface ScenarioQuestionRepositoryCustom { public interface ScenarioQuestionRepositoryCustom {
Integer countDuplicateQuestionCode(ScenarioQuestionDTO questionDTO);
} }
package com.viettel.campaign.repository.ccms_full.impl; package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.repository.ccms_full.ScenarioQuestionRepositoryCustom; 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 org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.util.List;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
*/ */
@Repository @Repository
public class ScenarioQuestionRepositoryImpl implements ScenarioQuestionRepositoryCustom { 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 { ...@@ -14,7 +14,10 @@ public interface ScenarioQuestionService {
Long getMaxOrderId(Long scenarioId, Long campaignId, Long companySiteId); 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 delete(ScenarioQuestionDTO scenarioQuestionDTO);
ResultDTO update(ScenarioQuestionDTO scenarioQuestionDTO);
} }
...@@ -43,7 +43,7 @@ public class ScenarioAnswerServiceImpl implements ScenarioAnswerService { ...@@ -43,7 +43,7 @@ public class ScenarioAnswerServiceImpl implements ScenarioAnswerService {
public ResultDTO findByScenarioQuestionCompany(Long scenarioQuestionId, Long companySiteId) { public ResultDTO findByScenarioQuestionCompany(Long scenarioQuestionId, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
try { try {
List<ScenarioAnswer> lst = scenarioAnswerRepository.findByScenarioQuestionIdAndCompanySiteIdAndStatus(scenarioQuestionId, companySiteId, (short) 1); List<ScenarioAnswer> lst = scenarioAnswerRepository.findByScenarioQuestionIdAndCompanySiteIdAndStatusOrderByOrderIndex(scenarioQuestionId, 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);
......
...@@ -79,6 +79,7 @@ public class ScenarioServiceImpl implements ScenarioService { ...@@ -79,6 +79,7 @@ public class ScenarioServiceImpl implements ScenarioService {
} }
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO sortQuestionAndAnswer(ScenarioDTO scenarioDTO) { public ResultDTO sortQuestionAndAnswer(ScenarioDTO scenarioDTO) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
try { try {
......
...@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping("/ipcc/campaign/scenario-question") @RequestMapping("/ipcc/campaign/scenario-question")
@CrossOrigin @CrossOrigin("*")
public class ScenarioQuestionController { public class ScenarioQuestionController {
@Autowired @Autowired
ScenarioQuestionService scenarioQuestionService; ScenarioQuestionService scenarioQuestionService;
...@@ -39,8 +39,21 @@ public class ScenarioQuestionController { ...@@ -39,8 +39,21 @@ public class ScenarioQuestionController {
return scenarioQuestionService.getMaxOrderId(scenarioId, campaignId, companySiteId); return scenarioQuestionService.getMaxOrderId(scenarioId, campaignId, companySiteId);
} }
@RequestMapping(value = "/count-duplicate-question-code", method = RequestMethod.GET) @RequestMapping(value = "/count-duplicate-question-code", method = RequestMethod.POST)
public Integer countDuplicateQuestionCode(@RequestParam String code, @RequestParam Long scenarioId, @RequestParam Long campaignId, @RequestParam Long companySiteId) { public Integer countDuplicateQuestionCode(@RequestBody ScenarioQuestionDTO questionDTO) {
return scenarioQuestionService.countDuplicateQuestionCode(code, scenarioId, campaignId, companySiteId); 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);
}
} }
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