Commit 2e4db896 authored by Tu Bach's avatar Tu Bach

campaign

parent 3df00b4f
...@@ -6,6 +6,7 @@ import lombok.Setter; ...@@ -6,6 +6,7 @@ import lombok.Setter;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@Entity @Entity
...@@ -18,23 +19,23 @@ public class Campaign implements Serializable { ...@@ -18,23 +19,23 @@ public class Campaign implements Serializable {
@NotNull @NotNull
@Basic(optional = false) @Basic(optional = false)
@Column(name = "CAMPAIGN_ID") @Column(name = "CAMPAIGN_ID")
private Long campaignId; private BigDecimal campaignId;
@Column(name = "COMPANY_SITE_ID") @Column(name = "COMPANY_SITE_ID")
private Long companySiteId; private BigDecimal companySiteId;
@Column(name = "CAMPAIGN_CODE") @Column(name = "CAMPAIGN_CODE")
private String campaignCode; private String campaignCode;
@Column(name = "CAMPAIGN_NAME") @Column(name = "CAMPAIGN_NAME")
private String campaignName; private String campaignName;
@Column(name = "CHANEL") @Column(name = "CHANEL")
private Short chanel; private BigDecimal chanel;
@Column(name = "CONTENT") @Column(name = "CONTENT")
private String content; private String content;
@Column(name = "CUSTOMER_NUMBER") @Column(name = "CUSTOMER_NUMBER")
private Long customerNumber; private BigDecimal customerNumber;
@Column(name = "TARGET") @Column(name = "TARGET")
private String target; private String target;
@Column(name = "STATUS") @Column(name = "STATUS")
private Short status; private BigDecimal status;
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
@Column(name = "START_TIME") @Column(name = "START_TIME")
private Date startTime; private Date startTime;
...@@ -64,7 +65,7 @@ public class Campaign implements Serializable { ...@@ -64,7 +65,7 @@ public class Campaign implements Serializable {
@Column(name = "PROCESS_STATUS") @Column(name = "PROCESS_STATUS")
private Integer processStatus; private Integer processStatus;
@Column(name = "DIAL_MODE") @Column(name = "DIAL_MODE")
private Short dialMode; private BigDecimal dialMode;
@Column(name = "DEPT_CODE") @Column(name = "DEPT_CODE")
private String deptCode; private String deptCode;
@Column(name = "TIME_RANGE") @Column(name = "TIME_RANGE")
...@@ -72,29 +73,29 @@ public class Campaign implements Serializable { ...@@ -72,29 +73,29 @@ public class Campaign implements Serializable {
@Column(name = "DAY_OF_WEEK") @Column(name = "DAY_OF_WEEK")
private String dayOfWeek; private String dayOfWeek;
@Column(name = "CURRENT_TIME_MODE") @Column(name = "CURRENT_TIME_MODE")
private Long currentTimeModel; private BigDecimal currentTimeModel;
@Column(name = "WRAPUP_TIME_CONNECT") @Column(name = "WRAPUP_TIME_CONNECT")
private Long wrapupTimeConnect; private BigDecimal wrapupTimeConnect;
@Column(name = "WRAPUP_TIME_DISCONNECT") @Column(name = "WRAPUP_TIME_DISCONNECT")
private Long wrapupTimeDisconnect; private BigDecimal wrapupTimeDisconnect;
@Column(name = "PREVIEW_TIME") @Column(name = "PREVIEW_TIME")
private Long previewTime; private BigDecimal previewTime;
@Column(name = "RATE_DIAL") @Column(name = "RATE_DIAL")
private Long rateDial; private BigDecimal rateDial;
@Column(name = "RATE_MISS") @Column(name = "RATE_MISS")
private Long rateMiss; private BigDecimal rateMiss;
@Column(name = "AVG_TIME_PROCESS") @Column(name = "AVG_TIME_PROCESS")
private Long avgTimeProcess; private BigDecimal avgTimeProcess;
@Column(name = "IS_APPLY_CUST_LOCK") @Column(name = "IS_APPLY_CUST_LOCK")
private Long isApplyCustLock; private BigDecimal isApplyCustLock;
@Column(name = "TARGET_TYPE") @Column(name = "TARGET_TYPE")
private Long targetType; private BigDecimal targetType;
@Column(name = "IS_TARGET") @Column(name = "IS_TARGET")
private Long isTarget; private BigDecimal isTarget;
@Column(name = "CAMPAIGN_IVR_CALLED_ID") @Column(name = "CAMPAIGN_IVR_CALLED_ID")
private Long campaignIvrCalledId; private BigDecimal campaignIvrCalledId;
@Column(name = "CONCURRENT_CALL") @Column(name = "CONCURRENT_CALL")
private Long concurrentCall; private BigDecimal concurrentCall;
@Column(name = "CALL_OUT_TIME_IN_DAY") @Column(name = "CALL_OUT_TIME_IN_DAY")
private String callOutTimeInDay; private String callOutTimeInDay;
@Column(name = "MUSIC_LIST") @Column(name = "MUSIC_LIST")
...@@ -110,5 +111,5 @@ public class Campaign implements Serializable { ...@@ -110,5 +111,5 @@ public class Campaign implements Serializable {
@Column(name = "TIME_WAIT_AGENT") @Column(name = "TIME_WAIT_AGENT")
private Integer timeWaitAgent; private Integer timeWaitAgent;
@Column(name = "QUEST_INDEX") @Column(name = "QUEST_INDEX")
private Long questIndex; private BigDecimal questIndex;
} }
...@@ -6,7 +6,9 @@ import org.springframework.data.domain.Pageable; ...@@ -6,7 +6,9 @@ import org.springframework.data.domain.Pageable;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.Query; import javax.persistence.Query;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
public class CampaignRepositoryImpl implements CampaignRepositoryCustom { public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
...@@ -18,24 +20,28 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -18,24 +20,28 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
public List<CampaignDTO> searchCampaignExecute(String agentId, Pageable pageable) { public List<CampaignDTO> searchCampaignExecute(String agentId, Pageable pageable) {
List<CampaignDTO> lst = new ArrayList<>(); List<CampaignDTO> lst = new ArrayList<>();
String expression = new StringBuilder() String expression = new StringBuilder()
.append(" SELECT C.CAMPAIGN_ID, C.CAMPAIGN_NAME, C.STATUS ") //.append(" SELECT C.CODECAMPAIGN_ID, C.CAMPAIGN_NAME, C.CONTENT, C.START_TIME, C.END_TIME, C.STATUS ")
.append(" FROM CAMPAIGN C ") .append(" SELECT CAMPAIGN_ID, COMPLETE_NAME AS CAMPAIGN_NAME, DESCRIPTION AS CONTENT, UPDATE_BY AS START_TIME, UPDATE_BY AS END_TIME, STATUS ")
.append(" INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID ") .append(" FROM CAMPAIGN_COMPLETE_CODE C ")
.append(" WHERE 1 = 1 ") //.append(" INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID ")
.append(" AND CA.AGENT_ID = :pAgentId ") //.append(" WHERE 1 = 1 ")
.append(" AND C.STATUS IN (2,3) ") //.append(" AND CA.AGENT_ID = :pAgentId ")
//.append(" AND C.STATUS IN (2,3) ")
.toString(); .toString();
Query query = entityManager.createNativeQuery(expression); Query query = entityManager.createNativeQuery(expression);
query.setParameter("pAgentId", agentId); //query.setParameter("pAgentId", agentId);
List<Object[]> data = query.getResultList(); List<Object[]> data = query.getResultList();
for (Object[] obj : data) { for (Object[] obj : data) {
CampaignDTO item = new CampaignDTO(); CampaignDTO item = new CampaignDTO();
item.setCampaignId((Long)obj[0]); item.setCampaignId((BigDecimal) obj[0]);
item.setCampaignName((String)obj[1]); item.setCampaignName((String)obj[1]);
item.setStatus((Short) obj[0]); item.setContent((String)obj[2]);
item.setStartTime((Date)obj[3]);
item.setEndTime((Date)obj[4]);
item.setStatus((BigDecimal) obj[5]);
lst.add(item); lst.add(item);
} }
......
...@@ -32,10 +32,12 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -32,10 +32,12 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
public Map listCompleteCodeByName(int page, int pageSize, String sort, String name) { public Map listCompleteCodeByName(int page, int pageSize, String sort, String name) {
Map result = new HashMap(); Map result = new HashMap();
List<CampaignCompleteCode> lst = new ArrayList<>(); List<CampaignCompleteCode> lst = new ArrayList<>();
List<CampaignCompleteCode> count = new ArrayList<>();
lst = completeCodeRepository.findByCompleteNameContains(name, PageRequest.of(page, pageSize, Sort.by(sort))); lst = completeCodeRepository.findByCompleteNameContains(name, PageRequest.of(page, pageSize, Sort.by(sort)));
count = completeCodeRepository.findByCompleteNameContains(name, null);
result.put("totalItem", lst.size()); result.put("totalItem", count.size());
result.put("customers", lst); result.put("customers", lst);
return result; return result;
......
package com.viettel.campaign.service; package com.viettel.campaign.service;
import com.viettel.campaign.dto.CampaignDTO;
import com.viettel.campaign.repository.CampaignRepository; import com.viettel.campaign.repository.CampaignRepository;
import com.viettel.campaign.web.dto.CampaignDTO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@Service
public class CampaignServiceImpl implements CampaignService { public class CampaignServiceImpl implements CampaignService {
@Autowired @Autowired(required=true)
CampaignRepository campaignRepository; CampaignRepository campaignRepository;
@Override @Override
...@@ -26,7 +28,7 @@ public class CampaignServiceImpl implements CampaignService { ...@@ -26,7 +28,7 @@ public class CampaignServiceImpl implements CampaignService {
lst = campaignRepository.searchCampaignExecute(agentId, pageable); lst = campaignRepository.searchCampaignExecute(agentId, pageable);
result.put("totalItem", lst.size()); result.put("totalItem", lst.size());
result.put("customers", lst); result.put("data", lst);
return result; return result;
} }
......
...@@ -3,21 +3,22 @@ package com.viettel.campaign.web.dto; ...@@ -3,21 +3,22 @@ package com.viettel.campaign.web.dto;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@Getter @Getter
@Setter @Setter
public class CampaignDTO extends BaseDTO { public class CampaignDTO extends BaseDTO {
private Long campaignId; private BigDecimal campaignId;
private Long companySiteId; private BigDecimal companySiteId;
private String campaignCode; private String campaignCode;
private String campaignName; private String campaignName;
private Short chanel; private BigDecimal chanel;
private String content; private String content;
private Long customerNumber; private BigDecimal customerNumber;
private String target; private String target;
private Short status; private BigDecimal status;
private Date startTime; private Date startTime;
private Date endTime; private Date endTime;
private Integer maxRecall; private Integer maxRecall;
...@@ -30,27 +31,27 @@ public class CampaignDTO extends BaseDTO { ...@@ -30,27 +31,27 @@ public class CampaignDTO extends BaseDTO {
private String campaignType; private String campaignType;
private String product; private String product;
private Integer processStatus; private Integer processStatus;
private Short dialMode; private BigDecimal dialMode;
private String deptCode; private String deptCode;
private String timeRange; private String timeRange;
private String dayOfWeek; private String dayOfWeek;
private Long currentTimeModel; private BigDecimal currentTimeModel;
private Long wrapupTimeConnect; private BigDecimal wrapupTimeConnect;
private Long wrapupTimeDisconnect; private BigDecimal wrapupTimeDisconnect;
private Long previewTime; private BigDecimal previewTime;
private Long rateDial; private BigDecimal rateDial;
private Long rateMiss; private BigDecimal rateMiss;
private Long avgTimeProcess; private BigDecimal avgTimeProcess;
private Long isApplyCustLock; private BigDecimal isApplyCustLock;
private Long targetType; private BigDecimal targetType;
private Long isTarget; private BigDecimal isTarget;
private Long campaignIvrCalledId; private BigDecimal campaignIvrCalledId;
private Long concurrentCall; private BigDecimal concurrentCall;
private String callOutTimeInDay; private String callOutTimeInDay;
private String musicList; private String musicList;
private Integer timePlayMusic; private Integer timePlayMusic;
private Date campaignStart; private Date campaignStart;
private Date campaignEnd; private Date campaignEnd;
private Integer timeWaitAgent; private Integer timeWaitAgent;
private Long questIndex; private BigDecimal questIndex;
} }
...@@ -6,15 +6,13 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -6,15 +6,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Map; import java.util.Map;
@Controller @Controller
@RequestMapping("/ipcc/campaign") @RequestMapping("/ipcc/campaign")
@CrossOrigin
public class CampaignController { public class CampaignController {
private static final Logger LOGGER = Logger.getLogger(CampaignController.class); private static final Logger LOGGER = Logger.getLogger(CampaignController.class);
......
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