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

anhvd merge code

parents 65642f6b 975685ae
......@@ -93,8 +93,8 @@
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ojdbc7.jar</systemPath>
<!-- <scope>system</scope>-->
<!-- <systemPath>${project.basedir}/lib/ojdbc7.jar</systemPath>-->
<version>1.0</version>
</dependency>
<dependency>
......
......@@ -6,6 +6,7 @@ import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Entity
......@@ -18,23 +19,23 @@ public class Campaign implements Serializable {
@NotNull
@Basic(optional = false)
@Column(name = "CAMPAIGN_ID")
private Long campaignId;
private BigDecimal campaignId;
@Column(name = "COMPANY_SITE_ID")
private Long companySiteId;
private BigDecimal companySiteId;
@Column(name = "CAMPAIGN_CODE")
private String campaignCode;
@Column(name = "CAMPAIGN_NAME")
private String campaignName;
@Column(name = "CHANEL")
private Short chanel;
private BigDecimal chanel;
@Column(name = "CONTENT")
private String content;
@Column(name = "CUSTOMER_NUMBER")
private Long customerNumber;
private BigDecimal customerNumber;
@Column(name = "TARGET")
private String target;
@Column(name = "STATUS")
private Short status;
private BigDecimal status;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "START_TIME")
private Date startTime;
......@@ -64,7 +65,7 @@ public class Campaign implements Serializable {
@Column(name = "PROCESS_STATUS")
private Integer processStatus;
@Column(name = "DIAL_MODE")
private Short dialMode;
private BigDecimal dialMode;
@Column(name = "DEPT_CODE")
private String deptCode;
@Column(name = "TIME_RANGE")
......@@ -72,29 +73,29 @@ public class Campaign implements Serializable {
@Column(name = "DAY_OF_WEEK")
private String dayOfWeek;
@Column(name = "CURRENT_TIME_MODE")
private Long currentTimeModel;
private BigDecimal currentTimeModel;
@Column(name = "WRAPUP_TIME_CONNECT")
private Long wrapupTimeConnect;
private BigDecimal wrapupTimeConnect;
@Column(name = "WRAPUP_TIME_DISCONNECT")
private Long wrapupTimeDisconnect;
private BigDecimal wrapupTimeDisconnect;
@Column(name = "PREVIEW_TIME")
private Long previewTime;
private BigDecimal previewTime;
@Column(name = "RATE_DIAL")
private Long rateDial;
private BigDecimal rateDial;
@Column(name = "RATE_MISS")
private Long rateMiss;
private BigDecimal rateMiss;
@Column(name = "AVG_TIME_PROCESS")
private Long avgTimeProcess;
private BigDecimal avgTimeProcess;
@Column(name = "IS_APPLY_CUST_LOCK")
private Long isApplyCustLock;
private BigDecimal isApplyCustLock;
@Column(name = "TARGET_TYPE")
private Long targetType;
private BigDecimal targetType;
@Column(name = "IS_TARGET")
private Long isTarget;
private BigDecimal isTarget;
@Column(name = "CAMPAIGN_IVR_CALLED_ID")
private Long campaignIvrCalledId;
private BigDecimal campaignIvrCalledId;
@Column(name = "CONCURRENT_CALL")
private Long concurrentCall;
private BigDecimal concurrentCall;
@Column(name = "CALL_OUT_TIME_IN_DAY")
private String callOutTimeInDay;
@Column(name = "MUSIC_LIST")
......@@ -110,5 +111,5 @@ public class Campaign implements Serializable {
@Column(name = "TIME_WAIT_AGENT")
private Integer timeWaitAgent;
@Column(name = "QUEST_INDEX")
private Long questIndex;
private BigDecimal questIndex;
}
package com.viettel.campaign.repository;
<<<<<<< HEAD
import com.viettel.campaign.web.dto.CampaignDTO;
=======
import com.viettel.campaign.dto.CampaignDTO;
import com.viettel.campaign.dto.ResultDTO;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
import com.viettel.campaign.model.Campaign;
import org.springframework.data.domain.Page;
>>>>>>> anhvd_campaign_mng
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;
import java.util.List;
......
package com.viettel.campaign.repository;
import com.viettel.campaign.web.dto.CampaignDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List;
public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@Autowired
EntityManager entityManager;
@Override
public List<CampaignDTO> searchCampaignExecute(String agentId, Pageable pageable) {
List<CampaignDTO> lst = new ArrayList<>();
String expression = new StringBuilder()
.append(" SELECT C.CAMPAIGN_ID, C.CAMPAIGN_NAME, C.STATUS ")
.append(" FROM CAMPAIGN C ")
.append(" INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID ")
.append(" WHERE 1 = 1 ")
.append(" AND CA.AGENT_ID = :pAgentId ")
.append(" AND C.STATUS IN (2,3) ")
.toString();
Query query = entityManager.createNativeQuery(expression);
query.setParameter("pAgentId", agentId);
List<Object[]> data = query.getResultList();
for (Object[] obj : data) {
CampaignDTO item = new CampaignDTO();
item.setCampaignId((Long)obj[0]);
item.setCampaignName((String)obj[1]);
item.setStatus((Short) obj[0]);
lst.add(item);
}
return lst;
}
}
package com.viettel.campaign.repository.impl;
import com.viettel.campaign.dto.CampaignDTO;
import com.viettel.campaign.dto.ResultDTO;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.repository.CampaignRepositoryCustom;
import com.viettel.campaign.utils.*;
import com.viettel.campaign.web.dto.CampaignDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.hql.internal.ast.util.SessionFactoryHelper;
import org.hibernate.transform.Transformers;
import org.hibernate.type.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.*;
import org.springframework.jdbc.object.SqlQuery;
import org.springframework.stereotype.Repository;
import sun.jvm.hotspot.ui.action.ShowAction;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List;
......@@ -32,28 +27,28 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@Override
public List<CampaignDTO> searchCampaignExecute(String agentId, Pageable pageable) {
List<CampaignDTO> lst = new ArrayList<>();
String expression = new StringBuilder()
.append(" SELECT C.CAMPAIGN_ID, C.CAMPAIGN_NAME, C.STATUS ")
.append(" FROM CAMPAIGN C ")
.append(" INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID ")
.append(" WHERE 1 = 1 ")
.append(" AND CA.AGENT_ID = :pAgentId ")
.append(" AND C.STATUS IN (2,3) ")
.toString();
Query query = entityManager.createNativeQuery(expression);
query.setParameter("pAgentId", agentId);
List<Object[]> data = query.getResultList();
for (Object[] obj : data) {
CampaignDTO item = new CampaignDTO();
item.setCampaignId((Long) obj[0]);
item.setCampaignName((String) obj[1]);
item.setStatus((Short) obj[0]);
lst.add(item);
}
// String expression = new StringBuilder()
// .append(" SELECT C.CAMPAIGN_ID, C.CAMPAIGN_NAME, C.STATUS ")
// .append(" FROM CAMPAIGN C ")
// .append(" INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID ")
// .append(" WHERE 1 = 1 ")
// .append(" AND CA.AGENT_ID = :pAgentId ")
// .append(" AND C.STATUS IN (2,3) ")
// .toString();
//
// Query query = entityManager.createNativeQuery(expression);
// query.setParameter("pAgentId", agentId);
//
// List<Object[]> data = query.getResultList();
//
// for (Object[] obj : data) {
// CampaignDTO item = new CampaignDTO();
// item.setCampaignId((Long) obj[0]);
// item.setCampaignName((String) obj[1]);
// item.setStatus((Short) obj[0]);
//
// lst.add(item);
// }
return lst;
}
......@@ -70,37 +65,37 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
StringBuilder sqlStr = new StringBuilder();
sqlStr.append(SQLBuilder.getSqlQueryById(SQLBuilder.SQL_MODULE_CAMPAIGN_MNG, "search-campaign-by-params"));
if (!DataUtil.isNullOrEmpty(requestDto.getCampaignCode())) {
sqlStr.append(" AND UPPER(CAMPAIGN_CODE) LIKE :p_code");
sqlStr.append(" AND UPPER(a.CAMPAIGN_CODE) LIKE :p_code");
}
if (!DataUtil.isNullOrEmpty(requestDto.getCampaignName())) {
sqlStr.append(" AND UPPER(CAMPAIGN_NAME) LIKE :p_name");
sqlStr.append(" AND UPPER(a.CAMPAIGN_NAME) LIKE :p_name");
}
if (requestDto.getStatus() != null) {
sqlStr.append(" AND STATUS = :p_status");
sqlStr.append(" AND a.STATUS = :p_status");
}
if (requestDto.getFromDateFr() != null && DateTimeUtil.isValid(requestDto.getFromDateFr().getTime())) {
sqlStr.append(" AND START_TIME >= :p_frDateFr");
sqlStr.append(" AND a.START_TIME >= :p_frDateFr");
}
if (requestDto.getFromDateTo() != null && DateTimeUtil.isValid(requestDto.getFromDateTo().getTime())) {
sqlStr.append(" AND START_TIME <= :p_frDateTo");
sqlStr.append(" AND a.START_TIME <= :p_frDateTo");
}
if (requestDto.getToDateFr() != null && DateTimeUtil.isValid(requestDto.getToDateFr().getTime())) {
sqlStr.append(" AND END_TIME >= :p_toDateFr");
sqlStr.append(" AND a.END_TIME >= :p_toDateFr");
}
if (requestDto.getToDateTo() != null && DateTimeUtil.isValid(requestDto.getToDateTo().getTime())) {
sqlStr.append(" AND END_TIME <= :p_toDateTo");
sqlStr.append(" AND a.END_TIME <= :p_toDateTo");
}
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) {
// sqlStr.append(" AND ")
sqlStr.append(" AND a.CUSTOMER_NUMBER >= :p_cusNumFr");
}
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusTo())) {
sqlStr.append(" AND a.CUSTOMER_NUMBER <= :p_cusNumTo");
}
if (requestDto.getType() != null) {
sqlStr.append(" AND CAMPAIGN_TYPE = :p_type");
sqlStr.append(" AND a.CAMPAIGN_TYPE = :p_type");
}
if (requestDto.getChanel() != null) {
sqlStr.append(" AND CHANEL = :p_chanel");
sqlStr.append(" AND a.CHANEL = :p_chanel");
}
// Query query = entityManager.createNativeQuery(sqlStr.toString(), Campaign.class);
......@@ -144,6 +139,12 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (requestDto.getChanel() != null) {
query.setParameter("p_chanel", requestDto.getChanel());
}
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) {
query.setParameter("p_cusNumFr", requestDto.getNumOfCusFr());
}
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusTo())) {
query.setParameter("p_cusNumTo", requestDto.getNumOfCusTo());
}
query.addScalar("campaignId", new LongType());
query.addScalar("campaignCode", new StringType());
......@@ -154,6 +155,9 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
query.addScalar("endTime", new DateType());
query.addScalar("customerNumber", new LongType());
query.addScalar("status", new ShortType());
query.addScalar("numOfJoinedCus", new LongType());
query.addScalar("numOfNotJoinedCus", new LongType());
query.addScalar("numOfLockCus", new LongType());
query.setResultTransformer(Transformers.aliasToBean(CampaignDTO.class));
int count = 0;
......@@ -178,7 +182,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
}
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
return null;
return result;
}
private Pageable buildPageable(CampaignRequestDTO obj) {
......@@ -188,9 +192,4 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
pageable = new PageRequest(obj.getPage(), obj.getPageSize(), sort);
return pageable;
}
// private CampaignDTO mappingData(Object[] object) {
// CampaignDTO dto = new CampaignDTO();
//
// }
}
......@@ -32,10 +32,12 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
public Map listCompleteCodeByName(int page, int pageSize, String sort, String name) {
Map result = new HashMap();
List<CampaignCompleteCode> lst = new ArrayList<>();
List<CampaignCompleteCode> count = new ArrayList<>();
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);
return result;
......
package com.viettel.campaign.service;
import com.viettel.campaign.dto.ResultDTO;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
import com.viettel.campaign.model.Campaign;
import org.springframework.data.domain.Page;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import java.util.Map;
......
package com.viettel.campaign.service.impl;
import com.viettel.campaign.dto.CampaignDTO;
import com.viettel.campaign.dto.ResultDTO;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.repository.CampaignRepository;
import com.viettel.campaign.web.dto.CampaignDTO;
import com.viettel.campaign.service.CampaignService;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
......@@ -21,7 +21,7 @@ import java.util.Map;
@Service
public class CampaignServiceImpl implements CampaignService {
@Autowired
@Autowired(required=true)
CampaignRepository campaignRepository;
@Override
......@@ -33,7 +33,7 @@ public class CampaignServiceImpl implements CampaignService {
lst = campaignRepository.searchCampaignExecute(agentId, pageable);
result.put("totalItem", lst.size());
result.put("customers", lst);
result.put("data", lst);
return result;
}
......
package com.viettel.campaign.service.impl;
<<<<<<< HEAD:src/main/java/com/viettel/campaign/service/CampaignServiceImpl.java
import com.viettel.campaign.repository.CampaignRepository;
import com.viettel.campaign.web.dto.CampaignDTO;
=======
import com.viettel.campaign.dto.CampaignDTO;
import com.viettel.campaign.dto.ResultDTO;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.repository.CampaignRepository;
import com.viettel.campaign.service.CampaignService;
>>>>>>> anhvd_campaign_mng:src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class CampaignServiceImpl implements CampaignService {
@Autowired(required=true)
CampaignRepository campaignRepository;
@Override
public Map searchCampaignExecute(int page, int pageSize, String sort, String agentId) {
Map result = new HashMap();
List<CampaignDTO> lst = new ArrayList<>();
Pageable pageable = PageRequest.of(page, pageSize, Sort.by(sort));
lst = campaignRepository.searchCampaignExecute(agentId, pageable);
result.put("totalItem", lst.size());
result.put("data", lst);
return result;
}
@Override
public ResultDTO search(CampaignRequestDTO requestDto) {
return campaignRepository.search(requestDto);
}
}
......@@ -3,21 +3,22 @@ package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.Date;
@Getter
@Setter
public class CampaignDTO extends BaseDTO {
private Long campaignId;
private Long companySiteId;
private BigDecimal campaignId;
private BigDecimal companySiteId;
private String campaignCode;
private String campaignName;
private Short chanel;
private BigDecimal chanel;
private String content;
private Long customerNumber;
private BigDecimal customerNumber;
private String target;
private Short status;
private BigDecimal status;
private Date startTime;
private Date endTime;
private Integer maxRecall;
......@@ -30,27 +31,30 @@ public class CampaignDTO extends BaseDTO {
private String campaignType;
private String product;
private Integer processStatus;
private Short dialMode;
private BigDecimal dialMode;
private String deptCode;
private String timeRange;
private String dayOfWeek;
private Long currentTimeModel;
private Long wrapupTimeConnect;
private Long wrapupTimeDisconnect;
private Long previewTime;
private Long rateDial;
private Long rateMiss;
private Long avgTimeProcess;
private Long isApplyCustLock;
private Long targetType;
private Long isTarget;
private Long campaignIvrCalledId;
private Long concurrentCall;
private BigDecimal currentTimeModel;
private BigDecimal wrapupTimeConnect;
private BigDecimal wrapupTimeDisconnect;
private BigDecimal previewTime;
private BigDecimal rateDial;
private BigDecimal rateMiss;
private BigDecimal avgTimeProcess;
private BigDecimal isApplyCustLock;
private BigDecimal targetType;
private BigDecimal isTarget;
private BigDecimal campaignIvrCalledId;
private BigDecimal concurrentCall;
private String callOutTimeInDay;
private String musicList;
private Integer timePlayMusic;
private Date campaignStart;
private Date campaignEnd;
private Integer timeWaitAgent;
private Long questIndex;
private BigDecimal questIndex;
private Long numOfJoinedCus;
private Long numOfNotJoinedCus;
private Long numOfLockCus;
}
......@@ -9,7 +9,6 @@ import java.util.List;
@Getter
@Setter
public class ResultDTO {
private String errorCode;
private String description;
private List<?> listData = new ArrayList();
......
package com.viettel.campaign.dto.request_dto;
package com.viettel.campaign.web.dto.request_dto;
import com.viettel.campaign.dto.BaseDTO;
import com.viettel.campaign.web.dto.BaseDTO;
import lombok.Getter;
import lombok.Setter;
......
package com.viettel.campaign.web.rest.controller;
import com.viettel.campaign.dto.ResultDTO;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.service.CampaignService;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.data.domain.Page;
......@@ -15,6 +16,7 @@ import java.util.Map;
@RestController
@RequestMapping("/ipcc/campaign")
@CrossOrigin
public class CampaignController {
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