Commit 30092a12 authored by Phạm Duy Phi's avatar Phạm Duy Phi
parents 6415876b da873df4
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="ExternalSystem" externalSystem="Maven" />
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$USER_HOME$/Downloads/ojdbc6-11.2.0.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.7" level="project" />
<orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.0.7" level="project" />
<orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.10" level="project" />
<orderEntry type="library" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-batch:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework.batch:spring-batch-core:4.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: javax.batch:javax.batch-api:1.0" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.batch:spring-batch-infrastructure:4.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.0.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.0.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.0.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.1.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.29.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.29.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.29.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.29.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.29.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.29.Final" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:5.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:5.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.34" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.13.Final" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.7" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.7" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.34" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.34" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-sleuth:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.60" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.60" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-sleuth-core:2.0.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.8.13" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave:5.4.3" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.zipkin2:zipkin:2.11.7" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.reporter2:zipkin-reporter:2.7.10" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-context-log4j2:5.4.3" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-instrumentation-spring-web:5.4.3" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-instrumentation-http:5.4.3" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-instrumentation-spring-rabbit:5.4.3" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-instrumentation-kafka-clients:5.4.3" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-instrumentation-httpclient:5.4.3" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-instrumentation-httpasyncclient:5.4.3" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-instrumentation-spring-webmvc:5.4.3" level="project" />
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-instrumentation-servlet:5.4.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web-services:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.ws:spring-ws-core:3.0.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.ws:spring-xml:3.0.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-websocket:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.kafka:kafka-streams:1.0.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.kafka:kafka-clients:1.0.2" level="project" />
<orderEntry type="library" name="Maven: org.lz4:lz4-java:1.4" level="project" />
<orderEntry type="library" name="Maven: org.xerial.snappy:snappy-java:1.1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.kafka:connect-json:1.0.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.kafka:connect-api:1.0.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.rocksdb:rocksdbjni:5.7.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.kafka:spring-kafka:2.1.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.2.2.RELEASE" level="project" />
<orderEntry type="module-library">
<library name="Maven: com.oracle:ojdbc7:1.0">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/ojdbc7.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.1.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.1.0.Final" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.0.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.6.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.197" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.22" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.0.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.0.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.0.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.9.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.15.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.7.11" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.10.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.0.10.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.5.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.batch:spring-batch-test:4.0.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.10.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.kafka:spring-kafka-test:2.1.10.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.kafka:kafka-clients:test:1.0.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.kafka:kafka_2.11:1.0.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.sf.jopt-simple:jopt-simple:5.0.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.yammer.metrics:metrics-core:2.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.scala-lang:scala-library:2.11.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.101tec:zkclient:0.10" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.zookeeper:zookeeper:3.4.10" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.kafka:kafka_2.11:test:1.0.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.restdocs:spring-restdocs-mockmvc:2.0.2.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.restdocs:spring-restdocs-core:2.0.2.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.security:spring-security-test:5.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:5.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.8" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.9.9" level="project" />
</component>
</module>
\ No newline at end of file
...@@ -112,4 +112,5 @@ public class Campaign implements Serializable { ...@@ -112,4 +112,5 @@ public class Campaign implements Serializable {
private Integer timeWaitAgent; private Integer timeWaitAgent;
@Column(name = "QUEST_INDEX") @Column(name = "QUEST_INDEX")
private BigDecimal questIndex; private BigDecimal questIndex;
} }
...@@ -44,6 +44,7 @@ public class CampaignCompleteCode implements Serializable { ...@@ -44,6 +44,7 @@ public class CampaignCompleteCode implements Serializable {
@Column(name = "CREATE_AT") @Column(name = "CREATE_AT")
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
private Date createAt; private Date createAt;
@Transient
@Column(name = "CAMPAIGN_TYPE") @Column(name = "CAMPAIGN_TYPE")
private String campaignType; private String campaignType;
@Column(name = "IS_FINISH") @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 ...@@ -17,4 +17,11 @@ public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParam
@Query(value = "SELECT p FROM ApParam p WHERE parName LIKE concat('%', :parName, '%') ") @Query(value = "SELECT p FROM ApParam p WHERE parName LIKE concat('%', :parName, '%') ")
List<ApParam> findParamByName(@Param("parName") String parName, Pageable pageable); 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; ...@@ -4,19 +4,25 @@ import com.viettel.campaign.model.CampaignCompleteCode;
import org.springframework.data.domain.Page; 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.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 org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
@Repository @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);
@Query("FROM CampaignCompleteCode WHERE completeName LIKE concat('%', :name, '%') ") @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; ...@@ -20,12 +20,14 @@ import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
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.Repository;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeRepository { public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeRepository {
@Autowired @Autowired
EntityManager entityManager; EntityManager entityManager;
...@@ -35,12 +37,17 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR ...@@ -35,12 +37,17 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR
@Override @Override
public Page<CampaignCompleteCode> findAll(Pageable pageable) { public Page<CampaignCompleteCode> findAll(Pageable pageable) {
return campaignCompleteCodeRepository.findAll(pageable); // Page<CampaignCompleteCode>
// try {
//
// } catch (Exception e) {
//
// }
return null;
} }
@Override @Override
public List<CampaignCompleteCode> findByName(String name, Pageable pageable) { public List<CampaignCompleteCode> findByName(String name, Pageable pageable) {
// return campaignCompleteCodeRepository.findByName(name , pageable);
SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession(); Session session = sessionFactory.openSession();
...@@ -49,11 +56,11 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR ...@@ -49,11 +56,11 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR
List<CampaignCompleteCode> resultList = null; List<CampaignCompleteCode> resultList = null;
try { try {
StringBuilder sql = new StringBuilder(SQLBuilder.getSqlQueryById(SQLBuilder.SQL_MODULE_CAMPAIGN_STATUS_MNG, "search-campaign-status-by-params")); StringBuilder sql = new StringBuilder(SQLBuilder.getSqlQueryById(SQLBuilder.SQL_MODULE_CAMPAIGN_STATUS_MNG, "search-campaign-status-by-params"));
SQLQuery query = session.createSQLQuery(sql.toString()); SQLQuery query = session.createSQLQuery(sql.toString());
query.setParameter(":p_name", name); query.setParameter(":p_name", name);
// add SCalar // add SCalar
query.addScalar("campaignId", new LongType()); query.addScalar("campaignId", new LongType());
query.addScalar("completeValue", new StringType()); query.addScalar("completeValue", new StringType());
...@@ -76,10 +83,13 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR ...@@ -76,10 +83,13 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR
} }
@Override @Override
public List<CampaignCompleteCode> findByCompleteNameContains(String Name, Pageable pageable) { public List<CampaignCompleteCode> findByCompleteNameContains(String name, Pageable pageable) {
// List<CampaignCompleteCodeDTO> lst = new ArrayList<>(); return campaignCompleteCodeRepository.findByCompleteNameContains(name, pageable);
// return lst; }
return null;
@Override
public int deleteds(List<Long> ids) {
return 0;
} }
@Override @Override
......
...@@ -8,6 +8,8 @@ import com.viettel.campaign.utils.SQLBuilder; ...@@ -8,6 +8,8 @@ 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;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
...@@ -19,6 +21,7 @@ import org.springframework.stereotype.Repository; ...@@ -19,6 +21,7 @@ import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.Query; import javax.persistence.Query;
import javax.xml.crypto.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -26,6 +29,7 @@ import java.util.List; ...@@ -26,6 +29,7 @@ import java.util.List;
@Repository @Repository
public class CampaignRepositoryImpl implements CampaignRepositoryCustom { public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
private static final Logger logger = LogManager.getLogger(CampaignRepositoryImpl.class);
@Autowired @Autowired
EntityManager entityManager; EntityManager entityManager;
...@@ -61,7 +65,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -61,7 +65,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
item.setContent((String) obj[2]); item.setContent((String) obj[2]);
item.setStartTime((Date) obj[3]); item.setStartTime((Date) obj[3]);
item.setEndTime((Date) obj[4]); item.setEndTime((Date) obj[4]);
item.setStatus((Short) obj[5]); item.setStatus(((BigDecimal) obj[5]).shortValueExact());
lst.add(item); lst.add(item);
} }
...@@ -76,6 +80,8 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -76,6 +80,8 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@Override @Override
public ResultDTO search(CampaignRequestDTO requestDto) { public ResultDTO search(CampaignRequestDTO requestDto) {
logger.info("Start search campaign::");
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
...@@ -117,10 +123,10 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -117,10 +123,10 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
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");
} }
if (requestDto.getType() != null) { if (!DataUtil.isNullOrEmpty(requestDto.getTypes())) {
sqlStr.append(" AND a.CAMPAIGN_TYPE = :p_type"); 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"); sqlStr.append(" AND a.CHANEL = :p_chanel");
} }
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) { if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) {
...@@ -164,10 +170,11 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -164,10 +170,11 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) { if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) {
query.setParameter("p_toDateTo", requestDto.getToDateTo()); query.setParameter("p_toDateTo", requestDto.getToDateTo());
} }
if (requestDto.getType() != null) { if (!DataUtil.isNullOrEmpty(requestDto.getTypes())) {
query.setParameter("p_type", requestDto.getType()); 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()); query.setParameter("p_chanel", requestDto.getChanel());
} }
if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) { if (!DataUtil.isNullOrZero(requestDto.getNumOfCusFr())) {
...@@ -181,6 +188,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -181,6 +188,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
query.addScalar("campaignCode", new StringType()); query.addScalar("campaignCode", new StringType());
query.addScalar("campaignName", new StringType()); query.addScalar("campaignName", new StringType());
query.addScalar("campaignType", new StringType()); query.addScalar("campaignType", new StringType());
query.addScalar("campaignTypeName", new StringType());
query.addScalar("chanel", new ShortType()); query.addScalar("chanel", new ShortType());
query.addScalar("startTime", new DateType()); query.addScalar("startTime", new DateType());
query.addScalar("endTime", new DateType()); query.addScalar("endTime", new DateType());
...@@ -206,18 +214,19 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -206,18 +214,19 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
result.setData(dataPage); result.setData(dataPage);
result.setErrorCode(Constants.ApiErrorCode.SUCCESS); result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS); result.setDescription(Constants.ApiErrorDesc.SUCCESS);
session.close();
return result;
} catch (Exception ex) { } catch (Exception ex) {
session.close();
}
result.setErrorCode(Constants.ApiErrorCode.ERROR); result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR); result.setDescription(Constants.ApiErrorDesc.ERROR);
logger.error(ex.getMessage(), ex);
} finally {
session.close();
}
return result; return result;
} }
@Override @Override
public ResultDTO findByCampaignCode(CampaignRequestDTO requestDto) { public ResultDTO findByCampaignCode(CampaignRequestDTO requestDto) {
logger.info("Start search campaign by code::");
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
...@@ -276,14 +285,13 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -276,14 +285,13 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
result.setData(dataPage); result.setData(dataPage);
result.setErrorCode(Constants.ApiErrorCode.SUCCESS); result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS); result.setDescription(Constants.ApiErrorDesc.SUCCESS);
session.close();
return result;
}catch (Exception ex) { }catch (Exception ex) {
session.close(); logger.error(ex.getMessage(), ex);
}
result.setErrorCode(Constants.ApiErrorCode.ERROR); result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR); result.setDescription(Constants.ApiErrorDesc.ERROR);
} finally {
session.close();
}
return result; 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 { ...@@ -13,4 +13,8 @@ public interface ApParamService {
List<ApParam> getParamByName(int page, int pageSize, String sort, String parName); List<ApParam> getParamByName(int page, int pageSize, String sort, String parName);
ResultDTO createApParam(ApParamDTO apParamDTO); ResultDTO createApParam(ApParamDTO apParamDTO);
ResultDTO findParamByParType(String parType);
List<ApParam>findAllParam();
} }
...@@ -3,6 +3,7 @@ package com.viettel.campaign.service; ...@@ -3,6 +3,7 @@ package com.viettel.campaign.service;
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 java.util.List;
import java.util.Map; import java.util.Map;
public interface CampaignCompleteCodeService { public interface CampaignCompleteCodeService {
...@@ -16,4 +17,7 @@ public interface CampaignCompleteCodeService { ...@@ -16,4 +17,7 @@ public interface CampaignCompleteCodeService {
ResultDTO updateCompleteCode(CampaignCompleteCodeDTO completeCodeDTO); ResultDTO updateCompleteCode(CampaignCompleteCodeDTO completeCodeDTO);
ResultDTO deleteCompleteCode(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; package com.viettel.campaign.service.impl;
import com.viettel.campaign.service.ApParamService; 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.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;
...@@ -13,6 +14,8 @@ import org.springframework.stereotype.Service; ...@@ -13,6 +14,8 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@Service @Service
public class ApParamServiceImpl implements ApParamService { public class ApParamServiceImpl implements ApParamService {
...@@ -20,6 +23,10 @@ public class ApParamServiceImpl implements ApParamService { ...@@ -20,6 +23,10 @@ public class ApParamServiceImpl implements ApParamService {
@Autowired @Autowired
ApParamRepository apParamRepository; ApParamRepository apParamRepository;
private static final Logger logger = LogManager.getLogger(ApParamServiceImpl.class);
@Override @Override
public Iterable<ApParam> getAllParams(int page, int pageSize, String sort) { public Iterable<ApParam> getAllParams(int page, int pageSize, String sort) {
return apParamRepository.findAll(PageRequest.of(page, pageSize, Sort.by(sort))); return apParamRepository.findAll(PageRequest.of(page, pageSize, Sort.by(sort)));
...@@ -34,6 +41,7 @@ public class ApParamServiceImpl implements ApParamService { ...@@ -34,6 +41,7 @@ public class ApParamServiceImpl implements ApParamService {
return lst; return lst;
} }
@Override @Override
public ResultDTO createApParam(ApParamDTO apParamDTO) { public ResultDTO createApParam(ApParamDTO apParamDTO) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
...@@ -53,9 +61,31 @@ public class ApParamServiceImpl implements ApParamService { ...@@ -53,9 +61,31 @@ public class ApParamServiceImpl implements ApParamService {
result.setData(apparam); result.setData(apparam);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
logger.error(e.getMessage(), e);
} }
return null; 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.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;
import com.viettel.campaign.model.CampaignCompleteCode; import com.viettel.campaign.model.CampaignCompleteCode;
import com.viettel.campaign.repository.CampaignCompleteCodeRepository; import com.viettel.campaign.repository.CampaignCompleteCodeRepository;
import org.springframework.beans.factory.annotation.Autowired; 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.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
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 java.util.*; import java.util.*;
...@@ -118,6 +120,26 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ ...@@ -118,6 +120,26 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
e.printStackTrace(); 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; 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 { ...@@ -17,4 +17,18 @@ public class Constants {
String xls = "xls"; String xls = "xls";
String xlsx = "xlsx"; 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 { ...@@ -266,4 +266,8 @@ public class DataUtil {
} }
return input; 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 { ...@@ -57,4 +57,5 @@ public class CampaignDTO extends BaseDTO {
private Long numOfJoinedCus; private Long numOfJoinedCus;
private Long numOfNotJoinedCus; private Long numOfNotJoinedCus;
private Long numOfLockCus; 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 { ...@@ -24,4 +24,5 @@ public class CampaignRequestDTO extends BaseDTO {
Short type; Short type;
Short chanel; Short chanel;
String companySiteId; String companySiteId;
String types;
} }
...@@ -14,6 +14,7 @@ import java.util.List; ...@@ -14,6 +14,7 @@ import java.util.List;
@Controller @Controller
@RequestMapping("/ipcc/apParam") @RequestMapping("/ipcc/apParam")
@CrossOrigin(origins = "*")
public class ApParamController { public class ApParamController {
private static final Logger LOGGER = Logger.getLogger(CustomerController.class); private static final Logger LOGGER = Logger.getLogger(CustomerController.class);
...@@ -40,4 +41,20 @@ public class ApParamController { ...@@ -40,4 +41,20 @@ public class ApParamController {
return new ResponseEntity(lst, HttpStatus.OK); 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; ...@@ -12,6 +12,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List;
import java.util.Map; import java.util.Map;
@Controller @Controller
...@@ -82,4 +83,11 @@ public class CampaignCompleteCodeController { ...@@ -82,4 +83,11 @@ public class CampaignCompleteCodeController {
result = completeCodeService.deleteCompleteCode(completeCodeDTO); result = completeCodeService.deleteCompleteCode(completeCodeDTO);
return result; 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 ...@@ -3,6 +3,7 @@ SELECT
a.CAMPAIGN_CODE campaignCode, a.CAMPAIGN_CODE campaignCode,
a.CAMPAIGN_NAME campaignName, a.CAMPAIGN_NAME campaignName,
a.CAMPAIGN_TYPE campaignType, 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.CHANEL chanel,
a.START_TIME startTime, a.START_TIME startTime,
a.END_TIME endTime, 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