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

anhvd commit scenario classes

parent cb87a330
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @author anhvd_itsol
*/
@Entity
@Table(name = "SCENARIO_ANSWER")
@Getter
@Setter
public class ScenarioAnswer {
@Id
@NotNull
@GeneratedValue(generator = "SCENARIO_ANSWER_SEQ")
@SequenceGenerator(name = "SCENARIO_ANSWER_SEQ", sequenceName = "SCENARIO_ANSWER_SEQ", allocationSize = 1)
@Basic(optional = false)
@Column(name = "SCENARIO_ANSWER_ID")
private Long scenarioAnswerId;
@Column(name = "COMPANY_SITE_ID")
private Long companySiteId;
@Column(name = "SCENARIO_QUESTION_ID")
private Long scenarioQuestionId;
@Column(name = "CODE")
private String code;
@Column(name = "ANSWER")
private String answer;
@Column(name = "ORDER_INDEX")
private Integer orderIndex;
@Column(name = "HAS_INPUT")
private Short hasInput;
@Column(name = "STATUS")
private Short status;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATE_TIME")
private Date createTime;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "DELETE_TIME")
private Date deleteTime;
@Column(name = "MAPPING_QUESTION_ID")
private Long mappingQuestionId;
}
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.stereotype.Repository;
/**
* @author anhvd_itsol
*/
@Repository
public interface ScenarioAnswerRepository extends JpaRepository<ScenarioAnswer, Long> {
}
package com.viettel.campaign.repository.ccms_full;
/**
* @author anhvd_itsol
*/
public interface ScenarioAnswerRepositoryCustom {
}
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.ScenarioQuestion;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author anhvd_itsol
*/
@Repository
public interface ScenarioQuestionRepository extends JpaRepository<ScenarioQuestion, Long> {
List<ScenarioQuestion> findScenarioQuestionsByScenarioIdAndCampaignIdAndCompanySiteIdAndStatus(Long scenarioId, Long campaignId, Long companySiteId, Short status);
}
package com.viettel.campaign.repository.ccms_full;
/**
* @author anhvd_itsol
*/
public interface ScenarioQuestionRepositoryCustom {
}
package com.viettel.campaign.repository.ccms_full.impl;
/**
* @author anhvd_itsol
*/
public class ScenarioAnswerRepositoryImpl {
}
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.repository.ccms_full.ScenarioQuestionRepositoryCustom;
import org.springframework.stereotype.Repository;
/**
* @author anhvd_itsol
*/
@Repository
public class ScenarioQuestionRepositoryImpl implements ScenarioQuestionRepositoryCustom {
}
package com.viettel.campaign.service;
/**
* @author anhvd_itsol
*/
public interface ScenarioAnswerService {
}
package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.ScenarioQuestionDTO;
/**
* @author anhvd_itsol
*/
public interface ScenarioQuestionService {
ResultDTO findByScenarioIdAndCampaignIdAndCompanySiteId(Long scenarioId, Long campaignId, Long companySiteId);
ResultDTO add(ScenarioQuestionDTO scenarioQuestionDTO);
}
package com.viettel.campaign.service; package com.viettel.campaign.service;
import com.viettel.campaign.model.ccms_full.Scenario; import com.viettel.campaign.model.ccms_full.Scenario;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.ScenarioDTO;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
...@@ -8,4 +10,5 @@ import com.viettel.campaign.model.ccms_full.Scenario; ...@@ -8,4 +10,5 @@ import com.viettel.campaign.model.ccms_full.Scenario;
public interface ScenarioService { public interface ScenarioService {
Scenario findScenarioByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId); Scenario findScenarioByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId);
ResultDTO update(ScenarioDTO scenario);
} }
package com.viettel.campaign.service.impl;
import com.viettel.campaign.service.ScenarioAnswerService;
import org.springframework.stereotype.Service;
/**
* @author anhvd_itsol
*/
@Service
public class ScenarioAnswerServiceImpl implements ScenarioAnswerService {
}
package com.viettel.campaign.service.impl;
import com.viettel.campaign.model.ccms_full.Scenario;
import com.viettel.campaign.model.ccms_full.ScenarioQuestion;
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.ScenarioQuestionDTO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author anhvd_itsol
*/
@Service
public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
private static final Logger logger = LogManager.getLogger(ScenarioQuestionServiceImpl.class);
@Autowired
ScenarioQuestionRepository scenarioQuestionRepository;
@Autowired
ModelMapper modelMapper;
@Override
public ResultDTO findByScenarioIdAndCampaignIdAndCompanySiteId(Long scenarioId, Long campaignId, Long companySiteId) {
ResultDTO resultDTO = new ResultDTO();
try {
List<ScenarioQuestion> lst = scenarioQuestionRepository.findScenarioQuestionsByScenarioIdAndCampaignIdAndCompanySiteIdAndStatus(scenarioId, campaignId, 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 ResultDTO add(ScenarioQuestionDTO scenarioQuestionDTO) {
ResultDTO resultDTO = new ResultDTO();
try {
ScenarioQuestion scenarioQuestion = modelMapper.map(scenarioQuestionDTO, ScenarioQuestion.class);
scenarioQuestionRepository.save(scenarioQuestion);
resultDTO.setData(scenarioQuestion);
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 null;
}
}
...@@ -4,12 +4,19 @@ import com.viettel.campaign.config.DataSourceQualify; ...@@ -4,12 +4,19 @@ import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.Scenario; import com.viettel.campaign.model.ccms_full.Scenario;
import com.viettel.campaign.repository.ccms_full.ScenarioRepository; import com.viettel.campaign.repository.ccms_full.ScenarioRepository;
import com.viettel.campaign.service.ScenarioService; import com.viettel.campaign.service.ScenarioService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.ScenarioDTO;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
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 java.util.Date;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
*/ */
...@@ -22,6 +29,9 @@ public class ScenarioServiceImpl implements ScenarioService { ...@@ -22,6 +29,9 @@ public class ScenarioServiceImpl implements ScenarioService {
@Autowired @Autowired
ScenarioRepository scenarioRepository; ScenarioRepository scenarioRepository;
@Autowired
ModelMapper modelMapper;
@Override @Override
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public Scenario findScenarioByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId) { public Scenario findScenarioByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId) {
...@@ -32,4 +42,25 @@ public class ScenarioServiceImpl implements ScenarioService { ...@@ -32,4 +42,25 @@ public class ScenarioServiceImpl implements ScenarioService {
} }
return null; return null;
} }
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO update(ScenarioDTO scenarioDTO) {
ResultDTO resultDTO = new ResultDTO();
try {
scenarioDTO.setUpdateBy(null);
scenarioDTO.setUpdateTime(new Date());
Scenario scenario = modelMapper.map(scenarioDTO, Scenario.class);
scenarioRepository.save(scenario);
resultDTO.setData(scenario);
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;
}
} }
package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
/**
* @author anhvd_itsol
*/
@Getter
@Setter
public class ScenarioAnswerDTO {
public Long scenarioAnswerId;
public Long companySiteId;
public Long scenarioQuestionId;
public String code;
public String answer;
public Integer orderIndex;
public Short hasInput;
public Short status;
public Date createTime;
public Date deleteTime;
public Long mappingQuestionId;
}
package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
/**
* @author anhvd_itsol
*/
@Getter
@Setter
public class ScenarioDTO {
private Long scenarioId;
private Long companySiteId;
private Long campaignId;
private String code;
private String description;
private String createBy;
private Date createTime;
private Long updateBy;
private Date updateTime;
}
package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
/**
* @author anhvd_itsol
*/
@Getter
@Setter
public class ScenarioQuestionDTO {
private Long scenarioQuestionId;
private Long companySiteId;
private Long campaignId;
private Long scenarioId;
private String code;
private Short type;
private String question;
private Long orderIndex;
private Short status;
private Date createTime;
private Date deleteTime;
private Short isRequire;
private Short isDefault;
private Short answerIndex;
}
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;
/**
* @author anhvd_itsol
*/
@RestController
@RequestMapping("/ipcc/campaign/scenario-answer")
@CrossOrigin
public class ScenarioAnswerController {
}
package com.viettel.campaign.web.rest; package com.viettel.campaign.web.rest;
import org.springframework.web.bind.annotation.CrossOrigin; import com.viettel.campaign.model.ccms_full.Scenario;
import org.springframework.web.bind.annotation.RequestMapping; import com.viettel.campaign.service.ScenarioService;
import org.springframework.web.bind.annotation.RestController; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.ScenarioDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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
*/ */
@RestController @RestController
@RequestMapping("/ipcc/campaign") @RequestMapping("/ipcc/campaign/scenario")
@CrossOrigin @CrossOrigin
public class ScenarioController { public class ScenarioController {
private static final Logger logger = LoggerFactory.getLogger(ScenarioController.class);
@Autowired
ScenarioService scenarioService;
@RequestMapping(value="/findOneByCampaignIdAndCompanyId", method = RequestMethod.GET)
Scenario findOneByCampaignIdAndCompanyId(@RequestParam Long campaignId, @RequestParam Long companySiteId) {
return scenarioService.findScenarioByCampaignIdAndCompanySiteId(campaignId, companySiteId);
}
@RequestMapping(method = RequestMethod.PUT)
ResponseEntity<ResultDTO> update(@RequestBody ScenarioDTO scenario) {
ResultDTO resultDTO = scenarioService.update(scenario);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
} }
package com.viettel.campaign.web.rest;
import com.viettel.campaign.service.ScenarioQuestionService;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.ScenarioQuestionDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* @author anhvd_itsol
*/
@RestController
@RequestMapping("/ipcc/campaign/scenario-question")
@CrossOrigin
public class ScenarioQuestionController {
@Autowired
ScenarioQuestionService scenarioQuestionService;
@RequestMapping(value = "/find-by-scenarioId-campaignId-companySiteId", method = RequestMethod.GET)
public ResponseEntity<ResultDTO> findByScenarioIdAndCampaignIdAndCompanySiteId(Long scenarioId, Long campaignId, Long companySiteId){
ResultDTO resultDTO = scenarioQuestionService.findByScenarioIdAndCampaignIdAndCompanySiteId(scenarioId, campaignId, companySiteId);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<ResultDTO> add(ScenarioQuestionDTO scenarioQuestionDTO) {
ResultDTO resultDTO = scenarioQuestionService.add(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