Commit 09c40d24 authored by đinh thị đầm's avatar đinh thị đầm

Merge branch 'master' of http://git.myitsol.com/hanv/service-campaign

# Conflicts:
#	src/main/java/com/viettel/campaign/web/rest/CustomerController.java
parents 9c669b8f cb87a330
package com.viettel.campaign.model.acd_full;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name = "Agents")
@Getter
@Setter
public class Agents {
@Id
@Basic(optional = false)
@Column(name = "AGENT_ID")
private String agentId;
@Column(name = "DESCRIPTION")
private String description;
@Column(name = "SYSTEM_STATUS")
private String systemStatus;
@Column(name = "USER_STATUS")
private String userStatus;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_START_WORK")
private Date lastStartWork;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_FINISH_WORK")
private Date lastFinishWork;
@Column(name = "LOGIN_TYPE")
private String loginType;
@Column(name = "VSA_USER_LOGIN")
private String vsaUserLogin;
@Column(name = "CALL_STATUS")
private String callStatus;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_CHANGE_STATUS")
private Date lastChangeStatus;
@Column(name = "IP_LOGIN")
private String ipLogin;
@Column(name = "NUM_REJECTCALL")
private String numRejectcall;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LOGIN_TIME")
private Date loginTime;
@Column(name = "GROUP_NAME")
private String groupName;
@Column(name = "TOTAL_ANSWER_CALL")
private String totalAnswerCall;
@Column(name = "TOTAL_ANSWER_TIME")
private String totalAnswerTime;
@Column(name = "CALLOUT_ID")
private Integer calloutId;
@Column(name = "LAST_QUEUE_ANSWER")
private String lastQueueAnswer;
@Column(name = "EMAIL_USER_STATUS")
private String emailUserAnswer;
@Column(name = "CHAT_USER_STATUS")
private String chatUserStatus;
@Column(name = "SMS_USER_STATUS")
private String smsUserStatus;
@Column(name = "MULTI_CHANNEL_USER_STATUS")
private String multiChannelUserStatus;
@Column(name = "MAX_TRANSACTION_EMAIL")
private Integer maxTransactionEmail = 1;
@Column(name = "MAX_TRANSACTION_CHAT")
private Integer maxTransactionChat = 1;
@Column(name = "MAX_CURRENT_TRANSACTION")
private Integer maxCurrentTransaction = 6;
@Column(name = "TOTAL_TRANSACTION")
private Integer totalTransaction = 0;
@Column(name = "EMAIL_SYSTEM_STATUS")
private Integer emailSystemStatus = 0;
@Column(name = "CHAT_SYSTEM_STATUS")
private Integer chatSystemStatus = 0;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_CHANGE_CHAT_STATUS")
private Date lastChangeChatStatus;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_CHANGE_EMAIL_STATUS")
private Date lastChangeEmailStatus;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_CHANGE_MULTI_STATUS")
private Date lastChangeMultiStatus;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_START_WORK_CHAT")
private Date lastStartWorkChat;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_START_WORK_EMAIL")
private Date lastStartWorkEmail;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_FINISH_WORK_CHAT")
private Date lastFinishWorkChat;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_FINISH_WORK_EMAIL")
private Date lastFinishWorkEmail;
@Column(name = "TOTAL_ANSWER_CHAT")
private Long totalAnswerChat;
@Column(name = "TOTAL_ANSWER_EMAIL")
private Long totalAnswerEmail;
@Column(name = "TOTAL_ANSWER_TIME_EMAIL")
private Long totalAnswerTimeEmail;
@Column(name = "TOTAL_ANSWER_TIME_CHAT")
private Long totalAnswerTimeChat;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_ASSIGN_TIME_SMS")
private Date lastAssignTimeSms;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_CHANGE_SMS_STATUS")
private Date lastChangeSmsStatus;
@Column(name = "MAX_TRANSACTION_SMS")
private Integer maxTransactionSms = 1;
@Column(name = "SMS_SYSTEM_STATUS")
private Integer smsSystemStatus = 0;
@Column(name = "FACEBOOK_SYSTEM_STATUS")
private Integer facebookSystemStatus = 0;
@Column(name = "FACEBOOK_USER_STATUS")
private String facebookUserStatus;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_START_WORK_SMS")
private Date lastStartWorkSms;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_START_WORK_FACEBOOK")
private Date lastStartWorkFacebook;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_FINISH_WORK_SMS")
private Date lastFinishWorkSms;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_FINISH_WORK_FACEBOOK")
private Date lastFinishWorkFacebook;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_CHANGE_FACEBOOK_STATUS")
private Date lastChangeFacebookStatus;
@Column(name = "MAX_TRANSACTION_FACEBOOK")
private Integer maxTransactionFacebook = 1;
@Column(name = "TICKET_USER_STATUS")
private String ticketUserStatus;
@Column(name = "TICKET_SYSTEM_STATUS")
private Integer ticketSystemStatus;
@Column(name = "MAX_TRANSACTION_TICKET")
private Integer maxTransactionTicket;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_START_WORK_TICKET")
private Date lastStartWorkTicket;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_FINISH_WORK_TICKET")
private Date lastFinishWorkTicket;
@Column(name = "COMPANY_SITE_ID")
private Long companySiteId;
@Column(name = "SITE_ID")
private Long siteId;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_CHANGE_TICKET_STATUS")
private Date lastChangeTicketStatus;
@Column(name = "AGENT_TYPE")
private Short agentType;
@Column(name = "STATUS")
private Long status = 1L;
@Column(name = "CREATE_BY")
private String createBy;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATE_DATE")
private Date createDate;
@Column(name = "UPDATE_BY")
private String updateBy;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UPDATE_DATE")
private Date updateDate;
@Column(name = "USER_KAZOO_ID")
private String userKazooId;
@Column(name = "CAMPAIGN_SYSTEM_STATUS")
private String campaignSystemStatus;
@Column(name = "CURRENT_CAMPAIGN_ID")
private Long currentCampaignId;
}
......@@ -12,8 +12,8 @@ import javax.validation.constraints.NotNull;
@Setter
public class CampaignCustomerList {
@Id
@GeneratedValue(generator = "campaign_customerlist_seq")
@SequenceGenerator(name = "campaign_customerlist_seq", sequenceName = "campaign_customerlist_seq", allocationSize = 1)
@GeneratedValue(generator = "campaign_customer_seq")
@SequenceGenerator(name = "campaign_customer_seq", sequenceName = "campaign_customer_seq", allocationSize = 1)
@Basic(optional = false)
@NotNull
@Column(name = "CAMPAIGN_CUSTOMERLIST_ID")
......
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @author anhvd_itsol
*/
@Entity
@Table(name = "SCENARIO")
@Getter
@Setter
public class Scenario implements Serializable {
@Id
@NotNull
@GeneratedValue(generator = "SCENARIO_SEQ")
@SequenceGenerator(name = "SCENARIO_SEQ", sequenceName = "SCENARIO_SEQ", allocationSize = 1)
@Basic(optional = false)
@Column(name = "SCENARIO_ID")
private Long scenarioId;
@Column(name = "COMPANY_SITE_ID")
private Long companySiteId;
@Column(name = "CAMPAIGN_ID")
private Long campaignId;
@Column(name = "CODE")
private String code;
@Column(name = "DESCRIPTION")
private String description;
@Column(name = "CREATE_BY")
private String createBy;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATE_TIME")
private Date createTime;
@Column(name = "UPDATE_BY")
private Long updateBy;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UPDATE_TIME")
private Date updateTime;
}
package com.viettel.campaign.model.ccms_full;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @author anhvd_itsol
*/
@Entity
@Table(name = "SCENARIO_QUESTION")
@Getter
@Setter
public class ScenarioQuestion implements Serializable {
@Id
@NotNull
@GeneratedValue(generator = "SCENARIO_QES_SEQ")
@SequenceGenerator(name = "SCENARIO_QES_SEQ", sequenceName = "SCENARIO_QES_SEQ", allocationSize = 1)
@Basic(optional = false)
@Column(name = "SCENARIO_QUESTION_ID")
private Long scenarioQuestionId;
@Column(name = "COMPANY_SITE_ID")
private Long companySiteId;
@Column(name = "CAMPAIGN_ID")
private Long campaignId;
@Column(name = "SCENARIO_ID")
private Long scenarioId;
@Column(name = "CODE")
private String code;
@Column(name = "TYPE")
private Short type;
@Column(name = "QUESTION")
private String question;
@Column(name = "ORDER_INDEX")
private Long orderIndex;
@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 = "IS_REQUIRE")
private Short isRequire;
@Column(name = "IS_DEFAULT")
private Short isDefault;
@Column(name = "ANSWER_INDEX")
private Short answerIndex;
}
......@@ -27,7 +27,7 @@ public class TimeRangeDialMode implements Serializable {
@Column(name = "COMPANY_SITE_ID")
private Long companySiteId;
@Temporal(TemporalType.DATE)
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "START_TIME")
private Date startTime;
......
package com.viettel.campaign.repository.acd_full;
import com.viettel.campaign.model.acd_full.Agents;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface AgentsRepository extends JpaRepository<Agents, String> {
Agents getByAgentId(String agentId);
}
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.model.ccms_full.Scenario;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* @author anhvd_itsol
*/
@Repository
public interface ScenarioRepository extends JpaRepository<Scenario, Long> {
Scenario findScenarioByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId);
}
package com.viettel.campaign.repository.ccms_full;
/**
* @author anhvd_itsol
*/
public interface ScenarioRepositoryCustom {
}
package com.viettel.campaign.repository.ccms_full;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.UserActionLogDTO;
import org.springframework.transaction.annotation.Transactional;
/**
* @author anhvd_itsol
*/
public interface UserActionLogRepositoryCustom {
@Transactional(DataSourceQualify.CCMS_FULL)
ResultDTO insertToUserActionLog(UserActionLogDTO userActionLogDTO);
}
......@@ -42,10 +42,10 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
ResultDTO result = new ResultDTO();
List<CampaignDTO> lst = new ArrayList<>();
StringBuilder expression = new StringBuilder()
.append(" SELECT C.CAMPAIGN_CODE, C.CAMPAIGN_NAME, C.CONTENT, C.START_TIME, C.END_TIME, C.STATUS, CA.STATUS AS AGENT_STATUS ")
.append(" SELECT C.CAMPAIGN_CODE, C.CAMPAIGN_NAME, C.CONTENT, C.START_TIME, C.END_TIME, C.STATUS, CA.STATUS AS AGENT_STATUS, C.CAMPAIGN_ID ")
.append(" FROM CAMPAIGN C INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID ")
.append(" WHERE 1 = 1 ");
//.append(" AND CA.AGENT_ID = :pAgentId ")
.append(" WHERE 1 = 1 ")
.append(" AND CA.AGENT_ID = :pAgentId ");
if (!DataUtil.isNullOrEmpty(campaignRequestDto.getCampaignCode())) {
expression.append(" AND C.CAMPAIGN_CODE IN (:pCampaignCode) ");
......@@ -59,7 +59,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (campaignRequestDto.getStatus() != 0)
expression.append(" AND C.STATUS = :pStatus ");
else
expression.append(" AND C.STATUS IN (1, 2, 3) ");
expression.append(" AND C.STATUS IN (2, 3) ");
}
if (!DataUtil.isNullOrEmpty(campaignRequestDto.getFromDateFr())) {
......@@ -88,7 +88,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
try {
Query query = entityManager.createNativeQuery(expression.toString());
//query.setParameter("pAgentId", campaignRequestDto.getAgentId());
query.setParameter("pAgentId", campaignRequestDto.getAgentId());
if (!DataUtil.isNullOrEmpty(campaignRequestDto.getCampaignCode())) {
String[] lstCode = campaignRequestDto.getCampaignCode().split(",");
......@@ -155,6 +155,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
item.setEndTime((Date) obj[4]);
item.setStatus(((BigDecimal) obj[5]).shortValueExact());
item.setAgentStatus(((BigDecimal) obj[6]).shortValueExact());
item.setCampaignId(((BigDecimal) obj[7]).longValueExact());
lst.add(item);
}
......
package com.viettel.campaign.repository.ccms_full.impl;
import com.viettel.campaign.repository.ccms_full.ScenarioRepositoryCustom;
import org.springframework.stereotype.Repository;
/**
* @author anhvd_itsol
*/
@Repository
public class ScenarioRepositoryImpl implements ScenarioRepositoryCustom {
}
package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.ResultDTO;
public interface AgentsService {
ResultDTO getAgentsByAgentId(String agentId);
}
......@@ -44,4 +44,6 @@ public interface CampaignService {
List<TimeRangeDialMode> getCampaignTimeRangeMode (Long campaignId, Long companySiteId);
List<TimeZoneDialMode> getCampaignTimeZoneMode (Long campaignId, Long companySiteId);
ResultDTO renewCampaign (CampaignDTO campaignDTO);
}
package com.viettel.campaign.service;
import com.viettel.campaign.model.ccms_full.Scenario;
/**
* @author anhvd_itsol
*/
public interface ScenarioService {
Scenario findScenarioByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId);
}
package com.viettel.campaign.service.impl;
import com.viettel.campaign.model.acd_full.Agents;
import com.viettel.campaign.repository.acd_full.AgentsRepository;
import com.viettel.campaign.service.AgentsService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.ResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class AgentsServiceImpl implements AgentsService {
@Autowired
AgentsRepository agentsRepository;
@Override
public ResultDTO getAgentsByAgentId(String agentId) {
ResultDTO result = new ResultDTO();
Agents data = agentsRepository.getByAgentId(agentId);
if (data != null) {
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription("agents data");
result.setData(data);
} else {
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription("agents data null");
}
return result;
}
}
......@@ -15,6 +15,7 @@ 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.*;
......@@ -167,6 +168,7 @@ public class CampaignServiceImpl implements CampaignService {
return resultDTO;
}
@Transactional(DataSourceQualify.CCMS_FULL)
public Map countRecallCustomer(Long companySiteId, Long agentId) {
Map result = new HashMap();
Long count = campaignRepository.countRecallCustomer(companySiteId, agentId);
......@@ -227,20 +229,14 @@ public class CampaignServiceImpl implements CampaignService {
userActionLog.setObjectId(entity.getCampaignId());
if (dto.getStatus().equals((short) -1)) {
userActionLog.setActionType((short) 2);
}
else if(dto.getStatus().equals((short) 4)) {
userActionLog.setActionType((short) 7);
}
else if(dto.getStatus().equals((short) 3)) {
} else if (dto.getStatus().equals((short) 1)) {
userActionLog.setActionType((short) 3);
} else if (dto.getStatus().equals((short) 2)) {
userActionLog.setActionType((short) 5);
} else if (dto.getStatus().equals((short) 3)) {
userActionLog.setActionType((short) 4);
}
else if(dto.getStatus().equals((short) 2)) {
} else if (dto.getStatus().equals((short) 5)) {
userActionLog.setActionType((short) 7);
} else if (dto.getStatus().equals((short) 4)) {
userActionLog.setActionType((short) 4);
} else if (dto.getStatus().equals((short) 3)) {
userActionLog.setActionType((short) 5);
userActionLog.setActionType((short) 7);
}
userActionLogRepository.insertToUserActionLog(userActionLog);
......@@ -275,7 +271,7 @@ public class CampaignServiceImpl implements CampaignService {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet;
CellStyle styleTitle = WorkBookBuilder.buildDefaultStyleTitle(workbook);
CellStyle styleRowHeader = WorkBookBuilder.buildDefaultStyleRowHeader(workbook);
CellStyle styleRow = WorkBookBuilder.buildDefaultStyleRow(workbook);
......@@ -339,15 +335,53 @@ public class CampaignServiceImpl implements CampaignService {
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public List<TimeRangeDialMode> getCampaignTimeRangeMode(Long campaignId, Long companySiteId) {
return timeRangeDialModeRepository.findTimeRangeDialModeByCampaignIdAndCompanySiteId(campaignId, companySiteId);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public List<TimeZoneDialMode> getCampaignTimeZoneMode(Long campaignId, Long companySiteId) {
return timeZoneDialModeRepository.findTimeZoneDialModeByCampaignIdAndCompanySiteId(campaignId, companySiteId);
}
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public ResultDTO renewCampaign(CampaignDTO campaignDTO) {
ResultDTO resultDTO = new ResultDTO();
try {
Campaign entity = campaignRepository.findCampaignByCampaignIdAndCompanySiteId(campaignDTO.getCampaignId(), campaignDTO.getCompanySiteId());
if (entity != null) {
entity.setStatus(campaignDTO.getStatus().longValue());
entity.setUpdateTime(new Date());
entity.setUpdateBy(campaignDTO.getUpdateBy());
entity.setEndTime(campaignDTO.getEndTime());
campaignRepository.save(entity);
UserActionLogDTO userActionLog = new UserActionLogDTO();
userActionLog.setAgentId(null);
userActionLog.setSessionId(campaignDTO.getSessionId());
userActionLog.setCompanySiteId(campaignDTO.getCompanySiteId());
userActionLog.setDescription(null);
userActionLog.setStartTime(new Date());
userActionLog.setEndTime(null);
userActionLog.setObjectId(entity.getCampaignId());
userActionLog.setActionType((short) 6);
userActionLogRepository.insertToUserActionLog(userActionLog);
resultDTO.setData(entity);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
}
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
return resultDTO;
}
private String generateCampaignCode(String campaignType, Short chanel) {
int year = Calendar.getInstance().get(Calendar.YEAR);
String maxIndexStr = campaignRepositoryCustom.getMaxCampaignIndex();
......@@ -361,9 +395,9 @@ public class CampaignServiceImpl implements CampaignService {
public String getCampaignTypeName(List<ApParam> lstApParams, String type) {
String name = "";
if(!DataUtil.isNullOrEmpty(type)) {
for(int i = 0; i < lstApParams.size(); i++) {
if(type.equals(lstApParams.get(i).getParValue())) {
if (!DataUtil.isNullOrEmpty(type)) {
for (int i = 0; i < lstApParams.size(); i++) {
if (type.equals(lstApParams.get(i).getParValue())) {
name = lstApParams.get(i).getParName();
break;
}
......
......@@ -110,6 +110,13 @@ public class CustomerServiceImpl implements CustomerService {
query.addScalar("ipccStatus", new StringType());
query.addScalar("mobileNumber", new StringType());
query.addScalar("email", new StringType());
query.addScalar("title", new StringType());
query.addScalar("type", new StringType());
query.addScalar("valueCombobox", new StringType());
query.addScalar("valueCheckbox", new ShortType());
query.addScalar("valueDate", new DateType());
query.addScalar("valueNumber", new LongType());
query.addScalar("valueText", new StringType());
query.setResultTransformer(Transformers.aliasToBean(CustomerCustomDTO.class));
int count = 0;
......
package com.viettel.campaign.service.impl;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.model.ccms_full.Scenario;
import com.viettel.campaign.repository.ccms_full.ScenarioRepository;
import com.viettel.campaign.service.ScenarioService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* @author anhvd_itsol
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class ScenarioServiceImpl implements ScenarioService {
private static final Logger logger = LogManager.getLogger(ScenarioServiceImpl.class);
@Autowired
ScenarioRepository scenarioRepository;
@Override
@Transactional(DataSourceQualify.CCMS_FULL)
public Scenario findScenarioByCampaignIdAndCompanySiteId(Long campaignId, Long companySiteId) {
try {
return scenarioRepository.findScenarioByCampaignIdAndCompanySiteId(campaignId, companySiteId);
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
return null;
}
}
......@@ -3,6 +3,8 @@ package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class CustomerCustomDTO {
......@@ -21,4 +23,11 @@ public class CustomerCustomDTO {
String ipccStatus;
String mobileNumber;
String email;
String title;
String type;
String valueCombobox;
Short valueCheckbox;
Date valueDate;
Long valueNumber;
String valueText;
}
package com.viettel.campaign.web.rest;
import com.viettel.campaign.service.AgentsService;
import com.viettel.campaign.web.dto.ResultDTO;
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.*;
@RestController
@RequestMapping("/ipcc/agents")
@CrossOrigin
public class AgentsController {
private static final Logger logger = LoggerFactory.getLogger(CampaignController.class);
@Autowired
AgentsService agentsService;
@GetMapping("/getAgentsById")
@ResponseBody
public ResponseEntity<ResultDTO> getAgentsById(@RequestParam("agentId") String agentId) {
ResultDTO result = agentsService.getAgentsByAgentId(agentId);
return new ResponseEntity<>(result, HttpStatus.OK);
}
}
......@@ -91,12 +91,14 @@ public class CampaignCompleteCodeController {
result = completeCodeService.deleteCompleteCode(campaignCompleteCodeRequestDTO);
return result;
}
@PostMapping("/listDelete")
@ResponseBody
public ResponseEntity<ResultDTO> deleteLists(@RequestBody @Valid CampaignCompleteCodeRequestDTO campaignCompleteCodeRequestDTO){
ResultDTO resultDTO = completeCodeService.deleteList(campaignCompleteCodeRequestDTO);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
@PostMapping("/deleteById")
@ResponseBody
public ResultDTO deleteById(@RequestParam("id") Long id){
......
package com.viettel.campaign.web.rest;
import com.viettel.campaign.model.ccms_full.TimeRangeDialMode;
import com.viettel.campaign.model.ccms_full.TimeZoneDialMode;
import com.viettel.campaign.repository.ccms_full.TimeRangeDialModeRepository;
import com.viettel.campaign.repository.ccms_full.TimeZoneDialModeRepository;
import com.viettel.campaign.service.CampaignExecuteService;
import com.viettel.campaign.service.CampaignService;
import com.viettel.campaign.web.dto.CampaignDTO;
......@@ -21,6 +25,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
@RestController
......@@ -36,6 +41,12 @@ public class CampaignController {
@Autowired
CampaignExecuteService campaignExecuteService;
@Autowired
TimeRangeDialModeRepository timeRangeDialModeRepository;
@Autowired
TimeZoneDialModeRepository timeZoneDialModeRepository;
@PostMapping("/searchCampaignExecute")
@ResponseBody
public ResponseEntity<ResultDTO> searchCampaignExecute(@RequestBody CampaignRequestDTO requestDto) {
......@@ -154,4 +165,20 @@ public class CampaignController {
headers.setContentType(MediaType.parseMediaType("application/vnd.ms-excel"));
return new ResponseEntity<byte[]>(contentReturn, headers, HttpStatus.OK);
}
@RequestMapping(value = "/findCampaignTimeRangeMode", method = RequestMethod.GET)
public List<TimeRangeDialMode> findCampaignTimeRangeMode(@RequestParam Long campaignId, @RequestParam Long companySiteId) {
return timeRangeDialModeRepository.findTimeRangeDialModeByCampaignIdAndCompanySiteId(campaignId, companySiteId);
}
@RequestMapping(value = "/findCampaignTimeZoneMode", method = RequestMethod.GET)
public List<TimeZoneDialMode> findCampaignTimeZoneMode(@RequestParam Long campaignId, @RequestParam Long companySiteId) {
return timeZoneDialModeRepository.findTimeZoneDialModeByCampaignIdAndCompanySiteId(campaignId, companySiteId);
}
@RequestMapping(value = "/renewCampaign", method = RequestMethod.PUT)
public ResponseEntity<ResultDTO> renewCampaign(@RequestBody CampaignDTO campaignDTO) {
ResultDTO result = campaignService.renewCampaign(campaignDTO);
return new ResponseEntity<>(result, HttpStatus.OK);
}
}
......@@ -242,12 +242,12 @@ public class CustomerController {
}
}
// @RequestMapping(value = "/searchCustomerListInfoFromCustomerList", method = RequestMethod.GET)
// public ResultDTO searchCustomerListInfoFromCustomerList(@RequestParam("page") int page,
// @RequestParam("pageSize") int pageSize,
// @RequestParam("sort") String sort,
// @RequestParam("campaignId") Long campaignId,
// @RequestParam("companySiteId") Long companySiteId) {
// return customerService.searchCustomerListInfoFromCustomerList(page, pageSize, sort, campaignId, companySiteId);
// }
@RequestMapping(value = "/searchCustomerListInfoFromCustomerList", method = RequestMethod.GET)
public ResultDTO searchCustomerListInfoFromCustomerList(@RequestParam("page") int page,
@RequestParam("pageSize") int pageSize,
@RequestParam("sort") String sort,
@RequestParam("campaignId") Long campaignId,
@RequestParam("companySiteId") Long companySiteId) {
return null;//customerService.searchCustomerListInfoFromCustomerList(page, pageSize, sort, campaignId, companySiteId);
}
}
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")
@CrossOrigin
public class ScenarioController {
}
-- select
-- a.CUSTOMER_LIST_MAPPING_ID customerListMappingId,
-- a.COMPANY_SITE_ID companySiteId,
-- a.CUSTOMER_LIST_ID customerListId,
-- a.CUSTOMER_ID customerId,
-- b.NAME name,
-- b.DESCRIPTION description,
-- b.COMPANY_NAME companyName,
-- b.CUSTOMER_TYPE customerType,
-- b.CURRENT_ADDRESS currentAddress,
-- b.CALL_ALLOWED callAllowed,
-- b.EMAIL_ALLOWED emailAllowed,
-- b.SMS_ALLOWED smsAllowed,
-- b.IPCC_STATUS ipccStatus,
-- c.MOBILE mobileNumber,
-- d.EMAIL email
-- from CUSTOMER_LIST_MAPPING a
-- join CUSTOMER b on a.CUSTOMER_ID = b.CUSTOMER_ID
-- left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS MOBILE
-- FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 5 GROUP BY CUSTOMER_ID) c on b.CUSTOMER_ID = c.CUSTOMER_ID
-- left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS EMAIL
-- FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 2 GROUP BY CUSTOMER_ID) d on b.CUSTOMER_ID = d.CUSTOMER_ID
-- where 1 = 1
-- and COMPANY_SITE_ID = :p_company_site_id
-- and CUSTOMER_LIST_ID = :p_customer_list_id
-- test dynamic field
select
a.CUSTOMER_LIST_MAPPING_ID customerListMappingId,
a.COMPANY_SITE_ID companySiteId,
......@@ -13,13 +41,26 @@ select
b.SMS_ALLOWED smsAllowed,
b.IPCC_STATUS ipccStatus,
c.MOBILE mobileNumber,
d.EMAIL email
d.EMAIL email,
e.TITLE title,
f.TYPE type,
h.VALUE_COMBOBOX valueCombobox,
e.VALUE_CHECKBOX valueCheckbox,
e.VALUE_DATE valueDate,
e.VALUE_NUMBER valueNumber,
e.VALUE_TEXT valueText
from CUSTOMER_LIST_MAPPING a
join CUSTOMER b on a.CUSTOMER_ID = b.CUSTOMER_ID
left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS MOBILE
FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 5 GROUP BY CUSTOMER_ID) c on b.CUSTOMER_ID = c.CUSTOMER_ID
FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 5 GROUP BY CUSTOMER_ID) c on b.CUSTOMER_ID = c.CUSTOMER_ID
left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS EMAIL
FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 2 GROUP BY CUSTOMER_ID) d on b.CUSTOMER_ID = d.CUSTOMER_ID
FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 2 GROUP BY CUSTOMER_ID) d on b.CUSTOMER_ID = d.CUSTOMER_ID
left join CUSTOMIZE_FIELD_OBJECT e on b.CUSTOMER_ID = e.OBJECT_ID
left join CUSTOMIZE_FIELDS f on e.CUSTOMIZE_FIELDS_ID = f.CUSTOMIZE_FIELD_ID
left join (SELECT FIELD_OPTION_VALUE_ID, NAME AS VALUE_COMBOBOX
FROM CUSTOMIZE_FIELD_OPTION_VALUE) h on h.FIELD_OPTION_VALUE_ID = e.FIELD_OPTION_VALUE_ID
where 1 = 1
and COMPANY_SITE_ID = :p_company_site_id
and CUSTOMER_LIST_ID = :p_customer_list_id
and a.COMPANY_SITE_ID = :p_company_site_id
and a.CUSTOMER_LIST_ID = :p_customer_list_id
and e.FUNCTION_CODE = 'CUSTOMER'
order by a.CUSTOMER_ID
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