Commit 661ba580 authored by Tu Bach's avatar Tu Bach

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

# Conflicts:
#	src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
parents a980081a 5887ee65
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<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
...@@ -17,7 +17,7 @@ public class CampaignJob { ...@@ -17,7 +17,7 @@ public class CampaignJob {
// @Scheduled(fixedRate = 6000) // @Scheduled(fixedRate = 6000)
// @Transactional( propagation = Propagation.REQUIRED) // @Transactional( propagation = Propagation.REQUIRED)
// public void process() { public void process() {
// log.info("processing job2 ..."+ dateFormat.format(new Date())); // log.info("processing job2 ..."+ dateFormat.format(new Date()));
// } }
} }
...@@ -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 javax.persistence.*;
import javax.validation.constraints.NotNull;
@Entity
@Table(name = "CAMPAIGN_CUSTOMERLIST")
@Getter
@Setter
public class CampaignCustomerList {
@Id
@GeneratedValue(generator = "campaign_customerlist_seq")
@SequenceGenerator(name = "campaign_customerlist_seq", sequenceName = "campaign_customerlist_seq", allocationSize = 1)
@Basic(optional = false)
@NotNull
@Column(name = "CAMPAIGN_CUSTOMERLIST_ID")
private Long campaignCustomerListId;
@Column(name = "CAMPAIGN_ID")
private Long campaignId;
@Column(name = "CUSTOMER_LIST_ID")
private Long customerListId;
@Column(name = "CUSTOMER_NUMBER")
private Long customerNumber;
@Column(name = "FILTER_TYPE")
private Short filterType;
@Column(name = "COMPANY_SITE_ID")
private Long companySiteId;
@Column(name = "AGENT_FILTER_STATUS")
private Short agentFilterStatus;
}
...@@ -17,4 +17,9 @@ public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParam ...@@ -17,4 +17,9 @@ 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 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.CampaignCustomerList;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface CampaignCustomerListRepository extends JpaRepository<CampaignCustomerList, Long> {
@Query("select count (c.campaignId) from CampaignCustomerList c where c.customerListId=:customerListId")
Long campaignCount(@Param("customerListId") long customerListId);
@Query("select count (c.campaignId) from CampaignCustomerList c where c.customerListId in (:ids)")
Long campaignIdsCount(@Param("ids") List<Long> ids);
}
...@@ -13,4 +13,5 @@ public interface CampaignRepositoryCustom { ...@@ -13,4 +13,5 @@ public interface CampaignRepositoryCustom {
List<CampaignDTO> searchCampaignExecute(String agentId, Pageable pageable); List<CampaignDTO> searchCampaignExecute(String agentId, Pageable pageable);
ResultDTO search(CampaignRequestDTO requestDto); ResultDTO search(CampaignRequestDTO requestDto);
ResultDTO findByCampaignCode(CampaignRequestDTO requestDTO);
} }
package com.viettel.campaign.repository; package com.viettel.campaign.repository;
import com.viettel.campaign.model.CustomerList; import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.web.dto.ResultDTO; import org.springframework.data.domain.Page;
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 java.util.Date;
import java.util.List; import java.util.List;
public interface CustomerListRepository extends JpaRepository<CustomerList, Long> { public interface CustomerListRepository extends JpaRepository<CustomerList, Long> {
CustomerList findCustomerListByCustomerListId(long customerListId); CustomerList findCustomerListByCustomerListId(long customerListId);
@Query("delete from CustomerList c where c.customerListId in :ids") CustomerList findByCustomerListCode(String customerListCode);
ResultDTO deleteIds(@Param("ids") List<Long> ids);
@Modifying
@Query("delete from CustomerList c where c.customerListId in (:ids)")
int deleteIds(@Param("ids") List<Long> ids);
@Query("select c from CustomerList c where c.customerListCode=:customerListCode or c.customerListName=:customerListName or c.createAt >:dateFrom and c.createAt <:dateTo or c.createAt=:dateFrom or c.createAt=:dateTo")
Page<CustomerList> searchCustomerList(@Param("customerListCode") String customerListCode, @Param("customerListName") String customerListName, @Param("dateFrom") Date dateFrom, @Param("dateTo") Date dateTo, 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
......
...@@ -82,11 +82,16 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -82,11 +82,16 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
Session session = sessionFactory.openSession(); Session session = sessionFactory.openSession();
session.beginTransaction(); session.beginTransaction();
if(DataUtil.isNullOrEmpty(requestDto.getCompanySiteId())) {
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
return result;
}
try { try {
StringBuilder sqlStr = new StringBuilder(); StringBuilder sqlStr = new StringBuilder();
sqlStr.append(SQLBuilder.getSqlQueryById(SQLBuilder.SQL_MODULE_CAMPAIGN_MNG, "search-campaign-by-params")); sqlStr.append(SQLBuilder.getSqlQueryById(SQLBuilder.SQL_MODULE_CAMPAIGN_MNG, "search-campaign-by-params"));
if (!DataUtil.isNullOrEmpty(requestDto.getCampaignCode())) { if (!DataUtil.isNullOrEmpty(requestDto.getCampaignCode())) {
sqlStr.append(" AND UPPER(a.CAMPAIGN_CODE) LIKE :p_code"); sqlStr.append(" AND a.CAMPAIGN_CODE IN (:p_code) ");
} }
if (!DataUtil.isNullOrEmpty(requestDto.getCampaignName())) { if (!DataUtil.isNullOrEmpty(requestDto.getCampaignName())) {
sqlStr.append(" AND UPPER(a.CAMPAIGN_NAME) LIKE :p_name"); sqlStr.append(" AND UPPER(a.CAMPAIGN_NAME) LIKE :p_name");
...@@ -97,11 +102,11 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -97,11 +102,11 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
if (!DataUtil.isNullOrEmpty(requestDto.getFromDateFr())) { if (!DataUtil.isNullOrEmpty(requestDto.getFromDateFr())) {
sqlStr.append(" AND TO_DATE(a.START_TIME, 'DD/MM/YYYY') >= :p_frDateFr"); sqlStr.append(" AND TO_DATE(a.START_TIME, 'DD/MM/YYYY') >= :p_frDateFr");
} }
if (!DataUtil.isNullOrEmpty(requestDto.getFromDateTo())) {
sqlStr.append(" AND TO_DATE(a.START_TIME, 'DD/MM/YYYY') <= :p_frDateTo");
}
if (!DataUtil.isNullOrEmpty(requestDto.getToDateFr())) { if (!DataUtil.isNullOrEmpty(requestDto.getToDateFr())) {
sqlStr.append(" AND TO_DATE(a.END_TIME, 'DD/MM/YYYY') >= :p_toDateFr"); sqlStr.append(" AND TO_DATE(a.START_TIME, 'DD/MM/YYYY') <= :p_toDateFr");
}
if (!DataUtil.isNullOrEmpty(requestDto.getFromDateTo())) {
sqlStr.append(" AND TO_DATE(a.END_TIME, 'DD/MM/YYYY') >= :p_frDateTo");
} }
if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) { if (!DataUtil.isNullOrEmpty(requestDto.getToDateTo())) {
sqlStr.append(" AND TO_DATE(a.END_TIME, 'DD/MM/YYYY') <= :p_toDateTo"); sqlStr.append(" AND TO_DATE(a.END_TIME, 'DD/MM/YYYY') <= :p_toDateTo");
...@@ -129,12 +134,8 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -129,12 +134,8 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
SQLQuery query = session.createSQLQuery(sqlStr.toString()); SQLQuery query = session.createSQLQuery(sqlStr.toString());
if (!DataUtil.isNullOrEmpty(requestDto.getCampaignCode())) { if (!DataUtil.isNullOrEmpty(requestDto.getCampaignCode())) {
query.setParameter("p_code", "%" + String[] lstCode = requestDto.getCampaignCode().split(",");
requestDto.getCampaignCode().toUpperCase() query.setParameterList("p_code", lstCode);
.replace("\\", "\\\\")
.replaceAll("%", "\\\\%")
.replaceAll("_", "\\\\_")
+ "%");
} }
if (!DataUtil.isNullOrEmpty(requestDto.getCampaignName())) { if (!DataUtil.isNullOrEmpty(requestDto.getCampaignName())) {
...@@ -146,6 +147,8 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -146,6 +147,8 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
+ "%"); + "%");
} }
query.setParameter("p_company_site_id", requestDto.getCompanySiteId());
if (requestDto.getStatus() != null && requestDto.getStatus() > 0) { if (requestDto.getStatus() != null && requestDto.getStatus() > 0) {
query.setParameter("p_status", requestDto.getStatus()); query.setParameter("p_status", requestDto.getStatus());
} }
...@@ -213,6 +216,77 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom { ...@@ -213,6 +216,77 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
return result; return result;
} }
@Override
public ResultDTO findByCampaignCode(CampaignRequestDTO requestDto) {
ResultDTO result = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
if(DataUtil.isNullOrEmpty(requestDto.getCompanySiteId())) {
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
return result;
}
try {
StringBuilder sqlStr = new StringBuilder();
sqlStr.append(" SELECT CAMPAIGN_ID campaignId, " +
" CAMPAIGN_CODE campaignCode, " +
" CAMPAIGN_NAME campaignName, " +
" START_TIME startTime," +
" END_TIME endTime, " +
" STATUS status " +
" FROM CAMPAIGN" +
" WHERE COMPANY_SITE_ID = :p_company_site_id AND STATUS <> -1 ");
if(!DataUtil.isNullOrEmpty(requestDto.getCampaignCode())) {
sqlStr.append(" AND CAMPAIGN_CODE LIKE :p_code ");
}
sqlStr.append(" ORDER BY START_TIME DESC ");
SQLQuery query = session.createSQLQuery(sqlStr.toString());
query.setParameter("p_company_site_id", requestDto.getCompanySiteId());
if(!DataUtil.isNullOrEmpty(requestDto.getCampaignCode())) {
query.setParameter("p_code", "%" +
requestDto.getCampaignCode().toUpperCase()
.replace("\\", "\\\\")
.replaceAll("%", "\\\\%")
.replaceAll("_", "\\\\_")
+ "%");
}
query.addScalar("campaignId", new BigDecimalType());
query.addScalar("campaignCode", new StringType());
query.addScalar("campaignName", new StringType());
query.addScalar("startTime", new DateType());
query.addScalar("endTime", new DateType());
query.addScalar("status", new ShortType());
query.setResultTransformer(Transformers.aliasToBean(CampaignDTO.class));
int count = 0;
List<CampaignDTO> list = query.list();
if (list.size() > 0) {
count = query.list().size();
}
Pageable pageable = buildPageable(requestDto);
if (pageable != null) {
query.setFirstResult(pageable.getPageNumber() * pageable.getPageSize());
query.setMaxResults(pageable.getPageSize());
}
List<CampaignDTO> data = query.list();
Page<CampaignDTO> dataPage = new PageImpl<>(data, pageable, count);
result.setData(dataPage);
result.setErrorCode(Constants.ApiErrorCode.SUCCESS);
result.setDescription(Constants.ApiErrorDesc.SUCCESS);
session.close();
return result;
}catch (Exception ex) {
session.close();
}
result.setErrorCode(Constants.ApiErrorCode.ERROR);
result.setDescription(Constants.ApiErrorDesc.ERROR);
return result;
}
private Pageable buildPageable(CampaignRequestDTO obj) { private Pageable buildPageable(CampaignRequestDTO obj) {
Pageable pageable = null; Pageable pageable = null;
if (DataUtil.isNullOrEmpty(obj.getSort())) { if (DataUtil.isNullOrEmpty(obj.getSort())) {
......
...@@ -13,4 +13,9 @@ public interface ApParamService { ...@@ -13,4 +13,9 @@ 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);
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);
} }
...@@ -9,4 +9,5 @@ public interface CampaignService { ...@@ -9,4 +9,5 @@ public interface CampaignService {
Map searchCampaignExecute(int page, int pageSize, String sort, String agentId); Map searchCampaignExecute(int page, int pageSize, String sort, String agentId);
ResultDTO search(CampaignRequestDTO requestDto); ResultDTO search(CampaignRequestDTO requestDto);
ResultDTO findByCampaignCode(CampaignRequestDTO requestDTO);
} }
...@@ -3,6 +3,7 @@ package com.viettel.campaign.service; ...@@ -3,6 +3,7 @@ package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.CustomerListDTO; import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -17,4 +18,6 @@ public interface CustomerListService { ...@@ -17,4 +18,6 @@ public interface CustomerListService {
ResultDTO deleteCustomerList(CustomerListDTO customerListDTO); ResultDTO deleteCustomerList(CustomerListDTO customerListDTO);
ResultDTO deleteIds(List<Long> ids); ResultDTO deleteIds(List<Long> ids);
Map searchCustomerList(String customerListCode, String customerListName, Date dateFrom, Date dateTo, int page, int pageSize, String sort);
} }
...@@ -34,6 +34,7 @@ public class ApParamServiceImpl implements ApParamService { ...@@ -34,6 +34,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();
...@@ -58,4 +59,9 @@ public class ApParamServiceImpl implements ApParamService { ...@@ -58,4 +59,9 @@ public class ApParamServiceImpl implements ApParamService {
return null; return null;
} }
@Override
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; package com.viettel.campaign.service.impl;
import com.viettel.campaign.model.Campaign;
import com.viettel.campaign.repository.CampaignRepository; import com.viettel.campaign.repository.CampaignRepository;
import com.viettel.campaign.service.CampaignService; import com.viettel.campaign.service.CampaignService;
import com.viettel.campaign.web.dto.CampaignDTO; import com.viettel.campaign.web.dto.CampaignDTO;
...@@ -39,4 +40,9 @@ public class CampaignServiceImpl implements CampaignService { ...@@ -39,4 +40,9 @@ public class CampaignServiceImpl implements CampaignService {
public ResultDTO search(CampaignRequestDTO requestDto) { public ResultDTO search(CampaignRequestDTO requestDto) {
return campaignRepository.search(requestDto); return campaignRepository.search(requestDto);
} }
@Override
public ResultDTO findByCampaignCode(CampaignRequestDTO requestDTO) {
return campaignRepository.findByCampaignCode(requestDTO);
}
} }
package com.viettel.campaign.service; package com.viettel.campaign.service.impl;
import com.viettel.campaign.mapper.CustomerListMapper; import com.viettel.campaign.mapper.CustomerListMapper;
import com.viettel.campaign.model.CustomerList; import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.repository.CampaignCustomerListRepository;
import com.viettel.campaign.repository.CustomerListRepository; import com.viettel.campaign.repository.CustomerListRepository;
import com.viettel.campaign.service.CustomerListService;
import com.viettel.campaign.utils.Constants; import com.viettel.campaign.utils.Constants;
import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.web.dto.CustomerListDTO; import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import java.util.*; import java.util.*;
...@@ -25,6 +31,11 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -25,6 +31,11 @@ public class CustomerListServiceImpl implements CustomerListService {
@Autowired @Autowired
CustomerListRepository customerListRepository; CustomerListRepository customerListRepository;
@Autowired
CampaignCustomerListRepository campaignCustomerListRepository;
private Logger logger = LogManager.getLogger(CustomerListServiceImpl.class);
@Override @Override
public Map getCustomerList(int page, int pageSize, String sort) { public Map getCustomerList(int page, int pageSize, String sort) {
Map result = new HashMap(); Map result = new HashMap();
...@@ -45,10 +56,11 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -45,10 +56,11 @@ public class CustomerListServiceImpl implements CustomerListService {
CustomerListMapper customerListMapper = new CustomerListMapper(); CustomerListMapper customerListMapper = new CustomerListMapper();
Date today = new Date(); Date today = new Date();
CustomerList customerList = new CustomerList(); CustomerList customerList = new CustomerList();
try { try {
if (customerListDTO != null) { if (customerListDTO != null) {
// insert // insert
CustomerList findCustomer = customerListRepository.findByCustomerListCode(customerListDTO.getCustomerListCode());
if (findCustomer == null) {
customerList = customerListMapper.toPersistenceBean(customerListDTO); customerList = customerListMapper.toPersistenceBean(customerListDTO);
customerListRepository.save(customerList); customerListRepository.save(customerList);
...@@ -58,6 +70,10 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -58,6 +70,10 @@ public class CustomerListServiceImpl implements CustomerListService {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR); resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR); resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
} }
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
...@@ -97,10 +113,10 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -97,10 +113,10 @@ public class CustomerListServiceImpl implements CustomerListService {
CustomerListMapper customerListMapper = new CustomerListMapper(); CustomerListMapper customerListMapper = new CustomerListMapper();
Date today = new Date(); Date today = new Date();
CustomerList customerList = new CustomerList(); CustomerList customerList = new CustomerList();
try { try {
if (customerListDTO != null) { if (customerListDTO != null) {
// delete // delete
if (DataUtil.isNullOrZero(campaignCustomerListRepository.campaignCount(customerListDTO.getCustomerListId()))) {
customerListRepository.deleteById(customerListDTO.getCustomerListId()); customerListRepository.deleteById(customerListDTO.getCustomerListId());
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
...@@ -109,6 +125,11 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -109,6 +125,11 @@ public class CustomerListServiceImpl implements CustomerListService {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR); resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR); resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
} }
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
...@@ -116,11 +137,13 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -116,11 +137,13 @@ public class CustomerListServiceImpl implements CustomerListService {
return resultDTO; return resultDTO;
} }
@Transactional
@Override @Override
public ResultDTO deleteIds(List<Long> ids) { public ResultDTO deleteIds(List<Long> ids) {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
try { try {
if (ids != null) { if (ids != null) {
if (DataUtil.isNullOrZero(campaignCustomerListRepository.campaignIdsCount(ids))) {
customerListRepository.deleteIds(ids); customerListRepository.deleteIds(ids);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS); resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS); resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
...@@ -128,9 +151,27 @@ public class CustomerListServiceImpl implements CustomerListService { ...@@ -128,9 +151,27 @@ public class CustomerListServiceImpl implements CustomerListService {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR); resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR); resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
} }
} else {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return null; return resultDTO;
}
@Override
public Map searchCustomerList(String customerListCode, String customerListName, Date dateFrom, Date dateTo, int page, int pageSize, String sort) {
Map result = new HashMap();
List<CustomerList> list = new ArrayList<>();
Pageable pageable = PageRequest.of(page, pageSize, Sort.by(sort));
Page<CustomerList> pc = customerListRepository.searchCustomerList(customerListCode, customerListName, dateFrom, dateTo, pageable);
result.put("totalItem", pc.getTotalElements());
result.put("searchList", pc.iterator());
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";
}
} }
...@@ -4,8 +4,6 @@ import com.viettel.campaign.web.dto.BaseDTO; ...@@ -4,8 +4,6 @@ import com.viettel.campaign.web.dto.BaseDTO;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date;
/** /**
* @author anhvd_itsol * @author anhvd_itsol
*/ */
...@@ -25,4 +23,5 @@ public class CampaignRequestDTO extends BaseDTO { ...@@ -25,4 +23,5 @@ public class CampaignRequestDTO extends BaseDTO {
Long numOfCusTo; Long numOfCusTo;
Short type; Short type;
Short chanel; Short chanel;
String companySiteId;
} }
...@@ -13,6 +13,7 @@ import java.util.List; ...@@ -13,6 +13,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);
...@@ -39,4 +40,13 @@ public class ApParamController { ...@@ -39,4 +40,13 @@ public class ApParamController {
return new ResponseEntity(lst, HttpStatus.OK); return new ResponseEntity(lst, 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);
}
} }
...@@ -11,6 +11,7 @@ import org.springframework.stereotype.Controller; ...@@ -11,6 +11,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
...@@ -81,4 +82,11 @@ public class CampaignCompleteCodeController { ...@@ -81,4 +82,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; package com.viettel.campaign.web.rest;
import com.viettel.campaign.model.CustomerList;
import com.viettel.campaign.service.CustomerListService; import com.viettel.campaign.service.CustomerListService;
import com.viettel.campaign.web.dto.CustomerListDTO; import com.viettel.campaign.web.dto.CustomerListDTO;
import com.viettel.campaign.web.dto.ResultDTO; import com.viettel.campaign.web.dto.ResultDTO;
...@@ -11,7 +10,7 @@ import org.springframework.stereotype.Controller; ...@@ -11,7 +10,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.ArrayList; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -52,7 +51,7 @@ public class CustomerListController { ...@@ -52,7 +51,7 @@ public class CustomerListController {
@PutMapping("/update") @PutMapping("/update")
@ResponseBody @ResponseBody
public ResultDTO updateCompleteCode(@RequestBody @Valid CustomerListDTO customerListDTO) { public ResultDTO updateCustomerList(@RequestBody @Valid CustomerListDTO customerListDTO) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
//LogUtil logUtil = new LogUtil(); //LogUtil logUtil = new LogUtil();
//logUtil.initKpiLog("createCust"); //logUtil.initKpiLog("createCust");
...@@ -71,7 +70,7 @@ public class CustomerListController { ...@@ -71,7 +70,7 @@ public class CustomerListController {
@PostMapping("/delete") @PostMapping("/delete")
@ResponseBody @ResponseBody
public ResultDTO deleteCompleteCode(@RequestBody @Valid CustomerListDTO customerListDTO) { public ResultDTO deleteCustomerList(@RequestBody @Valid CustomerListDTO customerListDTO) {
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
result = customerListService.deleteCustomerList(customerListDTO); result = customerListService.deleteCustomerList(customerListDTO);
return result; return result;
...@@ -79,13 +78,16 @@ public class CustomerListController { ...@@ -79,13 +78,16 @@ public class CustomerListController {
@PostMapping("/ids") @PostMapping("/ids")
@ResponseBody @ResponseBody
public ResultDTO deleteIds(@RequestBody @Valid List<CustomerListDTO> customerListDTOList) { public ResultDTO deleteIds(@RequestBody @Valid List<Long> ids) {
List<Long> ids = new ArrayList<>();
ResultDTO result = new ResultDTO(); ResultDTO result = new ResultDTO();
for (CustomerListDTO customerList: customerListDTOList) {
ids.add(customerList.getCustomerListId());
}
result = customerListService.deleteIds(ids); result = customerListService.deleteIds(ids);
return result; return result;
} }
@GetMapping("/search")
@ResponseBody
public ResponseEntity searchCustomerList(@RequestParam("customerListCode") String customerListCode, @RequestParam("customerListName") String customerListName, @RequestParam("dateFrom") Date dateFrom, @RequestParam("dateTo") Date dateTo, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("sort") String sort) {
Map result = customerListService.searchCustomerList(customerListCode, customerListName, dateFrom, dateTo, page, pageSize, sort);
return new ResponseEntity<>(result, HttpStatus.OK);
}
} }
...@@ -34,4 +34,9 @@ public class CampaignController { ...@@ -34,4 +34,9 @@ public class CampaignController {
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
@RequestMapping(value = "/findByCampaignCode", method = RequestMethod.POST)
public ResultDTO findByCampaignCode(@RequestBody CampaignRequestDTO dto) {
return campaignService.findByCampaignCode(dto);
}
} }
...@@ -30,3 +30,5 @@ LEFT JOIN (SELECT cc.campaign_id, count(*) AS SLKHDoNotCall_Khoa ...@@ -30,3 +30,5 @@ LEFT JOIN (SELECT cc.campaign_id, count(*) AS SLKHDoNotCall_Khoa
GROUP BY cc.CAMPAIGN_ID) d GROUP BY cc.CAMPAIGN_ID) d
ON d.CAMPAIGN_ID = a.CAMPAIGN_ID ON d.CAMPAIGN_ID = a.CAMPAIGN_ID
WHERE 1 = 1 WHERE 1 = 1
AND COMPANY_SITE_ID = :p_company_site_id
AND a.STATUS <> -1
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