Commit 4d890fa1 authored by Tu Bach's avatar Tu Bach

api customer

parent b57bf84e
target/
/.idea/
logs/
\ No newline at end of file
......@@ -13,4 +13,9 @@
<module name="service-campaign" target="1.8" />
</bytecodeTargetLevel>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="service-campaign" options="-parameters" />
</option>
</component>
</project>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: log4j:log4j:1.2.16">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.16/log4j-1.2.16.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.16/log4j-1.2.16-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.16/log4j-1.2.16-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
This diff is collapsed.
......@@ -152,6 +152,17 @@
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
<dependencyManagement>
......
......@@ -182,12 +182,12 @@
<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: log4j:log4j:1.2.16" 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" />
</component>
</module>
\ No newline at end of file
package com.viettel.campaign.DTO;
public class ApParamDTO {
private Long apParamId;
private String parName;
private String parValue;
private String parCode;
private Long resourceId;
private Long status;
public Long getApParamId() {
return apParamId;
}
public void setApParamId(Long apParamId) {
this.apParamId = apParamId;
}
public String getParName() {
return parName;
}
public void setParName(String parName) {
this.parName = parName;
}
public String getParValue() {
return parValue;
}
public void setParValue(String parValue) {
this.parValue = parValue;
}
public String getParCode() {
return parCode;
}
public void setParCode(String parCode) {
this.parCode = parCode;
}
public Long getResourceId() {
return resourceId;
}
public void setResourceId(Long resourceId) {
this.resourceId = resourceId;
}
public Long getStatus() {
return status;
}
public void setStatus(Long status) {
this.status = status;
}
}
package com.viettel.campaign.controller;
import com.viettel.campaign.DTO.ApParamDTO;
import com.viettel.campaign.model.ApParam;
import com.viettel.campaign.service.ApParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Controller
@RequestMapping("/ipcc")
public class ApParamController {
@Autowired(required=true)
ApParamService apParamService;
@GetMapping(path = "/apParam/findAlls")
@ResponseBody
public ResponseEntity<List<ApParam>> listAllCustomer(){
List<ApParam> listCustomer = (List<ApParam>) apParamService.getAllParams();
if(listCustomer.isEmpty()) {
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
return new ResponseEntity<List<ApParam>>(listCustomer, HttpStatus.OK);
}
@PostMapping(path = "/apParam/findByName")
@ResponseBody
public ResponseEntity<List<ApParam>> searchParamByName(@RequestParam(name = "parName") String parName) {
List<ApParam> lst = apParamService.getParamByName(parName);
if (lst.isEmpty())
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
return new ResponseEntity<List<ApParam>>(lst, HttpStatus.OK);
}
}
package com.viettel.campaign.controller;
import com.viettel.campaign.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@Controller
@RequestMapping("/ipcc")
public class CustomerController {
@Autowired(required=true)
CustomerService customerService;
@GetMapping("/customer/findAll")
@ResponseBody
public ResponseEntity findAllCustomer(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("sort") String sort) {
Map result = customerService.listAllCustomer(page, pageSize, sort);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@GetMapping("/customer/findCustName")
@ResponseBody
public ResponseEntity findAllCustomerName(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("sort") String sort, @RequestParam("name") String name) {
Map result = customerService.listCustByName(page, pageSize, sort, name);
return new ResponseEntity(result, HttpStatus.OK);
}
}
package com.viettel.campaign.filter;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class CorsFilter implements Filter {
private Logger logger = Logger.getLogger(CorsFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
try {
chain.doFilter(req, resp);
} catch (Exception e) {
logger.error(e.getMessage(), e);
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
}
}
@Override
public void destroy() {
}
}
package com.viettel.campaign.model;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
@Entity
@Table(name = "AP_PARAM")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "ApParam.findAll", query = "SELECT a FROM ApParam a"),
@NamedQuery(name = "ApParam.findByCalendarTimeId", query = "SELECT a FROM ApParam a WHERE a.apParamId = :apParamId")})
public class ApParam implements Serializable {
@Id
@NotNull
@Column(name = "AP_PARAM_ID")
private Long apParamId;
@Column(name = "PAR_TYPE")
private String parType;
@Column(name = "PAR_NAME")
private String parName;
@Column(name = "PAR_VALUE")
private String parValue;
@Column(name = "PAR_CODE")
private String parCode;
@Column(name = "DESCRIPTION")
private Long description;
@Column(name = "IS_DELETE")
private Long isDelete;
@Column(name = "IS_DEFAULT")
private Long isDefault;
@Column(name = "ENABLE_EDIT")
private Long enableEdit;
@Column(name = "COMPANY_SITE_ID")
private Long siteId;
public Long getApParamId() {
return apParamId;
}
public void setApParamId(Long apParamId) {
this.apParamId = apParamId;
}
public String getParType() {
return parType;
}
public void setParType(String parType) {
this.parType = parType;
}
public String getParName() {
return parName;
}
public void setParName(String parName) {
this.parName = parName;
}
public String getParValue() {
return parValue;
}
public void setParValue(String parValue) {
this.parValue = parValue;
}
public String getParCode() {
return parCode;
}
public void setParCode(String parCode) {
this.parCode = parCode;
}
public Long getDescription() {
return description;
}
public void setDescription(Long description) {
this.description = description;
}
public Long getIsDelete() {
return isDelete;
}
public void setIsDelete(Long isDelete) {
this.isDelete = isDelete;
}
public Long getIsDefault() {
return isDefault;
}
public void setIsDefault(Long isDefault) {
this.isDefault = isDefault;
}
public Long getEnableEdit() {
return enableEdit;
}
public void setEnableEdit(Long enableEdit) {
this.enableEdit = enableEdit;
}
public Long getSiteId() {
return siteId;
}
public void setSiteId(Long siteId) {
this.siteId = siteId;
}
}
package com.viettel.campaign.model;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
@Entity
@Table(name = "CUSTOMER")
public class Customer implements Serializable {
@Id
@GeneratedValue(generator = "customer_seq")
@SequenceGenerator(name = "customer_seq", sequenceName = "customer_seq", allocationSize = 1)
@Basic(optional = false)
@NotNull
@Column(name = "CUSTOMER_ID")
private Long customerId;
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Column(name = "DESCRIPTION")
private String description;
@Column(name = "COMPANY_NAME")
private String companyName;
@Column(name = "CUSTOMER_IMG")
private String customerImg;
@Basic(optional = false)
@NotNull
@Column(name = "CREATE_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date createDate;
@Column(name = "UPDATE_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date updateDate;
@Column(name = "STATUS")
private String status;
@Column(name = "CREATE_BY")
private String createBy;
@Column(name = "UPDATE_BY")
private String updateBy;
@Column(name = "SITE_ID")
private Long siteId;
@Column(name = "GENDER")
private Short gender;
@Column(name = "CURRENT_ADDRESS")
private String currentAddress;
@Column(name = "PLACE_OF_BIRTH")
private String placeOfBirth;
@Column(name = "DATE_OF_BIRTH")
@Temporal(TemporalType.TIMESTAMP)
private Date dateOfBirth;
@Column(name = "MOBILE_NUMBER")
private String mobileNumber;
@Column(name = "EMAIL")
private String email;
@Column(name = "USERNAME")
private String userName;
@Column(name = "AREA_CODE")
private String areaCode;
@Column(name = "CUSTOMER_TYPE")
private Long customerType;
@Column(name = "CALL_ALLOWED")
private String callAllowed;
@Column(name = "EMAIL_ALLOWED")
private Long emailAllowed;
@Column(name = "SMS_ALLOWED")
private Long smsAllowed;
@Column(name = "IPCC_STATUS")
private String ipccStatus;
public Long getCustomerId() {
return customerId;
}
public void setCustomerId(Long customerId) {
this.customerId = customerId;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getCustomerImg() {
return customerImg;
}
public void setCustomerImg(String customerImg) {
this.customerImg = customerImg;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Long getSiteId() {
return siteId;
}
public void setSiteId(Long siteId) {
this.siteId = siteId;
}
public Short getGender() {
return gender;
}
public void setGender(Short gender) {
this.gender = gender;
}
public String getCurrentAddress() {
return currentAddress;
}
public void setCurrentAddress(String currentAddress) {
this.currentAddress = currentAddress;
}
public String getPlaceOfBirth() {
return placeOfBirth;
}
public void setPlaceOfBirth(String placeOfBirth) {
this.placeOfBirth = placeOfBirth;
}
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public String getMobileNumber() {
return mobileNumber;
}
public void setMobileNumber(String mobileNumber) {
this.mobileNumber = mobileNumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public Long getCustomerType() {
return customerType;
}
public void setCustomerType(Long customerType) {
this.customerType = customerType;
}
public String getCallAllowed() {
return callAllowed;
}
public void setCallAllowed(String callAllowed) {
this.callAllowed = callAllowed;
}
public Long getEmailAllowed() {
return emailAllowed;
}
public void setEmailAllowed(Long emailAllowed) {
this.emailAllowed = emailAllowed;
}
public Long getSmsAllowed() {
return smsAllowed;
}
public void setSmsAllowed(Long smsAllowed) {
this.smsAllowed = smsAllowed;
}
public String getIpccStatus() {
return ipccStatus;
}
public void setIpccStatus(String ipccStatus) {
this.ipccStatus = ipccStatus;
}
}
package com.viettel.campaign.repository;
import com.viettel.campaign.model.ApParam;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParamRepositoryCustom {
@Query(value = "SELECT * FROM AP_PARAM p WHERE PAR_NAME LIKE %?1%", nativeQuery = true)
List<ApParam> findParamByName(String parName);
}
package com.viettel.campaign.repository;
import com.viettel.campaign.model.ApParam;
import java.util.List;
public interface ApParamRepositoryCustom {
}
package com.viettel.campaign.repository;
import com.viettel.campaign.model.ApParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.List;
@Repository
public class AppParamRepositoryImpl implements ApParamRepositoryCustom {
@Autowired
EntityManager entityManager;
public AppParamRepositoryImpl() {
}
}
package com.viettel.campaign.repository;
import com.viettel.campaign.model.Customer;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface CustomerRepository extends JpaRepository<Customer, Long> {
Page<Customer> findAll(Pageable pageable);
@Query("FROM Customer WHERE name = ?1")
List<Customer> findByName(String firstName, Pageable pageable);
}
package com.viettel.campaign.service;
import com.viettel.campaign.model.ApParam;
import java.util.List;
public interface ApParamService {
Iterable<ApParam> getAllParams();
List<ApParam> getParamByName(String parName);
}
package com.viettel.campaign.service;
import com.viettel.campaign.model.ApParam;
import com.viettel.campaign.repository.ApParamRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ApParamServiceImpl implements ApParamService {
@Autowired
ApParamRepository apParamRepository;
@Override
public Iterable<ApParam> getAllParams() {
return apParamRepository.findAll();
}
@Override
public List<ApParam> getParamByName(String parName) {
return apParamRepository.findParamByName(parName);
}
}
package com.viettel.campaign.service;
import com.viettel.campaign.model.Customer;
import java.util.List;
import java.util.Map;
public interface CustomerService {
Map listAllCustomer(int page, int pageSize, String sort);
Map listCustByName(int page, int pageSize, String sort, String name);
}
package com.viettel.campaign.service;
import com.viettel.campaign.model.Customer;
import com.viettel.campaign.repository.CustomerRepository;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class CustomerServiceImpl implements CustomerService {
@Autowired
EntityManager entityManager;
@Autowired
CustomerRepository customerRepository;
@Override
public Map listAllCustomer(int page, int pageSize, String sort) {
Map result = new HashMap();
List<Customer> lst = new ArrayList<>();
Pageable pageable = PageRequest.of(page, pageSize, Sort.by(sort));
Page<Customer> pc = customerRepository.findAll(pageable);
result.put("totalItem", pc.getTotalElements());
result.put("customers", pc.iterator());
return result;
}
@Override
public Map listCustByName(int page, int pageSize, String sort, String name) {
Map result = new HashMap();
List<Customer> lst = new ArrayList<>();
Pageable pageable = PageRequest.of(page, pageSize, Sort.by(sort));
lst = customerRepository.findByName(name, pageable);
result.put("totalItem", lst.size());
result.put("customers", lst);
return result;
}
}
......@@ -8,6 +8,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.apache.log4j.Logger;
/**
* @author hanv_itsol
* @project service-campaign
......@@ -17,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping(value = "/kafka")
public class KafkaController {
private static final Logger log = Logger.getLogger(KafkaController.class);
private final Producer producer;
@Autowired
......@@ -26,13 +29,13 @@ public class KafkaController {
@PostMapping(value = "/publish")
public void sendMessageToKafkaTopic(@RequestParam("message") String message) {
log.info("message: #{}", message);
log.info("message: " + message);
this.producer.sendMessage(message);
}
@PostMapping(value = "/publish2")
public void sendMessageToKafkaTopic2(@RequestParam("message") String message) {
log.info("message: #{}", message);
log.info("message: " + message);
this.producer.sendMessageTopic2(message);
}
}
......@@ -9,18 +9,21 @@ spring:
username: CCMS_FULL
password: CCMS_FULL#123
jpa:
database-platform: org.hibernate.dialect.Oracle10gDialect
show-sql: true
generate-ddl: false
hibernate:
ddl-auto: validate
kafka:
consumer:
bootstrap-servers: 192.168.1.201:9092
group-id: group_id
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
producer:
bootstrap-servers: 192.168.1.201:9092
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
\ No newline at end of file
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
# kafka:
# consumer:
# bootstrap-servers: 192.168.1.201:9092
# group-id: group_id
# auto-offset-reset: earliest
# key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
# value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
# producer:
# bootstrap-servers: 192.168.1.201:9092
# key-serializer: org.apache.kafka.common.serialization.StringSerializer
# value-serializer: org.apache.kafka.common.serialization.StringSerializer
\ No newline at end of file
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