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;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParamRepositoryCustom {
Page<ApParam> findAll(Pageable pageable);
......
package com.viettel.campaign.repository;
import com.viettel.campaign.model.ApParam;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ApParamRepositoryCustom {
}
......@@ -6,9 +6,11 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CampaignCompleteCodeRepository extends JpaRepository<CampaignCompleteCode, Long> {
Page<CampaignCompleteCode> findAll(Pageable pageable);
......
......@@ -4,11 +4,14 @@ 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;
import java.util.List;
@Repository
public interface CampaignRepositoryCustom {
List<CampaignDTO> searchCampaignExecute(String agentId, Pageable pageable);
ResultDTO search(CampaignRequestDTO requestDto);
ResultDTO findByCompanySiteId(CampaignRequestDTO requestDTO);
}
......@@ -3,14 +3,19 @@ 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.Modifying;
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);
CustomerList findByCustomerListCode(String customerListCode);
@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;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CustomerRepository extends JpaRepository<Customer, Long> {
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.repository.ApParamRepositoryCustom;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
......
package com.viettel.campaign.repository.impl;
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;
......@@ -15,7 +18,10 @@ import org.springframework.data.domain.*;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Repository
......@@ -27,28 +33,43 @@ 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.CONTENT, C.START_TIME, C.END_TIME, C.STATUS ")
//.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(" 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();
try {
Query query = entityManager.createNativeQuery(expression);
//query.setParameter("pAgentId", agentId);
if (pageable != null) {
query.setFirstResult(pageable.getPageNumber() * pageable.getPageSize());
query.setMaxResults(pageable.getPageSize());
}
List<Object[]> data = query.getResultList();
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;
}
......@@ -102,10 +123,10 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (requestDto.getChanel() != null && requestDto.getChanel() > 0) {
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");
}
if(!DataUtil.isNullOrZero(requestDto.getNumOfCusTo())) {
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusTo())) {
sqlStr.append(" AND a.CUSTOMER_NUMBER <= :p_cusNumTo");
}
......@@ -141,7 +162,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (!DataUtil.isNullOrEmpty(requestDto.getFromDateTo())) {
query.setParameter("p_frDateTo", requestDto.getFromDateTo());
}
if (!DataUtil.isNullOrEmpty(requestDto.getToDateFr())) {
if (!DataUtil.isNullOrEmpty(requestDto.getToDateFr())) {
query.setParameter("p_toDateFr", requestDto.getToDateFr());
}
if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) {
......@@ -262,9 +283,9 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
private Pageable buildPageable(CampaignRequestDTO obj) {
Pageable pageable = null;
if(DataUtil.isNullOrEmpty(obj.getSort())){
if (DataUtil.isNullOrEmpty(obj.getSort())) {
pageable = new PageRequest(obj.getPage(), obj.getPageSize(), null);
}else {
} 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);
......
package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
......@@ -8,6 +7,7 @@ import java.util.Map;
public interface CampaignService {
Map searchCampaignExecute(int page, int pageSize, String sort, String agentId);
ResultDTO search(CampaignRequestDTO requestDto);
ResultDTO findByCompanySiteId(CampaignRequestDTO requestDTO);
}
......@@ -12,6 +12,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager;
import java.util.*;
......@@ -49,11 +50,17 @@ public class CustomerListServiceImpl implements CustomerListService {
try {
if (customerListDTO != null) {
// insert
customerList = customerListMapper.toPersistenceBean(customerListDTO);
customerListRepository.save(customerList);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
CustomerList findCustomer = customerListRepository.findByCustomerListCode(customerListDTO.getCustomerListCode());
if (findCustomer == null) {
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);
}
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
......@@ -116,6 +123,7 @@ public class CustomerListServiceImpl implements CustomerListService {
return resultDTO;
}
@Transactional
@Override
public ResultDTO deleteIds(List<Long> ids) {
ResultDTO resultDTO = new ResultDTO();
......@@ -131,6 +139,6 @@ public class CustomerListServiceImpl implements CustomerListService {
} catch (Exception e) {
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.ResultDTO;
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.ResultDTO;
import com.viettel.campaign.mapper.CampaignCompleteCodeMapper;
......
......@@ -2,19 +2,16 @@ package com.viettel.campaign.service.impl;
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.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.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;
......@@ -22,18 +19,18 @@ import java.util.Map;
@Service
public class CampaignServiceImpl implements CampaignService {
@Autowired(required=true)
@Autowired
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);
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);
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.ResultDTO;
import com.viettel.campaign.mapper.CustomerMapper;
......
......@@ -79,12 +79,8 @@ public class CustomerListController {
@PostMapping("/ids")
@ResponseBody
public ResultDTO deleteIds(@RequestBody @Valid List<CustomerListDTO> customerListDTOList) {
List<Long> ids = new ArrayList<>();
public ResultDTO deleteIds(@RequestBody @Valid List<Long> ids) {
ResultDTO result = new ResultDTO();
for (CustomerListDTO customerList: customerListDTOList) {
ids.add(customerList.getCustomerListId());
}
result = customerListService.deleteIds(ids);
return result;
}
......
......@@ -30,7 +30,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);
......
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