esoe
6 months ago
7 changed files with 174 additions and 6 deletions
@ -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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
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