esoe
6 months ago
7 changed files with 174 additions and 6 deletions
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
@startuml |
||||
!define primary_key(x) <b><color:#b8861b><&key></color> x</b> |
||||
!define foreign_key(x) <b><color:#aaaaaa><&key></color> x</b> |
||||
!define column(x) <b><color:#efefef><&media-record></color> x</b> |
||||
!define table(x) entity x << (T, white) >> |
||||
|
||||
title "Entity Relationship Diagram (ERD): explore (учет загруженных на сервер файлов") |
||||
entity "Пакеты загрузки" as upload_packages |
||||
table(upload_packages) #bcd{ |
||||
primary_key(id): LONGSERIAL >>"Идентификатор" |
||||
column(title): VARCHAR[80] >>"Наименование файла в файловой системе" |
||||
column(origin_title): VARCHAR[80] >>"Наименование загружаемого файла" |
||||
column(type): VARCHAR[80] >>"Наименование загружаемой формы" |
||||
column(extension): VARCHAR[80] >>"Расширение файла" |
||||
column(date): TIMESTAMP >>"Время загрузки пакета на сервер" |
||||
column(author): INTEGER >>"Пользователь, загрузивший файл" |
||||
|
||||
-- |
||||
**CONSTRAINS:** |
||||
* title - |
||||
|
||||
-- |
||||
**DESCRIPTION:** |
||||
* title - наименование файла в фаловой системе, формируется из id&extension |
||||
* origin_title - исходное наименвоание файла, назначенное пользователем |
||||
* type - наименование загружаемой формы, определяет алгоритм обработки файла |
||||
* extension - расширение файла (*.xlsx) |
||||
* date - дата и время загрузки пакета на сервер |
||||
* author - пльзователь, загрузивший файл |
||||
|
||||
} |
||||
|
||||
@enduml |
@ -0,0 +1,64 @@
@@ -0,0 +1,64 @@
|
||||
package ru.molokoin.explorer_rs.controller; |
||||
|
||||
import java.util.List; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.http.HttpStatus; |
||||
import org.springframework.http.MediaType; |
||||
import org.springframework.http.ResponseEntity; |
||||
import org.springframework.web.bind.annotation.DeleteMapping; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PathVariable; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import ru.molokoin.explorer_rs.repository.PackageFace; |
||||
import ru.molokoin.explorer_rs.entity.Package; |
||||
|
||||
@RestController |
||||
@RequestMapping(path = "/", consumes = {"*/*"}) |
||||
public class PackageController { |
||||
@Autowired |
||||
private PackageFace repo; |
||||
|
||||
@GetMapping("/package/list") |
||||
public ResponseEntity<?> getPackages(){ |
||||
return new ResponseEntity<>(repo.findAll(), HttpStatus.OK); |
||||
} |
||||
|
||||
@GetMapping("/package/{id}") |
||||
public ResponseEntity<?> getPackageByID(@PathVariable Integer id){ |
||||
return new ResponseEntity<>(repo.findPackageById(id), HttpStatus.OK); |
||||
} |
||||
|
||||
@PostMapping(path = "/package/create", |
||||
consumes = MediaType.APPLICATION_JSON_VALUE, |
||||
produces = MediaType.APPLICATION_JSON_VALUE) |
||||
public ResponseEntity<?> savePackage(@RequestBody Package pack) { |
||||
repo.save(pack); |
||||
return new ResponseEntity<>(pack, HttpStatus.CREATED); |
||||
} |
||||
|
||||
@PostMapping(path = "/package/update/{id}", |
||||
consumes = MediaType.APPLICATION_JSON_VALUE, |
||||
produces = MediaType.APPLICATION_JSON_VALUE) |
||||
public ResponseEntity<?> updatePackage(@PathVariable Integer id, @RequestBody Package pack) { |
||||
Package p = repo.findPackageById(id); |
||||
p.setTitle(pack.getTitle()); |
||||
p.setOrigin_title(pack.getOrigin_title()); |
||||
p.setType(pack.getType()); |
||||
p.setExtension(pack.getExtension()); |
||||
p.setDate(pack.getDate()); |
||||
repo.save(p); |
||||
return new ResponseEntity<>(repo.findPackageById(id), HttpStatus.CREATED); |
||||
} |
||||
|
||||
@DeleteMapping("/package/delete/{id}") |
||||
public ResponseEntity<String> deletePackage(@PathVariable Long id){ |
||||
Package p = repo.findPackageById(id); |
||||
repo.delete(p); |
||||
return new ResponseEntity<>("Запись id#" + id + " удалена ... ", HttpStatus.OK); |
||||
} |
||||
} |
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
package ru.molokoin.explorer_rs.entity; |
||||
|
||||
import java.util.Date; |
||||
|
||||
import jakarta.persistence.Entity; |
||||
import jakarta.persistence.GeneratedValue; |
||||
import jakarta.persistence.GenerationType; |
||||
import jakarta.persistence.Id; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
/** |
||||
* Обертка для хранения данных о загружаемом пакете |
||||
*/ |
||||
@NoArgsConstructor |
||||
@AllArgsConstructor |
||||
@Entity |
||||
@Data |
||||
public class Package { |
||||
@Id |
||||
@GeneratedValue(strategy=GenerationType.AUTO) |
||||
private long id; |
||||
private String title;// Наименование файла в файловой системе
|
||||
private String origin_title;// Наименование загружаемого файла
|
||||
private String type;// Наименование загружаемой формы
|
||||
private String extension;// Расширение файла
|
||||
private Date date;// Время загрузки пакета на сервер
|
||||
|
||||
// Пока не работает блок авторизации, учет автора безсмысленен
|
||||
// private Person author;// Пользователь, загрузивший файл
|
||||
|
||||
/** |
||||
* Конструктор без id |
||||
* @param title |
||||
* @param origin_title |
||||
* @param type |
||||
* @param extension |
||||
* @param date |
||||
*/ |
||||
public Package(String title, String origin_title, String type, String extension, Date date) { |
||||
this.title = title; |
||||
this.origin_title = origin_title; |
||||
this.type = type; |
||||
this.extension = extension; |
||||
this.date = date; |
||||
} |
||||
} |
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
package ru.molokoin.explorer_rs.repository; |
||||
|
||||
import java.util.List; |
||||
|
||||
import org.springframework.data.repository.ListCrudRepository; |
||||
import org.springframework.stereotype.Repository; |
||||
|
||||
import ru.molokoin.explorer_rs.entity.Package; |
||||
|
||||
@Repository |
||||
public interface PackageFace extends ListCrudRepository<Package, Long>{ |
||||
List<Package> findAll(); |
||||
Package findPackageById(long id); |
||||
} |
Loading…
Reference in new issue