Commit 30092a12 authored by Phạm Duy Phi's avatar Phạm Duy Phi
parents 6415876b da873df4
This diff is collapsed.
......@@ -112,4 +112,5 @@ public class Campaign implements Serializable {
private Integer timeWaitAgent;
@Column(name = "QUEST_INDEX")
private BigDecimal questIndex;
}
......@@ -44,6 +44,7 @@ public class CampaignCompleteCode implements Serializable {
@Column(name = "CREATE_AT")
@Temporal(TemporalType.TIMESTAMP)
private Date createAt;
@Transient
@Column(name = "CAMPAIGN_TYPE")
private String campaignType;
@Column(name = "IS_FINISH")
......
package com.viettel.campaign.model;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "TICKET")
@XmlRootElement
@Getter
@Setter
public class Ticket implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator="ticket_seq")
@SequenceGenerator(name="ticket_seq",sequenceName="ticket_seq", allocationSize=1)
@Basic(optional = false)
@NotNull
@Column(name = "TICKET_ID")
private Long ticketId;
@Column(name = "SOURCE_ID")
private Long sourceId;
@Column(name = "CHANEL_ID")
private Long chanelId;
@Column(name = "CREATE_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date createDate;
@Size(max = 200)
@Column(name = "REF_ID")
private String refId;
@Column(name = "CUSTOMER_ID")
private Long customerId;
@Column(name = "TICKET_STATUS")
private Short ticketStatus;
@Column(name = "RESPONSE_STATUS")
private Long responseStatus;
@Column(name = "PRIORITY_ID")
private Short priorityId;
@Column(name = "RESOLVE_SLA")
@Temporal(TemporalType.TIMESTAMP)
private Date resolveSla;
@Column(name = "FIRST_RESPONE_SLA")
@Temporal(TemporalType.TIMESTAMP)
private Date firstResponeSla;
@Size(max = 400)
@Column(name = "AGENT_PROCESS")
private String agentProcess;
@Size(max = 400)
@Column(name = "AGENT_ASSIGN")
private String agentAssign;
@Column(name = "FIRST_RESPONE_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date firstResponeDate;
@Column(name = "RESOLVE_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date resolveDate;
@Column(name = "ASSIGN_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date assignDate;
@Column(name = "SECOND_RESPONE_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date secondResponeDate;
@Size(max = 20)
@Column(name = "AGENT_ID")
private String agentId;
@Size(max = 20)
@Column(name = "AGENT_ASSIGN_ID")
private String agentAssignId;
@Column(name = "TICKET_SLA_ID")
private Long ticketSlaId;
@Column(name = "SITE_ID")
private Long siteId;
@Column(name = "REQUEST_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date requestDate;
@Column(name = "LAST_REQUEST_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date lastRequestDate;
@Column(name = "TICKET_TYPE_ID")
private Long ticketTypeId;
@Column(name = "SECOND_RESPONE_SLA")
@Temporal(TemporalType.TIMESTAMP)
private Date secondResponeSla;
@Column(name = "COOPERATE_ID")
private Long cooperateId;
@Column(name = "POST_TYPE_ID")
private Long postTypeId;
@Column(name = "USER_READ")
private String userRead;
@Column(name = "POST_CUSTOMER")
private Long postCustomer;
@Column(name = "REASON")
private String reason;
@Column(name = "PROCESS")
private String process;
@Column(name = "LAST_UPDATE_TIME")
@Temporal(TemporalType.TIMESTAMP)
private Date lastUpdateTime;
@Column(name = "SLA_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date slaDate;
@Column(name = "SLA_PROCESS_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date slaProcessDate;
@Column(name = "SLA_COOPERATE_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date slaCooperateDate;
@Column(name = "SLA_PROCESS_CONFIG")
private Long slaProcessConfig;
@Column(name = "SLA_COOPERATE_CONFIG")
private Long slaCooperateConfig;
// @Column(name = "COMPANY_SITE_ID")
// private Long companySiteId;
@Column(name = "REOPEN_DATE")
private Date reopenDate;
@Column(name = "COMPANY_SITE_ID")
private Long companyId;
@Column(name = "ASSIGN_TYPE")
private Long assignType;
//bo sung ignored va close reason
@Column(name = "IGNORED")
private Long ignored;
@Column(name = "REASON_CAT_ITEM_ID")
private Long reasonCatItemId;
@Column(name = "PROBLEM_CAT_ITEM_ID")
private Long problemCatItemId;
@Column(name = "VIEW_TYPE")
private Long viewType;
@Column(name = "SUBJECT")
private String subject;
@Column(name = "CLASSIFY_REQUIRE_ID")
private Long classifyRequireId;
@Column(name = "AGENT_RECEIVE")
private String agentReceive;
@Lob
@Column(name = "CONTENT_RECEIVE")
private String contentReceive;
}
package com.viettel.campaign.model;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@Entity
@Table(name = "TICKET_CAT_STATUS")
@Getter
@Setter
public class TicketCatStatus implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator="ticket_cat_status_seq")
@SequenceGenerator(name="ticket_cat_status_seq",sequenceName="ticket_cat_status_seq", allocationSize=1)
@Basic(optional = false)
@NotNull
@Column(name = "STATUS_ID")
private Long statusId;
@Size(max = 100)
@Column(name = "STATUS_NAME")
private String statusName;
@Size(max = 50)
@Column(name = "STATUS_CODE")
private String statusCode;
@Size(max = 100)
@Column(name = "CREATE_BY")
private String createBy;
@Column(name = "CREATE_TIME")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
@Column(name = "COMPANY_ID")
private Long companyId;
@Column(name = "ACTIVE")
private Short active;
}
......@@ -17,4 +17,11 @@ public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParam
@Query(value = "SELECT p FROM ApParam p WHERE parName LIKE concat('%', :parName, '%') ")
List<ApParam> findParamByName(@Param("parName") String parName, Pageable pageable);
@Query(value = "SELECT p FROM ApParam p WHERE status = 1 AND parType LIKE concat('%', :parType, '%') ")
List<ApParam> findParamByParType(@Param("parType") String parType);
@Query(value = "select a from ApParam a WHERE status = 1 AND parType = 'CAMPAIGN_TYPE'")
List<ApParam> findAllParam();
}
......@@ -4,19 +4,25 @@ import com.viettel.campaign.model.CampaignCompleteCode;
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.Modifying;
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);
@Query("FROM CampaignCompleteCode WHERE completeName LIKE concat('%', :name, '%') ")
List<CampaignCompleteCode> findByName(@Param("name") String Name, Pageable pageable);
List<CampaignCompleteCode> findByName(@Param("name") String name, Pageable pageable);
List<CampaignCompleteCode> findByCompleteNameContains(String name, Pageable pageable);
@Modifying
@Query("delete from CampaignCompleteCode c where c.campaignCompleteCodeId in (:ids)")
int deleteds(@Param("ids") List<Long> ids);
List<CampaignCompleteCode> findByCompleteNameContains(String Name, Pageable pageable);
}
package com.viettel.campaign.repository;
import com.viettel.campaign.model.Ticket;
public interface TicketRepository extends BaseRepository<Ticket>, TicketRepositoryCustom {
}
package com.viettel.campaign.repository;
import com.viettel.campaign.web.dto.TicketDTO;
import org.springframework.data.domain.Pageable;
import java.util.List;
public interface TicketRepositoryCustom {
List<TicketDTO> getHistory(String customerId, Pageable pageable);
}
......@@ -20,12 +20,14 @@ 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 org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeRepository {
@Autowired
EntityManager entityManager;
......@@ -35,12 +37,17 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR
@Override
public Page<CampaignCompleteCode> findAll(Pageable pageable) {
return campaignCompleteCodeRepository.findAll(pageable);
// Page<CampaignCompleteCode>
// try {
//
// } catch (Exception e) {
//
// }
return null;
}
@Override
public List<CampaignCompleteCode> findByName(String name, Pageable pageable) {
// return campaignCompleteCodeRepository.findByName(name , pageable);
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
......@@ -49,11 +56,11 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR
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());
......@@ -76,10 +83,13 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR
}
@Override
public List<CampaignCompleteCode> findByCompleteNameContains(String Name, Pageable pageable) {
// List<CampaignCompleteCodeDTO> lst = new ArrayList<>();
// return lst;
return null;
public List<CampaignCompleteCode> findByCompleteNameContains(String name, Pageable pageable) {
return campaignCompleteCodeRepository.findByCompleteNameContains(name, pageable);
}
@Override
public int deleteds(List<Long> ids) {
return 0;
}
@Override
......
......@@ -8,6 +8,8 @@ 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.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
......@@ -19,6 +21,7 @@ import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.xml.crypto.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
......@@ -26,6 +29,7 @@ import java.util.List;
@Repository
public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
private static final Logger logger = LogManager.getLogger(CampaignRepositoryImpl.class);
@Autowired
EntityManager entityManager;
......@@ -61,7 +65,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
item.setContent((String) obj[2]);
item.setStartTime((Date) obj[3]);
item.setEndTime((Date) obj[4]);
item.setStatus((Short) obj[5]);
item.setStatus(((BigDecimal) obj[5]).shortValueExact());
lst.add(item);
}
......@@ -76,6 +80,8 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@Override
public ResultDTO search(CampaignRequestDTO requestDto) {
logger.info("Start search campaign::");
ResultDTO result = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
......@@ -117,10 +123,10 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusTo())) {
sqlStr.append(" AND a.CUSTOMER_NUMBER <= :p_cusNumTo");
}
if (requestDto.getType() != null) {
sqlStr.append(" AND a.CAMPAIGN_TYPE = :p_type");
if (!DataUtil.isNullOrEmpty(requestDto.getTypes())) {
sqlStr.append(" AND a.CAMPAIGN_TYPE IN (:p_type)");
}
if (requestDto.getChanel() != null && requestDto.getChanel() > 0) {
if (requestDto.getChanel() != null && !DataUtil.isNullOrZero(requestDto.getChanel())) {
sqlStr.append(" AND a.CHANEL = :p_chanel");
}
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) {
......@@ -164,10 +170,11 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) {
query.setParameter("p_toDateTo", requestDto.getToDateTo());
}
if (requestDto.getType() != null) {
query.setParameter("p_type", requestDto.getType());
if (!DataUtil.isNullOrEmpty(requestDto.getTypes())) {
String[] types = requestDto.getTypes().split(",");
query.setParameterList("p_type", types);
}
if (requestDto.getChanel() != null && requestDto.getChanel() > 0) {
if (requestDto.getChanel() != null && !DataUtil.isNullOrZero(requestDto.getChanel())) {
query.setParameter("p_chanel", requestDto.getChanel());
}
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) {
......@@ -181,6 +188,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
query.addScalar("campaignCode", new StringType());
query.addScalar("campaignName", new StringType());
query.addScalar("campaignType", new StringType());
query.addScalar("campaignTypeName", new StringType());
query.addScalar("chanel", new ShortType());
query.addScalar("startTime", new DateType());
query.addScalar("endTime", new DateType());
......@@ -206,18 +214,19 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
result.setData(dataPage);
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
session.close();
return result;
} catch (Exception ex) {
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
logger.error(ex.getMessage(), ex);
} finally {
session.close();
}
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
return result;
}
@Override
public ResultDTO findByCampaignCode(CampaignRequestDTO requestDto) {
logger.info("Start search campaign by code::");
ResultDTO result = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
......@@ -276,14 +285,13 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
result.setData(dataPage);
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
session.close();
return result;
}catch (Exception ex) {
logger.error(ex.getMessage(), ex);
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
} finally {
session.close();
}
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
return result;
}
......
package com.viettel.campaign.repository.impl;
import com.viettel.campaign.repository.TicketRepositoryCustom;
import com.viettel.campaign.web.dto.TicketDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class TicketRepositoryImpl implements TicketRepositoryCustom {
@Autowired
EntityManager entityManager;
@Override
public List<TicketDTO> getHistory(String customerId, Pageable pageable) {
List<TicketDTO> lst = new ArrayList<>();
String expression = new StringBuilder()
.append(" SELECT T.TICKET_ID, T.CREATE_DATE, T.SUBJECT, TCS.STATUS_NAME, T.RESOLVE_DATE ")
.append(" FROM TICKET T ")
.append(" INNER JOIN TICKET_CAT_STATUS TCS ON T.TICKET_STATUS = TCS.STATUS_ID ")
.append(" WHERE 1 = 1 ")
.append(" AND T.CUSTOMER_ID = :pCustomerId ")
.toString();
try {
Query query = entityManager.createNativeQuery(expression);
query.setParameter("pCustomerId", customerId);
if (pageable != null) {
query.setFirstResult(pageable.getPageNumber() * pageable.getPageSize());
query.setMaxResults(pageable.getPageSize());
}
List<Object[]> data = query.getResultList();
for (Object[] obj : data) {
TicketDTO item = new TicketDTO();
item.setTicketId(((BigDecimal) obj[0]).longValueExact());
item.setCreateDate((Date) obj[1]);
item.setSubject((String) obj[2]);
item.setStatusName((String) obj[3]);
item.setResolveDate((Date) obj[4]);
lst.add(item);
}
return lst;
} catch (Exception e) {
e.printStackTrace();
}
return lst;
}
}
......@@ -13,4 +13,8 @@ public interface ApParamService {
List<ApParam> getParamByName(int page, int pageSize, String sort, String parName);
ResultDTO createApParam(ApParamDTO apParamDTO);
ResultDTO findParamByParType(String parType);
List<ApParam>findAllParam();
}
......@@ -3,6 +3,7 @@ package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.CampaignCompleteCodeDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import java.util.List;
import java.util.Map;
public interface CampaignCompleteCodeService {
......@@ -16,4 +17,7 @@ public interface CampaignCompleteCodeService {
ResultDTO updateCompleteCode(CampaignCompleteCodeDTO completeCodeDTO);
ResultDTO deleteCompleteCode(CampaignCompleteCodeDTO completeCodeDTO);
ResultDTO deleteList(List<Long> completeCodeDtos);
}
package com.viettel.campaign.service;
import java.util.Map;
public interface TicketService {
Map getHistory(int page, int pageSize, String sort, String customerId);
}
package com.viettel.campaign.service.impl;
import com.viettel.campaign.service.ApParamService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.ApParamDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.mapper.ApParamMapper;
......@@ -13,6 +14,8 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@Service
public class ApParamServiceImpl implements ApParamService {
......@@ -20,6 +23,10 @@ public class ApParamServiceImpl implements ApParamService {
@Autowired
ApParamRepository apParamRepository;
private static final Logger logger = LogManager.getLogger(ApParamServiceImpl.class);
@Override
public Iterable<ApParam> getAllParams(int page, int pageSize, String sort) {
return apParamRepository.findAll(PageRequest.of(page, pageSize, Sort.by(sort)));
......@@ -34,6 +41,7 @@ public class ApParamServiceImpl implements ApParamService {
return lst;
}
@Override
public ResultDTO createApParam(ApParamDTO apParamDTO) {
ResultDTO result = new ResultDTO();
......@@ -53,9 +61,31 @@ public class ApParamServiceImpl implements ApParamService {
result.setData(apparam);
}
} catch (Exception e) {
e.printStackTrace();
// e.printStackTrace();
logger.error(e.getMessage(), e);
}
return null;
}
@Override
public ResultDTO findParamByParType(String parType) {
ResultDTO resultDTO = new ResultDTO();
try {
List<ApParam> lst = apParamRepository.findParamByParType(parType);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
resultDTO.setData(lst);
logger.info("find params by type: " + resultDTO.getErrorCode());
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
return resultDTO;
}
public List<ApParam> findAllParam() {
return apParamRepository.findAllParam();
}
}
package com.viettel.campaign.service.impl;
package com.viettel.campaign.service;
import com.viettel.campaign.service.CampaignCompleteCodeService;
import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.web.dto.CampaignCompleteCodeDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.mapper.CampaignCompleteCodeMapper;
import com.viettel.campaign.model.CampaignCompleteCode;
import com.viettel.campaign.repository.CampaignCompleteCodeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
......@@ -118,6 +120,26 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
e.printStackTrace();
}
return resultDTO;
}
@Transactional
@Override
public ResultDTO deleteList(List<Long> completeCodeDtos) {
ResultDTO resultDTO = new ResultDTO();
// for (int i = 0; i < completeCodeDtos.size(); i++) {
try {
completeCodeRepository.deleteds(completeCodeDtos);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} catch (Exception e) {
resultDTO.setErrorCode("-1");
return resultDTO;
}
// }
resultDTO.setErrorCode("0");
return resultDTO;
}
}
package com.viettel.campaign.service.impl;
import com.viettel.campaign.repository.TicketRepository;
import com.viettel.campaign.service.TicketService;
import com.viettel.campaign.web.dto.TicketDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
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 TicketServiceImpl implements TicketService {
@Autowired
TicketRepository ticketRepository;
@Override
public Map getHistory(int page, int pageSize, String sort, String customerId) {
Map result = new HashMap();
List<TicketDTO> lst = new ArrayList<>();
lst = ticketRepository.getHistory(customerId, PageRequest.of(page, pageSize, Sort.by(sort)));
result.put("totalItem", lst.size());
result.put("tickets", lst);
return result;
}
}
......@@ -17,4 +17,18 @@ public class Constants {
String xls = "xls";
String xlsx = "xlsx";
}
public interface Status {
Long ACTIVE = 1L;
Long INACTIVE = 0L;
String ACTIVE_STR = "Hoạt động";
String INACTIVE_STR = "Không hoạt động";
}
public interface TypeStatus {
Long ACTIVE = 1L;
Long INACTIVE = 0L;
String ACTIVE_STR = "Trang thai ket noi(Khong thanh cong)";
String INACTIVE_STR = "Trang thai khao sat";
}
}
......@@ -266,4 +266,8 @@ public class DataUtil {
}
return input;
}
public static boolean isNullOrZero(Short value) {
return (value == null || value.equals(Short.parseShort("0")));
}
}
......@@ -57,4 +57,5 @@ public class CampaignDTO extends BaseDTO {
private Long numOfJoinedCus;
private Long numOfNotJoinedCus;
private Long numOfLockCus;
private String campaignTypeName;
}
package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class TicketDTO extends BaseDTO {
private Long ticketId;
private Long sourceId;
private Date createDate;
private String refId;
private Long customerId;
private Short ticketStatus;
private Short responseStatus;
private Short priorityId;
private Date resolveSla;
private Date firstResponeSla;
private String agentProcess;
private Date firstResponeDate;
private Date resolveDate;
private Date assignDate;
private Date secondResponeDate;
private String agentId;
private Long ticketSlaId;
private Long companyId;
private Long siteId;
private Date requestDate;
private Date lastRequestDate;
private Long ticketTypeId;
private Long ticketTypeTemp;
private Date secondResponeSla;
private Long cooperateId;
private String subject;
private String customerName;
private String sourceName;
private Long chanelId;
private int overDue;
private String fromDate;
private String toDate;
private String customerCode;
private String agentAssignId;
private String agentAssign;
private String userLogin;
private Long readed;
private String emailFrom;
private String ticketTypeName;
private Short ticketStatusTemp;
private Short priorityTemp;
private Long postTypeId;
private String postTypeName;
private Long postCustomer;
private Long agentAssignType;
private String reason;
private String process;
private Long agentSiteId;
private String agentRole;
private String agentAssignTemp;
private String agentAssignIdTemp;
private Long siteAssignIdTemp;
private Long siteAssign;
private Double dateDiff;
private String fromUser;
private Long sendType;
private String content;
private Date createDateDetail;
private String toUser;
private String postContent;
private Date postTime;
private String link;
private Long numLike;
private Long numShare;
private Long numView;
private Double timeResponse;
private String name;
private String lastReflect;
private String statusName;
private String priorityName;
private String siteName;
private int maxRow;
private String channelName;
private String sendTypeName;
private Date fromDateValue;
private Date toDateValue;
}
......@@ -24,4 +24,5 @@ public class CampaignRequestDTO extends BaseDTO {
Short type;
Short chanel;
String companySiteId;
String types;
}
......@@ -14,6 +14,7 @@ import java.util.List;
@Controller
@RequestMapping("/ipcc/apParam")
@CrossOrigin(origins = "*")
public class ApParamController {
private static final Logger LOGGER = Logger.getLogger(CustomerController.class);
......@@ -40,4 +41,20 @@ public class ApParamController {
return new ResponseEntity(lst, HttpStatus.OK);
}
@RequestMapping(path = "/findParamByParType", method = RequestMethod.GET)
public ResponseEntity findParamByParType(@RequestParam String parType) {
return new ResponseEntity<>(apParamService.findParamByParType(parType), HttpStatus.OK);
}
@GetMapping(path = "/findAllParam")
@ResponseBody
public ResponseEntity findAllParam() {
List<ApParam> findAll = apParamService.findAllParam();
if(findAll.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
return new ResponseEntity(findAll, HttpStatus.OK);
}
}
......@@ -12,6 +12,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
@Controller
......@@ -82,4 +83,11 @@ public class CampaignCompleteCodeController {
result = completeCodeService.deleteCompleteCode(completeCodeDTO);
return result;
}
@PostMapping("/listDelete")
@ResponseBody
public ResponseEntity<ResultDTO> deleteList(@RequestBody @Valid List<Long>completeCodeDtos ){
ResultDTO resultDTO = completeCodeService.deleteList(completeCodeDtos);
return new ResponseEntity<>(resultDTO, HttpStatus.OK);
}
}
package com.viettel.campaign.web.rest;
import com.viettel.campaign.service.TicketService;
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.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/ipcc/ticket")
@CrossOrigin
public class TicketController {
private static final Logger LOGGER = Logger.getLogger(TicketController.class);
@Autowired
TicketService ticketService;
@GetMapping("/getHistory")
@ResponseBody
public ResponseEntity searchCampaignExecute(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("sort") String sort, @RequestParam("customerId") String customerId) {
Map result = ticketService.getHistory(page, pageSize, sort, customerId);
return new ResponseEntity<>(result, HttpStatus.OK);
}
}
......@@ -3,6 +3,7 @@ SELECT
a.CAMPAIGN_CODE campaignCode,
a.CAMPAIGN_NAME campaignName,
a.CAMPAIGN_TYPE campaignType,
(SELECT PAR_NAME FROM AP_PARAM WHERE STATUS = 1 AND PAR_TYPE = 'CAMPAIGN_TYPE' AND PAR_VALUE = a.CAMPAIGN_TYPE) campaignTypeName,
a.CHANEL chanel,
a.START_TIME startTime,
a.END_TIME endTime,
......
SELECT PAR_NAME,AP_PARAM_ID, PAR_TYPE FROM AP_PARAM a WHERE STATUS= 1 AND PAR_TYPE = 'CAMPAIGN_TYPE'
DELETE FROM CAMPAIGN_COMPLETE_CODE WHERE CAMPAIGN_ID IN (0,1)
select *from CAMPAIGN_COMPLETE_CODE
SELECT
a.CAMPAIGN_ID campaignId,
a.COMPLETE_VALUE completeValue,
a.COMPLETE_NAME completeName,
a.COMPLETE_TYPE completeType,
-- a.CAMPAIGN_TYPE campaignType,
c.PAR_NAME campaignType,
b.CHANEL chanel,
a.DESCRIPTION description,
a.STATUS status
FROM CAMPAIGN_COMPLETE_CODE a
LEFT JOIN CAMPAIGN b ON a.CAMPAIGN_ID = b.CAMPAIGN_ID
LEFT JOIN AP_PARAM c ON a.CAMPAIGN_TYPE = to_char(c.AP_PARAM_ID)
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