Commit 4bedb387 authored by Vu Duy Anh's avatar Vu Duy Anh

anhvd commit source

parents d69ad242 8fcc4f8f
...@@ -6,9 +6,11 @@ import org.springframework.data.domain.Pageable; ...@@ -6,9 +6,11 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
@Repository
public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParamRepositoryCustom { public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParamRepositoryCustom {
Page<ApParam> findAll(Pageable pageable); Page<ApParam> findAll(Pageable pageable);
......
package com.viettel.campaign.repository; package com.viettel.campaign.repository;
import com.viettel.campaign.model.ApParam; import com.viettel.campaign.model.ApParam;
import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
@Repository
public interface ApParamRepositoryCustom { public interface ApParamRepositoryCustom {
} }
...@@ -6,9 +6,11 @@ import org.springframework.data.domain.Pageable; ...@@ -6,9 +6,11 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
@Repository
public interface CampaignCompleteCodeRepository extends JpaRepository<CampaignCompleteCode, Long> { public interface CampaignCompleteCodeRepository extends JpaRepository<CampaignCompleteCode, Long> {
Page<CampaignCompleteCode> findAll(Pageable pageable); Page<CampaignCompleteCode> findAll(Pageable pageable);
......
...@@ -4,11 +4,14 @@ import com.viettel.campaign.web.dto.CampaignDTO; ...@@ -4,11 +4,14 @@ import com.viettel.campaign.web.dto.CampaignDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
@Repository
public interface CampaignRepositoryCustom { public interface CampaignRepositoryCustom {
List<CampaignDTO> searchCampaignExecute(String agentId, Pageable pageable); List<CampaignDTO> searchCampaignExecute(String agentId, Pageable pageable);
ResultDTO search(CampaignRequestDTO requestDto); ResultDTO search(CampaignRequestDTO requestDto);
ResultDTO findByCompanySiteId(CampaignRequestDTO requestDTO); ResultDTO findByCompanySiteId(CampaignRequestDTO requestDTO);
} }
...@@ -3,14 +3,19 @@ package com.viettel.campaign.repository; ...@@ -3,14 +3,19 @@ package com.viettel.campaign.repository;
import com.viettel.campaign.model.CustomerList; import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import java.util.List; import java.util.List;
public interface CustomerListRepository extends JpaRepository<CustomerList, Long> { public interface CustomerListRepository extends JpaRepository<CustomerList, Long> {
CustomerList findCustomerListByCustomerListId(long customerListId); CustomerList findCustomerListByCustomerListId(long customerListId);
@Query("delete from CustomerList c where c.customerListId in :ids") CustomerList findByCustomerListCode(String customerListCode);
ResultDTO deleteIds(@Param("ids") List<Long> ids);
@Modifying
@Query("delete from CustomerList c where c.customerListId in (:ids)")
int deleteIds(@Param("ids") List<Long> ids);
} }
...@@ -5,9 +5,11 @@ import org.springframework.data.domain.Page; ...@@ -5,9 +5,11 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
@Repository
public interface CustomerRepository extends JpaRepository<Customer, Long> { public interface CustomerRepository extends JpaRepository<Customer, Long> {
Page<Customer> findAll(Pageable pageable); Page<Customer> findAll(Pageable pageable);
......
package com.viettel.campaign.repository; package com.viettel.campaign.repository.impl;
import com.viettel.campaign.model.ApParam; import com.viettel.campaign.model.ApParam;
import com.viettel.campaign.repository.ApParamRepositoryCustom;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
......
package com.viettel.campaign.repository.impl; package com.viettel.campaign.repository.impl;
import com.viettel.campaign.repository.CampaignRepositoryCustom; 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.CampaignDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
...@@ -15,7 +18,10 @@ import org.springframework.data.domain.*; ...@@ -15,7 +18,10 @@ import org.springframework.data.domain.*;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
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;
@Repository @Repository
...@@ -27,28 +33,43 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -27,28 +33,43 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@Override @Override
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.CAMPAIGN_ID, C.CAMPAIGN_NAME, C.CONTENT, C.START_TIME, C.END_TIME, C.STATUS ")
// .append(" FROM CAMPAIGN C ") //.append(" SELECT CAMPAIGN_COMPLETE_CODE_ID AS 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 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 ")
// .toString(); .append(" AND C.STATUS IN (2,3) ")
// .toString();
// Query query = entityManager.createNativeQuery(expression);
// query.setParameter("pAgentId", agentId); try {
// Query query = entityManager.createNativeQuery(expression);
// List<Object[]> data = query.getResultList(); //query.setParameter("pAgentId", agentId);
//
// for (Object[] obj : data) { if (pageable != null) {
// CampaignDTO item = new CampaignDTO(); query.setFirstResult(pageable.getPageNumber() * pageable.getPageSize());
// item.setCampaignId((Long) obj[0]); query.setMaxResults(pageable.getPageSize());
// item.setCampaignName((String) obj[1]); }
// item.setStatus((Short) obj[0]);
// List<Object[]> data = query.getResultList();
// lst.add(item);
// } for (Object[] obj : data) {
CampaignDTO item = new CampaignDTO();
item.setCampaignId((BigDecimal) obj[0]);
item.setCampaignName((String) obj[1]);
item.setContent((String) obj[2]);
item.setStartTime((Date) obj[3]);
item.setEndTime((Date) obj[4]);
item.setStatus((Short) obj[5]);
lst.add(item);
}
return lst;
} catch (Exception e) {
e.printStackTrace();
}
return lst; return lst;
} }
...@@ -102,10 +123,10 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -102,10 +123,10 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (requestDto.getChanel() != null && requestDto.getChanel() > 0) { if (requestDto.getChanel() != null && requestDto.getChanel() > 0) {
sqlStr.append(" AND a.CHANEL = :p_chanel"); sqlStr.append(" AND a.CHANEL = :p_chanel");
} }
if(!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) { if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) {
sqlStr.append(" AND a.CUSTOMER_NUMBER >= :p_cusNumFr"); sqlStr.append(" AND a.CUSTOMER_NUMBER >= :p_cusNumFr");
} }
if(!DataUtil.isNullOrZero(requestDto.getNumOfCusTo())) { if (!DataUtil.isNullOrZero(requestDto.getNumOfCusTo())) {
sqlStr.append(" AND a.CUSTOMER_NUMBER <= :p_cusNumTo"); sqlStr.append(" AND a.CUSTOMER_NUMBER <= :p_cusNumTo");
} }
...@@ -141,7 +162,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -141,7 +162,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (!DataUtil.isNullOrEmpty(requestDto.getFromDateTo())) { if (!DataUtil.isNullOrEmpty(requestDto.getFromDateTo())) {
query.setParameter("p_frDateTo", requestDto.getFromDateTo()); query.setParameter("p_frDateTo", requestDto.getFromDateTo());
} }
if (!DataUtil.isNullOrEmpty(requestDto.getToDateFr())) { if (!DataUtil.isNullOrEmpty(requestDto.getToDateFr())) {
query.setParameter("p_toDateFr", requestDto.getToDateFr()); query.setParameter("p_toDateFr", requestDto.getToDateFr());
} }
if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) { if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) {
...@@ -262,9 +283,9 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -262,9 +283,9 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
private Pageable buildPageable(CampaignRequestDTO obj) { private Pageable buildPageable(CampaignRequestDTO obj) {
Pageable pageable = null; Pageable pageable = null;
if(DataUtil.isNullOrEmpty(obj.getSort())){ if (DataUtil.isNullOrEmpty(obj.getSort())) {
pageable = new PageRequest(obj.getPage(), obj.getPageSize(), null); pageable = new PageRequest(obj.getPage(), obj.getPageSize(), null);
}else { } else {
String[] sorts = obj.getSort().split(","); String[] sorts = obj.getSort().split(",");
Sort sort = new Sort(Sort.Direction.fromString(sorts[1]), sorts[0]); Sort sort = new Sort(Sort.Direction.fromString(sorts[1]), sorts[0]);
pageable = new PageRequest(obj.getPage(), obj.getPageSize(), sort); pageable = new PageRequest(obj.getPage(), obj.getPageSize(), sort);
......
package com.viettel.campaign.service; package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
...@@ -8,6 +7,7 @@ import java.util.Map; ...@@ -8,6 +7,7 @@ import java.util.Map;
public interface CampaignService { public interface CampaignService {
Map searchCampaignExecute(int page, int pageSize, String sort, String agentId); Map searchCampaignExecute(int page, int pageSize, String sort, String agentId);
ResultDTO search(CampaignRequestDTO requestDto); ResultDTO search(CampaignRequestDTO requestDto);
ResultDTO findByCompanySiteId(CampaignRequestDTO requestDTO); ResultDTO findByCompanySiteId(CampaignRequestDTO requestDTO);
} }
...@@ -12,6 +12,7 @@ import org.springframework.data.domain.PageRequest; ...@@ -12,6 +12,7 @@ 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 org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import java.util.*; import java.util.*;
...@@ -49,11 +50,17 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -49,11 +50,17 @@ public class CustomerListServiceImpl implements CustomerListService {
try { try {
if (customerListDTO != null) { if (customerListDTO != null) {
// insert // insert
customerList = customerListMapper.toPersistenceBean(customerListDTO); CustomerList findCustomer = customerListRepository.findByCustomerListCode(customerListDTO.getCustomerListCode());
customerListRepository.save(customerList); if (findCustomer == null) {
customerList = customerListMapper.toPersistenceBean(customerListDTO);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); customerListRepository.save(customerList);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
} else { } else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR); resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR); resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
...@@ -116,6 +123,7 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -116,6 +123,7 @@ public class CustomerListServiceImpl implements CustomerListService {
return resultDTO; return resultDTO;
} }
@Transactional
@Override @Override
public ResultDTO deleteIds(List<Long> ids) { public ResultDTO deleteIds(List<Long> ids) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
...@@ -131,6 +139,6 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -131,6 +139,6 @@ public class CustomerListServiceImpl implements CustomerListService {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return null; return resultDTO;
} }
} }
package com.viettel.campaign.service; package com.viettel.campaign.service.impl;
import com.viettel.campaign.service.ApParamService;
import com.viettel.campaign.web.dto.ApParamDTO; import com.viettel.campaign.web.dto.ApParamDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.mapper.ApParamMapper; import com.viettel.campaign.mapper.ApParamMapper;
......
package com.viettel.campaign.service; package com.viettel.campaign.service.impl;
import com.viettel.campaign.service.CampaignCompleteCodeService;
import com.viettel.campaign.web.dto.CampaignCompleteCodeDTO; import com.viettel.campaign.web.dto.CampaignCompleteCodeDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.mapper.CampaignCompleteCodeMapper; import com.viettel.campaign.mapper.CampaignCompleteCodeMapper;
......
...@@ -2,19 +2,16 @@ package com.viettel.campaign.service.impl; ...@@ -2,19 +2,16 @@ package com.viettel.campaign.service.impl;
import com.viettel.campaign.model.Campaign; import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.repository.CampaignRepository; import com.viettel.campaign.repository.CampaignRepository;
import com.viettel.campaign.web.dto.CampaignDTO;
import com.viettel.campaign.service.CampaignService; 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.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO; import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
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 org.springframework.stereotype.Service;
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;
...@@ -22,18 +19,18 @@ import java.util.Map; ...@@ -22,18 +19,18 @@ import java.util.Map;
@Service @Service
public class CampaignServiceImpl implements CampaignService { public class CampaignServiceImpl implements CampaignService {
@Autowired(required=true) @Autowired
CampaignRepository campaignRepository; CampaignRepository campaignRepository;
@Override @Override
public Map searchCampaignExecute(int page, int pageSize, String sort, String agentId) { public Map searchCampaignExecute(int page, int pageSize, String sort, String agentId) {
Map result = new HashMap(); Map result = new HashMap();
List<CampaignDTO> lst = new ArrayList<>();
Pageable pageable = PageRequest.of(page, pageSize, Sort.by(sort)); Pageable pageable = PageRequest.of(page, pageSize, Sort.by(sort));
lst = campaignRepository.searchCampaignExecute(agentId, pageable); List<CampaignDTO> lst = campaignRepository.searchCampaignExecute(agentId, pageable);
List<CampaignDTO> count = campaignRepository.searchCampaignExecute(agentId, null);
result.put("totalItem", lst.size()); result.put("totalItem", count.size());
result.put("data", lst); result.put("data", lst);
return result; return result;
......
package com.viettel.campaign.service; package com.viettel.campaign.service.impl;
import com.viettel.campaign.service.CustomerService;
import com.viettel.campaign.web.dto.CustomerDTO; import com.viettel.campaign.web.dto.CustomerDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.mapper.CustomerMapper; import com.viettel.campaign.mapper.CustomerMapper;
......
...@@ -79,12 +79,8 @@ public class CustomerListController { ...@@ -79,12 +79,8 @@ public class CustomerListController {
@PostMapping("/ids") @PostMapping("/ids")
@ResponseBody @ResponseBody
public ResultDTO deleteIds(@RequestBody @Valid List<CustomerListDTO> customerListDTOList) { public ResultDTO deleteIds(@RequestBody @Valid List<Long> ids) {
List<Long> ids = new ArrayList<>();
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
for (CustomerListDTO customerList: customerListDTOList) {
ids.add(customerList.getCustomerListId());
}
result = customerListService.deleteIds(ids); result = customerListService.deleteIds(ids);
return result; return result;
} }
......
...@@ -30,7 +30,7 @@ public class CampaignController { ...@@ -30,7 +30,7 @@ public class CampaignController {
return new ResponseEntity<>(result, HttpStatus.OK); 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) { public ResponseEntity<ResultDTO> search(@RequestBody CampaignRequestDTO requestDto) {
ResultDTO result = campaignService.search(requestDto); ResultDTO result = campaignService.search(requestDto);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment