Commit 3f8b818a authored by đinh thị đầm's avatar đinh thị đầm

Merge remote-tracking branch 'origin/dinhdam'

# Conflicts:
#	pom.xml
#	src/main/java/com/itsol/quantrivanphong/report/employee/Test.java
#	src/main/resources/application.properties
parents 5fd2fa65 46de3712
......@@ -15,8 +15,6 @@
<description>Quản trị văn phòng sử dụng springboot API</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
......@@ -25,6 +23,7 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
......@@ -35,19 +34,19 @@
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
......@@ -55,6 +54,7 @@
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<finalName>Spring4MVCCRUDRestService</finalName>
</build>
</project>
package com.itsol.quantrivanphong.controller;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.util.UriComponentsBuilder;
import java.util.List;
@RestController
public class EmployeeController {
@Autowired
//Retrieve Employee by id
private EmployeeService employeeService;
@RequestMapping(value = "/employee/{id}", method = RequestMethod.GET)
public ResponseEntity<Employee> getEmployee(@PathVariable("id") int id) {
System.out.println("Fetching employee with id " + id);
Employee employee = employeeService.findById(id);
if (employee == null) {
System.out.println("Employee with id : " + id + " not found");
return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND);
}
return new ResponseEntity<Employee>( employee , null,HttpStatus.OK);
}
//Retrieve all employee
@RequestMapping(value = "/list_employee", method = RequestMethod.GET)
public ResponseEntity<List<Employee>> listAllEmployee() {
List<Employee> employees = employeeService.findAll();
if (employees == null) {
return new ResponseEntity<List<Employee>>(HttpStatus.NO_CONTENT);
}
return new ResponseEntity<List<Employee>>( employees , null ,HttpStatus.OK);
}
//Update Employee
@RequestMapping(value = "/employee/{id}", method = RequestMethod.PUT)
public ResponseEntity<Employee> updateEmployee(@PathVariable("id") int id, @RequestBody Employee employee) {
System.out.println("Update Employee " + id);
Employee currentEmployee = employeeService.findById(id);
if (employee == null) {
System.out.println("Employee with id :" + id + "not found");
return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND);
}
currentEmployee.setUsername(employee.getUsername());
currentEmployee.setPassword(employee.getPassword());
currentEmployee.setFirstName(employee.getFirstName());
currentEmployee.setLastName(employee.getLastName());
currentEmployee.setEmailAddress(employee.getEmailAddress());
currentEmployee.setPhoneNumber(employee.getPhoneNumber());
currentEmployee.setSkype(employee.getSkype());
currentEmployee.setFacebookProfile(employee.getFacebookProfile());
currentEmployee.setPosition(employee.getPosition());
currentEmployee.setHomeTown(employee.getHomeTown());
currentEmployee.setEducation(employee.getEducation());
currentEmployee.setSchool(employee.getSchool());
currentEmployee.setDepartment(employee.getDepartment());
currentEmployee.setGraduationYear(employee.getGraduationYear());
currentEmployee.setPicture(employee.getPicture());
employeeService.save(currentEmployee);
return new ResponseEntity<Employee>( currentEmployee ,HttpStatus.OK);
}
//create new Employee
@RequestMapping(value = "/list_employee", method = RequestMethod.POST)
public ResponseEntity<Void> createEmployee(@RequestBody Employee employee,
UriComponentsBuilder uriComponentsBuilder){
System.out.println("Create Employee "+ employee.getUsername());
employeeService.save(employee);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setLocation(uriComponentsBuilder.path("/employee/{id}").buildAndExpand(employee.getId()).toUri());
return new ResponseEntity<Void>( httpHeaders ,HttpStatus.CREATED);
}
}
......@@ -7,11 +7,12 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name ="employee")
@Table(name = "employee")
@Data
@NoArgsConstructor
@AllArgsConstructor
......@@ -27,6 +28,9 @@ public class Employee {
@Column(name = "password", length = 128, nullable = false)
private String password;
@Column(name = "confirm_password")
@Size(min = 5, max = 20)
private String confirmPassword;
@Column(name = "first_name", length = 50)
private String firstName;
......
package com.itsol.quantrivanphong.report.employee;
public class Test {
}
package com.itsol.quantrivanphong.repository;
import com.itsol.quantrivanphong.model.Employee;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface EmployeeRepository extends JpaRepository<Employee,Integer > {
public Employee findEmployeeByUsername(String username);
public Employee findEmployeeByEmailAddress(String emailAddress);
public Employee findEmployeeByUsernameAndPassword(String username, String password);
Employee findByEmailAddress(String emailAddress);
}
package com.itsol.quantrivanphong.service;
import com.itsol.quantrivanphong.model.Employee;
import org.springframework.validation.Validator;
import java.util.List;
public interface EmployeeService extends Validator {
List<Employee> findAll();
Employee findById(int id);
Employee findEmployeeByEmailAddress(String email);
Employee findEmployeeByUserName(String name);
Employee findEmployeeByUsernameAndPassword(String username, String password);
void save(Employee employee);
void deleteById(int id);
boolean confirmEmployee(Employee employee);
}
package com.itsol.quantrivanphong.service.impl;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.repository.EmployeeRepository;
import com.itsol.quantrivanphong.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.Errors;
import java.util.List;
@Service
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
private EmployeeRepository employeeRepository;
@Override
public List<Employee> findAll() {
return employeeRepository.findAll();
}
@Override
public Employee findById(int id) {
return employeeRepository.findById(id).orElse(null);
}
@Override
public Employee findEmployeeByEmailAddress(String email) {
return employeeRepository.findEmployeeByEmailAddress(email);
}
@Override
public Employee findEmployeeByUserName(String name) {
return employeeRepository.findEmployeeByUsername(name);
}
@Override
public Employee findEmployeeByUsernameAndPassword(String username, String password) {
return employeeRepository.findEmployeeByUsernameAndPassword(username,password);
}
@Override
public void save(Employee employee) {
employeeRepository.save(employee);
}
@Override
public void deleteById( int id) {
employeeRepository.deleteById(id);
}
@Override
public boolean confirmEmployee(Employee employee) {
return true;
}
@Override
public boolean supports(Class<?> clazz) {
return Employee.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
Employee employee = (Employee) target;
if(employeeRepository.findEmployeeByUsername(employee.getUsername())!=null){
errors.rejectValue("username","username.alreadyExist");
}
if(employeeRepository.findEmployeeByEmailAddress(employee.getEmailAddress())!=null){
errors.rejectValue("email","email.alreadyExist");
}
if(!employee.getPassword().equals(employee.getConfirmPassword())){
errors.rejectValue("password","password.wrongPassword");
}
}
}
......@@ -3,15 +3,26 @@ server.port=8081
# DATABASE CONNECTION
# ===============================
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/qtvp_01
spring.datasource.url=jdbc:mysql://localhost:3308/quantrivanphong
spring.datasource.username=root
spring.datasource.password=12345678
spring.datasource.password= 123456
# ===============================
# JPA / HIBERNATE
# ===============================
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
#spring.jpa.properties.hibernate.default_schema=qlns_itsol
## Fix Postgres JPA Error:
## Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented.
#spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
# ===============================
# SEND EMAIL
# ==============================
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=
......
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