Commit 680a9562 authored by Phạm Duy Phi's avatar Phạm Duy Phi

tach nhanh voi thang hieu version 1.2

parent c5602df8
......@@ -23,10 +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-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
......@@ -47,11 +44,7 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
......
package com.itsol.quantrivanphong.common;
public class InputException extends Exception {
public InputException(String message) {
super(message);
}
@Override
public String getMessage() {
return "Error: "+super.getMessage();
}
}
package com.itsol.quantrivanphong.manage.leaveform.business;
import com.itsol.quantrivanphong.manage.leaveform.dto.LeaveFormDTO;
import com.itsol.quantrivanphong.manage.leaveform.repository.EmployeeRepository;
import com.itsol.quantrivanphong.manage.leaveform.repository.LeaveFormRepository;
import com.itsol.quantrivanphong.manage.leaveform.repository.LeaveTypeRepository;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.model.LeaveForm;
import com.itsol.quantrivanphong.model.LeaveType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class LeaveFormBusiness {
@Autowired
LeaveFormRepository leaveFormRepository;
@Autowired
LeaveTypeRepository leaveTypeRepository;
@Autowired
EmployeeRepository employeeRepository;
public List<LeaveForm> leaveList() {
return leaveFormRepository.findAllLeaveForm();
}
public String insertLeaveForm(LeaveFormDTO leaveFormDTO) {
String message;
Employee employee = employeeRepository.findEmployeeById(leaveFormDTO.getEmployee_id());
LeaveType leaveType = leaveTypeRepository.findLeaveTypeById(leaveFormDTO.getLeave_type_id());
if (employee != null) {
if (leaveType != null) {
LeaveForm leaveForm = leaveFormRepository.save(LeaveForm.builder()
.title(leaveFormDTO.getTitle())
.content(leaveFormDTO.getContent())
.status(leaveFormDTO.isStatus())
.employee(employee)
.leaveType(leaveType).build());
if (leaveForm != null) {
message = "Insert leave form success";
} else {
message = "Insert leave form failed";
}
} else {
message = "Leave Type does not exist";
}
} else {
message = "Employee does not exist";
}
return message;
}
@Transactional
public String deleteLeaveForm(int id) {
String message;
LeaveForm leaveForm = leaveFormRepository.findLeaveFormById(id);
if (leaveForm != null) {
leaveFormRepository.delete(leaveForm);
if (leaveFormRepository.findLeaveFormById(id) != null) {
message = "Delete failed!";
} else {
message = "Delete success!";
}
} else {
message = "Leave Form does not exist";
}
return message;
}
@Transactional
public String updateLeaveForm(LeaveFormDTO leaveFormDTO) {
String message;
LeaveType leaveType = leaveTypeRepository.findLeaveTypeById(leaveFormDTO.getLeave_type_id());
LeaveForm leaveForm = leaveFormRepository.findLeaveFormById(leaveFormDTO.getId());
if (leaveForm != null) {
if (leaveType != null) {
int i = leaveFormRepository.updateLeaveForm(leaveFormDTO.getTitle(), leaveFormDTO.getContent(), leaveType, leaveFormDTO.getId());
if (i == 1) {
message = "Update success";
} else {
message = "Update failed";
}
} else {
message = "Leave Type does not exist";
}
} else {
message = "Leave Form does not exist";
}
return message;
}
@Transactional
public String updateLeaveFormStatus(LeaveFormDTO leaveFormDTO) {
String message;
LeaveForm leaveForm = leaveFormRepository.findLeaveFormById(leaveFormDTO.getId());
if (leaveForm != null) {
int i = leaveFormRepository.updateLeaveFormStatus(leaveFormDTO.isStatus(), leaveFormDTO.getId());
if (i == 1) {
message = "Update status success";
} else {
message = "Update status failed";
}
} else {
message = "Leave Form does not exist";
}
return message;
}
}
package com.itsol.quantrivanphong.manage.leaveform.controller;
import com.itsol.quantrivanphong.common.InputException;
import com.itsol.quantrivanphong.manage.leaveform.business.LeaveFormBusiness;
import com.itsol.quantrivanphong.manage.leaveform.dto.LeaveFormDTO;
import com.itsol.quantrivanphong.model.LeaveForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(path = "/leave")
public class LeaveFormController {
@Autowired
LeaveFormBusiness leaveFormBusiness;
@GetMapping(path = "/index")
public ResponseEntity<List<LeaveForm>> showLeaveFormList() {
return ResponseEntity.ok(leaveFormBusiness.leaveList());
}
@PostMapping(path = "/insert", consumes = "application/json", produces = "application/json")
public ResponseEntity<String> insertLeaveForm(@RequestBody LeaveFormDTO leaveFormDTO) {
String message;
try {
if (leaveFormDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống");
if (leaveFormDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống");
message = leaveFormBusiness.insertLeaveForm(leaveFormDTO);
} catch (InputException e) {
message = e.getMessage();
}
return ResponseEntity.ok(message);
}
@DeleteMapping("delete/{id}")
public ResponseEntity<String> deleteLeaveForm(@PathVariable int id) {
return ResponseEntity.ok(leaveFormBusiness.deleteLeaveForm(id));
}
@PostMapping(path = "/update", consumes = "application/json", produces = "application/json")
public ResponseEntity<String> updateLeaveForm(@RequestBody LeaveFormDTO leaveFormDTO) {
String message;
try {
if (leaveFormDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống");
if (leaveFormDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống");
message = leaveFormBusiness.updateLeaveForm(leaveFormDTO);
} catch (InputException e) {
message = e.getMessage();
}
return ResponseEntity.ok(message);
}
@PostMapping(path = "/update-status", consumes = "application/json", produces = "application/json")
public ResponseEntity<String> updateLeaveFormStatus(@RequestBody LeaveFormDTO leaveFormDTO) {
String message;
message = leaveFormBusiness.updateLeaveFormStatus(leaveFormDTO);
return ResponseEntity.ok(message);
}
}
package com.itsol.quantrivanphong.manage.leaveform.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LeaveFormDTO {
private int id;
private String title;
private String content;
private boolean status;
private int employee_id;
private int leave_type_id;
}
package com.itsol.quantrivanphong.manage.leaveform.repository;
import com.itsol.quantrivanphong.model.Employee;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EmployeeRepository extends JpaRepository<Employee, Integer> {
Employee findEmployeeById(int id);
}
package com.itsol.quantrivanphong.manage.leaveform.repository;
import com.itsol.quantrivanphong.model.LeaveForm;
import com.itsol.quantrivanphong.model.LeaveType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface LeaveFormRepository extends JpaRepository<LeaveForm, Integer> {
@Query("select lf from LeaveForm lf")
List<LeaveForm> findAllLeaveForm();
LeaveForm findLeaveFormById(int id);
@Modifying
@Query("update LeaveForm lf set lf.title = ?1, lf.content = ?2, lf.leaveType = ?3 where lf.id = ?4")
int updateLeaveForm(String title, String content, LeaveType leaveType, int id);
@Modifying
@Query("update LeaveForm lf set lf.status = ?1 where lf.id = ?2")
int updateLeaveFormStatus(boolean status, int id);
}
package com.itsol.quantrivanphong.manage.leaveform.repository;
import com.itsol.quantrivanphong.model.LeaveType;
import org.springframework.data.jpa.repository.JpaRepository;
public interface LeaveTypeRepository extends JpaRepository<LeaveType, Integer> {
LeaveType findLeaveTypeById(int id);
}
package com.itsol.quantrivanphong.manage.leaveform;
public class test {
public void ahihi() {
}
}
package com.itsol.quantrivanphong.manage.timesheet.business;
import com.itsol.quantrivanphong.manage.timesheet.dto.TimeSheetDTO;
import com.itsol.quantrivanphong.manage.timesheet.repository.EProjectRepository;
import com.itsol.quantrivanphong.manage.timesheet.repository.TimeSheetRepository;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.model.TimeSheet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class TimeSheetBusiness {
@Autowired
TimeSheetRepository timeSheetRepository;
@Autowired
EProjectRepository eProjectRepository;
public String insertTimeSheet(TimeSheetDTO timeSheetDTO) {
String message;
Eproject eproject = eProjectRepository.findEprojectById(timeSheetDTO.getEproject_id());
if (eproject != null) {
TimeSheet timeSheet = timeSheetRepository.save(TimeSheet.builder()
.title(timeSheetDTO.getTitle())
.content(timeSheetDTO.getContent())
.note(timeSheetDTO.getNote())
.eproject(eproject)
.status(timeSheetDTO.isStatus())
.checked(timeSheetDTO.getChecked())
.build());
if (timeSheet != null) {
message = "Insert Time Sheet success";
} else {
message = "Insert Time Sheet failed";
}
} else {
message = "Eproject does not exist";
}
return message;
}
public String deleteTimeSheet(int id) {
String message;
TimeSheet timeSheet = timeSheetRepository.findTimeSheetById(id);
if (timeSheet != null) {
timeSheetRepository.delete(timeSheet);
if (timeSheetRepository.findTimeSheetById(id) == null) {
message = "Delete success";
} else {
message = "Delete failed";
}
} else {
message = "Time Sheet does not exist";
}
return message;
}
public List<TimeSheet> timeSheetList() {
return timeSheetRepository.timeSheetList();
}
@Transactional
public String updateTimeSheet(TimeSheetDTO timeSheetDTO) {
String message;
TimeSheet timeSheet = timeSheetRepository.findTimeSheetById(timeSheetDTO.getId());
Eproject eproject = eProjectRepository.findEprojectById(timeSheetDTO.getEproject_id());
if (timeSheet != null) {
if (eproject != null) {
int i = timeSheetRepository.updateTimeSheet(timeSheetDTO.getTitle(), timeSheetDTO.getContent()
, timeSheetDTO.getNote(), eproject, timeSheetDTO.getId());
if (i == 1) {
message = "Update success";
} else {
message = "Update failed";
}
} else {
message = "Eproject does not exist";
}
} else {
message = "TimeSheet does not exist";
}
return message;
}
@Transactional
public String updateLeaveFormStatus(TimeSheetDTO timeSheetDTO) {
String message;
TimeSheet timeSheet = timeSheetRepository.findTimeSheetById(timeSheetDTO.getId());
if (timeSheet != null) {
int i = timeSheetRepository.updateTimeSheetStatus(timeSheetDTO.isStatus(), timeSheetDTO.getId());
if (i == 1) {
message = "Update status success";
} else {
message = "Update status failed";
}
} else {
message = "TimeSheet does not exist";
}
return message;
}
}
package com.itsol.quantrivanphong.manage.timesheet.controller;
import com.itsol.quantrivanphong.common.InputException;
import com.itsol.quantrivanphong.manage.timesheet.business.TimeSheetBusiness;
import com.itsol.quantrivanphong.manage.timesheet.dto.TimeSheetDTO;
import com.itsol.quantrivanphong.model.TimeSheet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(path = "/timesheet")
public class TimeSheetController {
@Autowired
TimeSheetBusiness timeSheetBusiness;
@PostMapping(path = "/insert", consumes = "application/json", produces = "application/json")
public ResponseEntity<String> insertTimeSheet(@RequestBody TimeSheetDTO timeSheetDTO) {
String message;
try {
if (timeSheetDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống");
if (timeSheetDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống");
message = timeSheetBusiness.insertTimeSheet(timeSheetDTO);
} catch (InputException e) {
message = e.getMessage();
}
return ResponseEntity.ok(message);
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<String> deleteTimeSheet(@PathVariable int id) {
return ResponseEntity.ok(timeSheetBusiness.deleteTimeSheet(id));
}
@GetMapping(path = "/index")
public ResponseEntity<List<TimeSheet>> showAllTimeSheet() {
return ResponseEntity.ok(timeSheetBusiness.timeSheetList());
}
@PostMapping(path = "/update", consumes = "application/json", produces = "application/json")
public ResponseEntity<String> updateLeaveForm(@RequestBody TimeSheetDTO timeSheetDTO) {
String message;
try {
if (timeSheetDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống");
if (timeSheetDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống");
message = timeSheetBusiness.updateTimeSheet(timeSheetDTO);
} catch (InputException e) {
message = e.getMessage();
}
return ResponseEntity.ok(message);
}
@PostMapping(path = "/update-status", consumes = "application/json", produces = "application/json")
public ResponseEntity<String> updateLeaveFormStatus(@RequestBody TimeSheetDTO timeSheetDTO) {
String message;
message = timeSheetBusiness.updateLeaveFormStatus(timeSheetDTO);
return ResponseEntity.ok(message);
}
}
\ No newline at end of file
package com.itsol.quantrivanphong.manage.timesheet.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TimeSheetDTO {
private int id;
private String title;
private String content;
private String note;
private String checked;
private boolean status;
private int eproject_id;
}
package com.itsol.quantrivanphong.manage.timesheet.repository;
import com.itsol.quantrivanphong.model.Eproject;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EProjectRepository extends JpaRepository<Eproject, Integer> {
Eproject findEprojectById(int id);
}
package com.itsol.quantrivanphong.manage.timesheet.repository;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.model.TimeSheet;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
TimeSheet findTimeSheetById(int id);
@Query("select ts from TimeSheet ts")
List<TimeSheet> timeSheetList();
@Modifying
@Query("update TimeSheet ts set ts.title = ?1, ts.content = ?2, ts.note = ?3, ts.eproject = ?4 where ts.id = ?5")
int updateTimeSheet(String title, String content, String note, Eproject eproject, int id);
@Modifying
@Query("update TimeSheet ts set ts.status = ?1 where ts.id = ?2")
int updateTimeSheetStatus(boolean status, int id);
}
package com.itsol.quantrivanphong.manage.timesheet;
public class test {
}
......@@ -3,6 +3,7 @@ package com.itsol.quantrivanphong.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -15,6 +16,7 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Employee {
@Id
......
......@@ -2,16 +2,18 @@ package com.itsol.quantrivanphong.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "leave_form")
@Data
@Builder
public class LeaveForm {
@Id
......@@ -25,7 +27,7 @@ public class LeaveForm {
@Column(name = "content")
private String content;
@Column(name = "status")
@Column(name = "status", nullable = false)
private boolean status;
// @JsonIgnore
......
package com.itsol.quantrivanphong.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -11,6 +12,7 @@ import javax.persistence.*;
@AllArgsConstructor
@Entity
@Table(name = "timesheet")
@Builder
public class TimeSheet {
@Id
......
server.port=8081
#server.port=8081
# ===============================
# DATABASE CONNECTION
# ===============================
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/quantrivanphong
spring.datasource.username=root
spring.datasource.password=
spring.datasource.password=ahihi123
# ===============================
# 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
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
spring.jpa.properties.hibernate.default_schema=quantrivanphong
## Fix Postgres JPA Error:
......@@ -34,6 +34,4 @@ spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=5000
spring.mail.properties.mail.smtp.writetimeout=5000
## App Properties
app.jwtSecret= JWTSuperSecretKey
app.jwtExpirationInMs = 604800000
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