Commit 3933b412 authored by Tu Bach's avatar Tu Bach

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

# Conflicts:
#	src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
#	src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
#	src/main/java/com/viettel/campaign/service/CampaignService.java
#	src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
#	src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
parents ae0b0d94 9584ba55
target/
/.idea/
logs/
out/
\ No newline at end of file
out/
/campaign.iml
File added
......@@ -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>
......
......@@ -72,7 +72,7 @@ public class JobConfig implements SchedulingConfigurer {
job2 = scheduler.schedule(() -> {
// log.info("processing job2 ...");
// log.info(Thread.currentThread().getName() + " The Task2 executed at " + new Date());
campaignJob().process();
// campaignJob().process();
}, triggerContext -> {
String cronExp = "0/1 * * * * ?";// Can be pulled from a db . This will run every minute
......
......@@ -17,7 +17,7 @@ public class CampaignJob {
// @Scheduled(fixedRate = 6000)
// @Transactional( propagation = Propagation.REQUIRED)
public void process() {
log.info("processing job2 ..."+ dateFormat.format(new Date()));
}
// public void process() {
// log.info("processing job2 ..."+ dateFormat.format(new Date()));
// }
}
package com.viettel.campaign.mapper;
import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.web.dto.CustomerListDTO;
public class CustomerListMapper extends BaseMapper<CustomerList, CustomerListDTO> {
@Override
public CustomerListDTO toDtoBean(CustomerList customerList) {
CustomerListDTO obj = new CustomerListDTO();
if (customerList != null) {
obj.setCreateAt(customerList.getCreateAt());
obj.setCreateBy(customerList.getCreateBy());
obj.setCustomerListCode(customerList.getCustomerListCode());
obj.setCustomerListId(customerList.getCustomerListId());
obj.setCustomerSiteId(customerList.getCustomerSiteId());
obj.setCustomerListName(customerList.getCustomerListName());
obj.setDeptCreate(customerList.getDeptCreate());
obj.setSource(customerList.getSource());
obj.setStatus(customerList.getStatus());
obj.setUpdateAt(customerList.getUpdateAt());
obj.setUpdateBy(customerList.getUpdateBy());
}
return obj;
}
@Override
public CustomerList toPersistenceBean(CustomerListDTO dtoBean) {
CustomerList obj = new CustomerList();
if (dtoBean != null) {
obj.setCreateAt(dtoBean.getCreateAt());
obj.setCreateBy(dtoBean.getCreateBy());
obj.setCustomerListCode(dtoBean.getCustomerListCode());
obj.setCustomerListId(dtoBean.getCustomerListId());
obj.setCustomerListName(dtoBean.getCustomerListName());
obj.setCustomerSiteId(dtoBean.getCustomerSiteId());
obj.setDeptCreate(dtoBean.getDeptCreate());
obj.setSource(dtoBean.getSource());
obj.setStatus(dtoBean.getStatus());
obj.setUpdateAt(dtoBean.getUpdateAt());
obj.setUpdateBy(dtoBean.getUpdateBy());
}
return obj;
}
}
package com.viettel.campaign.repository;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
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.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;
......
package com.viettel.campaign.repository;
import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.web.dto.ResultDTO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface CustomerListRepository extends JpaRepository<CustomerList, Long> {
CustomerList findCustomerListByCustomerListId(long customerListId);
@Query("delete from CustomerList c where c.customerListId in :ids")
ResultDTO deleteIds(@Param("ids") List<Long> ids);
}
......@@ -19,4 +19,5 @@ public interface CustomerRepository extends JpaRepository<Customer, Long> {
@Query("SELECT COUNT(0) FROM Customer t WHERE t.mobileNumber = ?1 and t.siteId = ?2 and t.status = 1 ")
Long findByMobileNumberAndSiteId(String mobileNumber, Long siteId);
}
package com.viettel.campaign.repository.impl;
import com.viettel.campaign.model.CampaignCompleteCode;
import com.viettel.campaign.repository.CampaignCompleteCodeRepository;
import com.viettel.campaign.utils.HibernateUtil;
import com.viettel.campaign.utils.SQLBuilder;
import com.viettel.campaign.web.dto.CampaignCompleteCodeDTO;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;
import org.hibernate.type.LongType;
import org.hibernate.type.ShortType;
import org.hibernate.type.StringType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import javax.persistence.EntityManager;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeRepository {
@Autowired
EntityManager entityManager;
CampaignCompleteCodeRepository campaignCompleteCodeRepository;
private Logger log = LoggerFactory.getLogger(CampaignCompleteCodeRepositoryIpml.class);
@Override
public Page<CampaignCompleteCode> findAll(Pageable pageable) {
return campaignCompleteCodeRepository.findAll(pageable);
}
@Override
public List<CampaignCompleteCode> findByName(String name, Pageable pageable) {
// return campaignCompleteCodeRepository.findByName(name , pageable);
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
List<CampaignCompleteCode> resultList = null;
try {
StringBuilder sql = new StringBuilder(SQLBuilder.getSqlQueryById(SQLBuilder.SQL_MODULE_CAMPAIGN_STATUS_MNG, "search-campaign-status-by-params"));
SQLQuery query = session.createSQLQuery(sql.toString());
query.setParameter(":p_name", name);
// add SCalar
query.addScalar("campaignId", new LongType());
query.addScalar("completeValue", new StringType());
query.addScalar("completeName", new StringType());
query.addScalar("completeType", new StringType());
query.addScalar("chanel", new ShortType());
query.addScalar("description", new StringType());
query.addScalar("status", new ShortType());
query.setResultTransformer(Transformers.aliasToBean(CampaignCompleteCodeDTO.class));
resultList = query.list();
} catch (Exception e) {
session.close();
log.error(e.getMessage(), e);
}
return resultList;
}
@Override
public List<CampaignCompleteCode> findByCompleteNameContains(String Name, Pageable pageable) {
// List<CampaignCompleteCodeDTO> lst = new ArrayList<>();
// return lst;
return null;
}
@Override
public List<CampaignCompleteCode> findAll() {
return campaignCompleteCodeRepository.findAll();
}
@Override
public List<CampaignCompleteCode> findAll(Sort sort) {
return campaignCompleteCodeRepository.findAll();
}
@Override
public List<CampaignCompleteCode> findAllById(Iterable<Long> iterable) {
return null;
}
@Override
public long count() {
return 0;
}
@Override
public void deleteById(Long aLong) {
}
@Override
public void delete(CampaignCompleteCode campaignCompleteCode) {
}
@Override
public void deleteAll(Iterable<? extends CampaignCompleteCode> iterable) {
}
@Override
public void deleteAll() {
}
@Override
public <S extends CampaignCompleteCode> S save(S s) {
return null;
}
@Override
public <S extends CampaignCompleteCode> List<S> saveAll(Iterable<S> iterable) {
return null;
}
@Override
public Optional<CampaignCompleteCode> findById(Long aLong) {
return Optional.empty();
}
@Override
public boolean existsById(Long aLong) {
return false;
}
@Override
public void flush() {
}
@Override
public <S extends CampaignCompleteCode> S saveAndFlush(S s) {
return null;
}
@Override
public void deleteInBatch(Iterable<CampaignCompleteCode> iterable) {
}
@Override
public void deleteAllInBatch() {
}
@Override
public CampaignCompleteCode getOne(Long aLong) {
return null;
}
@Override
public <S extends CampaignCompleteCode> Optional<S> findOne(Example<S> example) {
return Optional.empty();
}
@Override
public <S extends CampaignCompleteCode> List<S> findAll(Example<S> example) {
return null;
}
@Override
public <S extends CampaignCompleteCode> List<S> findAll(Example<S> example, Sort sort) {
return null;
}
@Override
public <S extends CampaignCompleteCode> Page<S> findAll(Example<S> example, Pageable pageable) {
return null;
}
@Override
public <S extends CampaignCompleteCode> long count(Example<S> example) {
return 0;
}
@Override
public <S extends CampaignCompleteCode> boolean exists(Example<S> example) {
return false;
}
}
package com.viettel.campaign.repository.impl;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
import com.viettel.campaign.repository.CampaignRepositoryCustom;
import com.viettel.campaign.utils.*;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.utils.HibernateUtil;
import com.viettel.campaign.utils.SQLBuilder;
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;
......@@ -83,40 +86,47 @@ 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");
if (requestDto.getStatus() != null && requestDto.getStatus() > 0) {
sqlStr.append(" AND a.STATUS = :p_status");
}
if (requestDto.getFromDateFr() != null && DateTimeUtil.isValid(requestDto.getFromDateFr().getTime())) {
sqlStr.append(" AND START_TIME >= :p_frDateFr");
if (!DataUtil.isNullOrEmpty(requestDto.getFromDateFr())) {
sqlStr.append(" AND TO_DATE(a.START_TIME, 'DD/MM/YYYY') >= :p_frDateFr");
}
if (requestDto.getFromDateTo() != null && DateTimeUtil.isValid(requestDto.getFromDateTo().getTime())) {
sqlStr.append(" AND START_TIME <= :p_frDateTo");
if (!DataUtil.isNullOrEmpty(requestDto.getFromDateTo())) {
sqlStr.append(" AND TO_DATE(a.START_TIME, 'DD/MM/YYYY') <= :p_frDateTo");
}
if (requestDto.getToDateFr() != null && DateTimeUtil.isValid(requestDto.getToDateFr().getTime())) {
sqlStr.append(" AND END_TIME >= :p_toDateFr");
if (!DataUtil.isNullOrEmpty(requestDto.getToDateFr())) {
sqlStr.append(" AND TO_DATE(a.END_TIME, 'DD/MM/YYYY') >= :p_toDateFr");
}
if (requestDto.getToDateTo() != null && DateTimeUtil.isValid(requestDto.getToDateTo().getTime())) {
sqlStr.append(" AND END_TIME <= :p_toDateTo");
if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) {
sqlStr.append(" AND TO_DATE(a.END_TIME, 'DD/MM/YYYY') <= :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 && requestDto.getChanel() > 0) {
sqlStr.append(" AND a.CHANEL = :p_chanel");
}
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) {
sqlStr.append(" AND a.CUSTOMER_NUMBER >= :p_cusNumFr");
}
if (requestDto.getChanel() != null) {
sqlStr.append(" AND CHANEL = :p_chanel");
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusTo())) {
sqlStr.append(" AND a.CUSTOMER_NUMBER <= :p_cusNumTo");
}
// Query query = entityManager.createNativeQuery(sqlStr.toString(), Campaign.class);
sqlStr.append(" ORDER BY a.START_TIME DESC ");
SQLQuery query = session.createSQLQuery(sqlStr.toString());
if (!DataUtil.isNullOrEmpty(requestDto.getCampaignCode())) {
query.setParameter("p_code", "%" +
......@@ -136,37 +146,46 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
+ "%");
}
if (requestDto.getStatus() != null) {
if (requestDto.getStatus() != null && requestDto.getStatus() > 0) {
query.setParameter("p_status", requestDto.getStatus());
}
if (requestDto.getFromDateFr() != null && DateTimeUtil.isValid(requestDto.getFromDateFr().getTime())) {
if (!DataUtil.isNullOrEmpty(requestDto.getFromDateFr())) {
query.setParameter("p_frDateFr", requestDto.getFromDateFr());
}
if (requestDto.getFromDateTo() != null && DateTimeUtil.isValid(requestDto.getFromDateTo().getTime())) {
if (!DataUtil.isNullOrEmpty(requestDto.getFromDateTo())) {
query.setParameter("p_frDateTo", requestDto.getFromDateTo());
}
if (requestDto.getToDateFr() != null && DateTimeUtil.isValid(requestDto.getToDateFr().getTime())) {
if (!DataUtil.isNullOrEmpty(requestDto.getToDateFr())) {
query.setParameter("p_toDateFr", requestDto.getToDateFr());
}
if (requestDto.getToDateTo() != null && DateTimeUtil.isValid(requestDto.getToDateTo().getTime())) {
if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) {
query.setParameter("p_toDateTo", requestDto.getToDateTo());
}
if (requestDto.getType() != null) {
query.setParameter("p_type", requestDto.getType());
}
if (requestDto.getChanel() != null) {
if (requestDto.getChanel() != null && requestDto.getChanel() > 0) {
query.setParameter("p_chanel", requestDto.getChanel());
}
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) {
query.setParameter("p_cusNumFr", requestDto.getNumOfCusFr() == 0 ? null : requestDto.getNumOfCusFr());
}
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusTo())) {
query.setParameter("p_cusNumTo", requestDto.getNumOfCusTo() == 0 ? null : requestDto.getNumOfCusTo());
}
query.addScalar("campaignId", new LongType());
query.addScalar("campaignId", new BigDecimalType());
query.addScalar("campaignCode", new StringType());
query.addScalar("campaignName", new StringType());
query.addScalar("campaignType", new StringType());
query.addScalar("chanel", new ShortType());
query.addScalar("startTime", new DateType());
query.addScalar("endTime", new DateType());
query.addScalar("customerNumber", new LongType());
query.addScalar("customerNumber", new BigDecimalType());
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;
......@@ -196,14 +215,13 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
private Pageable buildPageable(CampaignRequestDTO obj) {
Pageable pageable = null;
String[] sorts = obj.getSort().split(",");
Sort sort = new Sort(Sort.Direction.fromString(sorts[1]), sorts[0]);
pageable = new PageRequest(obj.getPage(), obj.getPageSize(), sort);
if (DataUtil.isNullOrEmpty(obj.getSort())) {
pageable = new PageRequest(obj.getPage(), obj.getPageSize(), null);
} else {
String[] sorts = obj.getSort().split(",");
Sort sort = new Sort(Sort.Direction.fromString(sorts[1]), sorts[0]);
pageable = new PageRequest(obj.getPage(), obj.getPageSize(), sort);
}
return pageable;
}
// private CampaignDTO mappingData(Object[] object) {
// CampaignDTO dto = new CampaignDTO();
//
// }
}
package com.viettel.campaign.service;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import java.util.Map;
public interface CampaignService {
Map searchCampaignExecute(int page, int pageSize, String sort, String agentId);
ResultDTO search(CampaignRequestDTO requestDto);
}
package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import java.util.List;
import java.util.Map;
public interface CustomerListService {
Map getCustomerList(int page, int pageSize, String sort);
ResultDTO createCustomerList(CustomerListDTO customerListDTO);
ResultDTO updateCustomerList(CustomerListDTO customerListDTO);
ResultDTO deleteCustomerList(CustomerListDTO customerListDTO);
ResultDTO deleteIds(List<Long> ids);
}
package com.viettel.campaign.service;
import com.viettel.campaign.mapper.CustomerListMapper;
import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.repository.CustomerListRepository;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO;
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 javax.persistence.EntityManager;
import java.util.*;
@Service
public class CustomerListServiceImpl implements CustomerListService {
@Autowired
EntityManager entityManager;
@Autowired
CustomerListRepository customerListRepository;
@Override
public Map getCustomerList(int page, int pageSize, String sort) {
Map result = new HashMap();
List<CustomerList> list = new ArrayList<>();
Pageable pageable = PageRequest.of(page, pageSize, Sort.by(sort));
Page<CustomerList> pc = customerListRepository.findAll(pageable);
result.put("totalItem", pc.getTotalElements());
result.put("customerList", pc.iterator());
return result;
}
@Override
public ResultDTO createCustomerList(CustomerListDTO customerListDTO) {
ResultDTO resultDTO = new ResultDTO();
CustomerListMapper customerListMapper = new CustomerListMapper();
Date today = new Date();
CustomerList customerList = new CustomerList();
try {
if (customerListDTO != null) {
// insert
customerList = customerListMapper.toPersistenceBean(customerListDTO);
customerListRepository.save(customerList);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
} catch (Exception e) {
e.printStackTrace();
}
return resultDTO;
}
@Override
public ResultDTO updateCustomerList(CustomerListDTO customerListDTO) {
ResultDTO resultDTO = new ResultDTO();
CustomerListMapper customerListMapper = new CustomerListMapper();
Date today = new Date();
CustomerList customerList = customerListRepository.findCustomerListByCustomerListId(customerListDTO.getCustomerListId());
try {
if (customerListDTO != null) {
// update
customerList = customerListMapper.toPersistenceBean(customerListDTO);
customerList = customerListRepository.save(customerList);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
} catch (Exception e) {
e.printStackTrace();
}
return resultDTO;
}
@Override
public ResultDTO deleteCustomerList(CustomerListDTO customerListDTO) {
ResultDTO resultDTO = new ResultDTO();
CustomerListMapper customerListMapper = new CustomerListMapper();
Date today = new Date();
CustomerList customerList = new CustomerList();
try {
if (customerListDTO != null) {
// delete
customerListRepository.deleteById(customerListDTO.getCustomerListId());
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
} catch (Exception e) {
e.printStackTrace();
}
return resultDTO;
}
@Override
public ResultDTO deleteIds(List<Long> ids) {
ResultDTO resultDTO = new ResultDTO();
try {
if (ids != null) {
customerListRepository.deleteIds(ids);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
package com.viettel.campaign.service.impl;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
import com.viettel.campaign.repository.CampaignRepository;
import com.viettel.campaign.service.CampaignService;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
......
......@@ -10,6 +10,7 @@ import org.springframework.core.io.ClassPathResource;
*/
public class SQLBuilder {
public static final String SQL_MODULE_CAMPAIGN_MNG = "campaign-mng";
public static final String SQL_MODULE_CAMPAIGN_STATUS_MNG = "campaign-status-mng";
public static String getSqlQueryById(String module,
String queryId) {
......
......@@ -14,11 +14,11 @@ public class CampaignDTO extends BaseDTO {
private BigDecimal companySiteId;
private String campaignCode;
private String campaignName;
private BigDecimal chanel;
private Short chanel;
private String content;
private BigDecimal customerNumber;
private String target;
private BigDecimal status;
private Short status;
private Date startTime;
private Date endTime;
private Integer maxRecall;
......@@ -54,4 +54,7 @@ public class CampaignDTO extends BaseDTO {
private Date campaignEnd;
private Integer timeWaitAgent;
private BigDecimal questIndex;
private Long numOfJoinedCus;
private Long numOfNotJoinedCus;
private Long numOfLockCus;
}
......@@ -3,20 +3,22 @@ package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class CustomerListDTO extends BaseDTO {
private String customerListId;
private String customerListPK;
private String customerSiteId;
private long customerListId;
// private String customerListPK;
private long customerSiteId;
private String customerListCode;
private String customerListName;
private String status;
private short status;
private String createBy;
private String createAt;
private Date createAt;
private String updateBy;
private String updateAt;
private Date updateAt;
private String source;
private String deptCreate;
}
......@@ -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.web.dto.BaseDTO;
import lombok.Getter;
......@@ -17,10 +17,10 @@ public class CampaignRequestDTO extends BaseDTO {
String campaignCode;
String campaignName;
Short status;
Date fromDateFr;
Date fromDateTo;
Date toDateTo;
Date toDateFr;
String fromDateFr;
String fromDateTo;
String toDateTo;
String toDateFr;
Long numOfCusFr;
Long numOfCusTo;
Short type;
......
......@@ -15,8 +15,8 @@ import java.util.Map;
@Controller
@RequestMapping("/ipcc/completeCode")
@CrossOrigin(origins = "*")
public class CampaignCompleteCodeController {
private static final Logger LOGGER = Logger.getLogger(CustomerController.class);
@Autowired
......
......@@ -15,6 +15,7 @@ import java.util.Map;
@Controller
@RequestMapping("/ipcc/customer")
@CrossOrigin("*")
public class CustomerController {
private static final Logger LOGGER = Logger.getLogger(CustomerController.class);
......
package com.viettel.campaign.web.rest;
import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.service.CustomerListService;
import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO;
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 javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping(path = "/ipcc/customerlist")
@CrossOrigin(origins = "*")
public class CustomerListController {
@Autowired(required=true)
CustomerListService customerListService;
@GetMapping("/findAll")
@ResponseBody
public ResponseEntity findAllCustomerList(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("sort") String sort) {
Map result = customerListService.getCustomerList(page, pageSize, sort);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@PostMapping("/create")
@ResponseBody
public ResultDTO createCustomerList(@RequestBody @Valid CustomerListDTO customerListDTO) {
ResultDTO result = new ResultDTO();
//LogUtil logUtil = new LogUtil();
//logUtil.initKpiLog("createCust")
try {
//LOGGER.info("Returning createCustomer: start");
result = customerListService.createCustomerList(customerListDTO);
//LOGGER.info("Returning createCustomer:" + result.getErrorCode());
//logUtil.endKpiLog(customerDTO, 0, result.getErrorCode(), result.getDetail(), CustomerController.class, customerDTO.getAgentProcess(), this.serverPort);
} catch (Exception e) {
result.setErrorCode("-1");
// LOGGER.error(e);
//logUtil.endKpiLog(customerDTO, 1, result.getErrorCode(), e.getMessage(), CustomerController.class, customerDTO.getAgentProcess(), this.serverPort);
}
return result;
// return new ResponseEntity<>("", HttpStatus.OK);
}
@PutMapping("/update")
@ResponseBody
public ResultDTO updateCompleteCode(@RequestBody @Valid CustomerListDTO customerListDTO) {
ResultDTO result = new ResultDTO();
//LogUtil logUtil = new LogUtil();
//logUtil.initKpiLog("createCust");
try {
//LOGGER.info("Returning createCustomer: start");
result = customerListService.updateCustomerList(customerListDTO);
//LOGGER.info("Returning createCustomer:" + result.getErrorCode());
//logUtil.endKpiLog(customerDTO, 0, result.getErrorCode(), result.getDetail(), CustomerController.class, customerDTO.getAgentProcess(), this.serverPort);
} catch (Exception e) {
result.setErrorCode("-1");
// LOGGER.error(e);
//logUtil.endKpiLog(customerDTO, 1, result.getErrorCode(), e.getMessage(), CustomerController.class, customerDTO.getAgentProcess(), this.serverPort);
}
return result;
}
@PostMapping("/delete")
@ResponseBody
public ResultDTO deleteCompleteCode(@RequestBody @Valid CustomerListDTO customerListDTO) {
ResultDTO result = new ResultDTO();
result = customerListService.deleteCustomerList(customerListDTO);
return result;
}
@PostMapping("/ids")
@ResponseBody
public ResultDTO deleteIds(@RequestBody @Valid List<CustomerListDTO> customerListDTOList) {
List<Long> ids = new ArrayList<>();
ResultDTO result = new ResultDTO();
for (CustomerListDTO customerList: customerListDTOList) {
ids.add(customerList.getCustomerListId());
}
result = customerListService.deleteIds(ids);
return result;
}
}
package com.viettel.campaign.web.rest.controller;
import com.viettel.campaign.dto.request_dto.CampaignRequestDTO;
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;
......@@ -28,7 +28,7 @@ public class CampaignController {
return new ResponseEntity<>(result, HttpStatus.OK);
}
@RequestMapping(value = "/search",method = RequestMethod.POST)
@RequestMapping(value = "/search", method = RequestMethod.POST)
public ResponseEntity<ResultDTO> search(@RequestBody CampaignRequestDTO requestDto) {
ResultDTO result = campaignService.search(requestDto);
return new ResponseEntity<>(result, HttpStatus.OK);
......
SELECT
CAMPAIGN_ID campaignId,
CAMPAIGN_CODE campaignCode,
CAMPAIGN_NAME campaignName,
CAMPAIGN_TYPE campaignType,
CHANEL chanel,
START_TIME startTime,
END_TIME endTime,
CUSTOMER_NUMBER customerNumber,
STATUS status
FROM CAMPAIGN
a.CAMPAIGN_ID campaignId,
a.CAMPAIGN_CODE campaignCode,
a.CAMPAIGN_NAME campaignName,
a.CAMPAIGN_TYPE campaignType,
a.CHANEL chanel,
a.START_TIME startTime,
a.END_TIME endTime,
a.CUSTOMER_NUMBER customerNumber,
a.STATUS status,
a.CUSTOMER_NUMBER cusNum,
b.SLKHThamgiaCD numOfJoinedCus,
c.SLKHChuaTuongTac numOfNotJoinedCus,
d.SLKHDoNotCall_Khoa numOfLockCus
FROM CAMPAIGN a
LEFT JOIN (SELECT campaign_id, COUNT (*) AS SLKHThamgiaCD
FROM campaign_customer cc INNER JOIN CUSTOMER cus ON cc.CUSTOMER_ID = cus.CUSTOMER_ID
WHERE 1 = 1 AND cc.IN_CAMPAIGN_STATUS = 1 AND cus.STATUS = 1
group by campaign_id) b
ON a.CAMPAIGN_ID = b.CAMPAIGN_ID
LEFT JOIN (SELECT campaign_id, COUNT (*) AS SLKHChuaTuongTac
FROM campaign_customer cc INNER JOIN CUSTOMER cus ON cc.CUSTOMER_ID = cus.CUSTOMER_ID
WHERE 1 = 1 AND cc.STATUS <> 0 AND cus.STATUS = 1
group by campaign_id) c
ON c.CAMPAIGN_ID = a.CAMPAIGN_ID
LEFT JOIN (SELECT cc.campaign_id, count(*) AS SLKHDoNotCall_Khoa
FROM CAMPAIGN_CUSTOMER cc , CUSTOMER c
WHERE cc.CUSTOMER_ID = c.CUSTOMER_ID
AND (c.IPCC_STATUS = 'locked' or c.CALL_ALLOWED = 0) AND cc.STATUS = 1
GROUP BY cc.CAMPAIGN_ID) d
ON d.CAMPAIGN_ID = a.CAMPAIGN_ID
WHERE 1 = 1
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