diff --git a/.gitignore b/.gitignore
index 0f0030a..406d019 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,4 +33,7 @@ build/
.vscode/
### Application yml ###
-.yml
\ No newline at end of file
+.yml
+
+## Mac OS ##
+.DS_Store
diff --git a/pom.xml b/pom.xml
index f3d26e7..afe44c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,11 +8,11 @@
2.7.5
- br.com.empresa
+ br.com.aprendizagem
api
0.0.1-SNAPSHOT
- api
- Projeto de rastreio de entregas
+ AprendizagemApi
+ Projeto integrador Aprendizagem
11
diff --git a/src/main/java/br/com/aprendizagem/api/ApiApplication.java b/src/main/java/br/com/aprendizagem/api/ApiApplication.java
index 22a13ed..5b1fb6c 100644
--- a/src/main/java/br/com/aprendizagem/api/ApiApplication.java
+++ b/src/main/java/br/com/aprendizagem/api/ApiApplication.java
@@ -2,6 +2,7 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.bind.annotation.CrossOrigin;
@@ -10,7 +11,7 @@
@EnableScheduling
@EnableAsync
@CrossOrigin(origins = "http://localhost:4200")
-public class ApiApplication {
+public class ApiApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
diff --git a/src/main/java/br/com/aprendizagem/api/DTO/ChapterAssuntoComentarioDto.java b/src/main/java/br/com/aprendizagem/api/DTO/ChapterAssuntoComentarioDto.java
new file mode 100644
index 0000000..d854744
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/DTO/ChapterAssuntoComentarioDto.java
@@ -0,0 +1,27 @@
+package br.com.aprendizagem.api.DTO;
+
+import br.com.aprendizagem.api.entity.Curtida;
+import br.com.aprendizagem.api.entity.Usuario;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+import java.util.Set;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class ChapterAssuntoComentarioDto {
+
+ private Long id;
+ private String texto;
+ private LocalDateTime data;
+ private Long paiId;
+ private Integer chapterAssuntoId;
+ private String usuarioId;
+ private Usuario usuario;
+ private Set curtidas;
+}
diff --git a/src/main/java/br/com/aprendizagem/api/DTO/ChapterAssuntoDto.java b/src/main/java/br/com/aprendizagem/api/DTO/ChapterAssuntoDto.java
new file mode 100644
index 0000000..25c3c4a
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/DTO/ChapterAssuntoDto.java
@@ -0,0 +1,50 @@
+package br.com.aprendizagem.api.DTO;
+
+import br.com.aprendizagem.api.entity.Chapter;
+import br.com.aprendizagem.api.entity.ChapterTag;
+import br.com.aprendizagem.api.entity.Usuario;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+import java.util.HashSet;
+import java.util.Set;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ChapterAssuntoDto {
+
+ private Integer id;
+
+ private LocalDateTime dataCadastro;
+
+ private String titulo;
+
+ private String descricao;
+
+ private byte[] imagem;
+
+ private Long contadorVisualizacao;
+
+ private Integer status;
+
+ private Integer verificacao;
+
+ private Integer chapterId;
+
+ private String chapterNome;
+
+ private Usuario usuario;
+
+ private String usuarioVerificacaoId;
+
+ private Set tags = new HashSet<>();
+
+ private Integer totalComentarios;
+
+
+}
diff --git a/src/main/java/br/com/aprendizagem/api/DTO/ComentariosFilhosDto.java b/src/main/java/br/com/aprendizagem/api/DTO/ComentariosFilhosDto.java
new file mode 100644
index 0000000..f133121
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/DTO/ComentariosFilhosDto.java
@@ -0,0 +1,28 @@
+package br.com.aprendizagem.api.DTO;
+
+import br.com.aprendizagem.api.entity.ChapterAssunto;
+import br.com.aprendizagem.api.entity.ChapterAssuntoComentario;
+import br.com.aprendizagem.api.entity.Usuario;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ComentariosFilhosDto {
+
+ private Long id;
+ private String texto;
+ private ChapterAssuntoComentario comentarioPai;
+ private LocalDateTime data;
+ private Integer verificacao;
+ private ChapterAssunto chapterAssunto;
+ private String usuarioId;
+ private String usuarioVerificacaoId;
+
+}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/AcompanhamentoController.java b/src/main/java/br/com/aprendizagem/api/controller/AcompanhamentoController.java
index cd132e0..cb5ac7c 100644
--- a/src/main/java/br/com/aprendizagem/api/controller/AcompanhamentoController.java
+++ b/src/main/java/br/com/aprendizagem/api/controller/AcompanhamentoController.java
@@ -1,6 +1,7 @@
package br.com.aprendizagem.api.controller;
import br.com.aprendizagem.api.entity.Acompanhamento;
+import br.com.aprendizagem.api.request.AcompanhamentoRequest;
import br.com.aprendizagem.api.response.AcompanhamentoResponse;
import br.com.aprendizagem.api.service.AcompanhamentoService;
import lombok.AllArgsConstructor;
@@ -26,7 +27,7 @@ public ResponseEntity getAcompanhamentoById(@PathVariable Long i
if (acompanhamento == null) {
return ResponseEntity.notFound().build();
}
- return ResponseEntity.ok(acompanhamento);
+ return ResponseEntity.ok().body(acompanhamento);
}
@GetMapping("filtrarByGrupoIdByEstudanteId/{grupoId}/{estudanteId}")
@@ -53,4 +54,9 @@ public ResponseEntity> getAcompanhamentoByGrupoIdBy
public ResponseEntity postAcompanhamento(@RequestBody Acompanhamento acompanhamento) {
return ResponseEntity.ok(acompanhamentoService.postAcompanhamento(acompanhamento));
}
+
+ @PostMapping ("simple")
+ public ResponseEntity createAcompanhamento(@RequestBody AcompanhamentoRequest acompanhamentoRequest) {
+ return acompanhamentoService.createAcompanhamento(acompanhamentoRequest);
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoComentarioController.java b/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoComentarioController.java
new file mode 100644
index 0000000..f0e29f5
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoComentarioController.java
@@ -0,0 +1,53 @@
+package br.com.aprendizagem.api.controller;
+
+import br.com.aprendizagem.api.DTO.ChapterAssuntoComentarioDto;
+import br.com.aprendizagem.api.entity.ChapterAssuntoComentario;
+import br.com.aprendizagem.api.service.ChapterAssuntoComentarioService;
+import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("chapter-assunto-comentario")
+@AllArgsConstructor
+public class ChapterAssuntoComentarioController {
+
+ private final ChapterAssuntoComentarioService chapterAssuntoComentarioService;
+
+
+
+ @GetMapping()
+ public ResponseEntity> getAllChapterAssuntoComentario() {
+ return ResponseEntity.ok().body(chapterAssuntoComentarioService.getAllChapterAssuntoComentarioDto());
+ }
+
+ @GetMapping("/comentarios-by-chapter-assunto-id/{chapterAssuntoId}")
+ public ResponseEntity> getAllChapterAssuntoComentarioDtoByChapterAssuntoId(@PathVariable Integer chapterAssuntoId) {
+ return ResponseEntity.ok().body(chapterAssuntoComentarioService.getAllChapterAssuntoComentarioDtoByChapterAssuntoId(chapterAssuntoId));
+ }
+
+
+ @GetMapping("/{id}")
+ public ResponseEntity getChapterAssuntoComentarioById(@PathVariable Long id) {
+ ChapterAssuntoComentario chapterAssuntoComentario = chapterAssuntoComentarioService.getChapterAssuntoComentarioById(id);
+ if (chapterAssuntoComentario != null) {
+ return ResponseEntity.ok().body(chapterAssuntoComentario);
+ } else {
+ return ResponseEntity.notFound().build();
+ }
+ }
+
+ @PostMapping
+ public ResponseEntity postChapterAssuntoComentario(@RequestBody ChapterAssuntoComentarioDto chapterAssuntoComentario) {
+ return ResponseEntity.ok().body(chapterAssuntoComentarioService.postChapterAssuntoComentario(chapterAssuntoComentario));
+ }
+
+ @DeleteMapping("/{id}")
+ public ResponseEntity deleteChapterAssuntoComentarioById(@PathVariable Integer id) {
+ chapterAssuntoComentarioService.deleteChapterAssuntoComentarioById(id);
+ return ResponseEntity.noContent().build();
+ }
+
+}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoController.java b/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoController.java
index 20490e0..b34e83c 100644
--- a/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoController.java
+++ b/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoController.java
@@ -1,16 +1,13 @@
package br.com.aprendizagem.api.controller;
+import br.com.aprendizagem.api.DTO.ChapterAssuntoDto;
import br.com.aprendizagem.api.entity.ChapterAssunto;
-import br.com.aprendizagem.api.entity.ChapterTag;
import br.com.aprendizagem.api.service.ChapterAssuntoService;
-import br.com.aprendizagem.api.service.ChapterTagService;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
-import java.time.Instant;
import java.time.LocalDateTime;
-import java.util.Date;
import java.util.List;
@RestController
@@ -21,21 +18,33 @@ public class ChapterAssuntoController {
private final ChapterAssuntoService chapterAssuntoService;
- @GetMapping
- public ResponseEntity> getAllChapterAssunto() {
- return chapterAssuntoService.getAllChapterAssunto();
+
+ @GetMapping()
+ public ResponseEntity> getAllChapterAssunto() {
+ return chapterAssuntoService.getAllChapterAssuntoDto();
}
+
@GetMapping("/{id}")
- public ResponseEntity getChapterAssuntoWithTags(@PathVariable Integer id) {
- ChapterAssunto chapterAssunto = chapterAssuntoService.getChapterAssuntoWithTags(id);
- if (chapterAssunto != null) {
- return ResponseEntity.ok(chapterAssunto);
+ public ResponseEntity getChapterAssuntoById(@PathVariable Integer id) {
+ ChapterAssuntoDto chapterAssuntoDTO = chapterAssuntoService.getChapterAssuntoDtoById(id);
+ if (chapterAssuntoDTO != null) {
+ return ResponseEntity.ok().body(chapterAssuntoDTO);
} else {
return ResponseEntity.notFound().build();
}
}
+ @GetMapping("/noticias")
+ public ResponseEntity> getAllNoticias() {
+ return ResponseEntity.ok(chapterAssuntoService.getAllNoticias());
+ }
+
+ @GetMapping("/filtrar-chapter-assuntos-por-chapter-id/{chapterId}")
+ public ResponseEntity> filterChapterAssuntosByChapterId(@PathVariable Integer chapterId) {
+ return chapterAssuntoService.filterChapterAssuntosByChapterId(chapterId);
+ }
+
@PostMapping()
public ResponseEntity postChapterAssunto(@RequestBody ChapterAssunto chapterAssunto) {
try {
@@ -46,15 +55,5 @@ public ResponseEntity postChapterAssunto(@RequestBody ChapterAss
}
}
- @PostMapping("{id}/associar-tags")
- public ResponseEntity associarTagAAssunto(@PathVariable Integer id, @RequestBody List tagIds) {
- ChapterAssunto chapterAssunto = chapterAssuntoService.getChapterAssuntoWithTags(id);
- if (chapterAssunto != null) {
- chapterAssuntoService.associarTagAAssunto(chapterAssunto, tagIds);
- return ResponseEntity.ok().build();
- } else {
- return ResponseEntity.notFound().build();
- }
- }
}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoTagController.java b/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoTagController.java
deleted file mode 100644
index 42f493c..0000000
--- a/src/main/java/br/com/aprendizagem/api/controller/ChapterAssuntoTagController.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package br.com.aprendizagem.api.controller;
-
-import br.com.aprendizagem.api.entity.ChapterAssunto;
-import br.com.aprendizagem.api.entity.ChapterAssuntoTag;
-import br.com.aprendizagem.api.entity.ChapterTag;
-import br.com.aprendizagem.api.service.ChapterAssuntoTagService;
-import lombok.AllArgsConstructor;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@AllArgsConstructor
-@RequestMapping("chapter-assunto-tag")
-public class ChapterAssuntoTagController {
- private final ChapterAssuntoTagService chapterAssuntoTagService;
-
- @GetMapping
- public ResponseEntity> getAllChapterAssuntoTag(){
- return ResponseEntity.ok().body(chapterAssuntoTagService.getAllChapterAssuntoTag());
- }
-
- @GetMapping("/{id}")
- public ResponseEntity getChapterAssuntoTagById(@PathVariable Integer id){
- return ResponseEntity.ok().body(chapterAssuntoTagService.getChapterAssuntoTagById(id));
- }
-
- @PostMapping("/public")
- public ResponseEntity postChapterAssuntoTag(ChapterAssunto chapterAssunto, ChapterTag chapterTag){
- return ResponseEntity.ok().body(chapterAssuntoTagService.postChapterAssuntoTag(chapterAssunto, chapterTag));
- }
-
-}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/ChapterController.java b/src/main/java/br/com/aprendizagem/api/controller/ChapterController.java
index c11b9c1..e24246e 100644
--- a/src/main/java/br/com/aprendizagem/api/controller/ChapterController.java
+++ b/src/main/java/br/com/aprendizagem/api/controller/ChapterController.java
@@ -5,10 +5,7 @@
import br.com.aprendizagem.api.service.GrupoChapterService;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -20,15 +17,28 @@ public class ChapterController {
private final GrupoChapterService grupoChapterService;
@GetMapping
- public ResponseEntity> getAllChapters() {
- List chapters = chapterService.getAllChapters();
+ public ResponseEntity> getActiveChapters() {
+ List chapters = chapterService.getActiveChapters();
if(chapters.isEmpty())
return ResponseEntity.notFound().build();
return ResponseEntity.ok(chapters);
}
+ @GetMapping("/noticias")
+ public ResponseEntity getNoticiasChapter() {
+ Chapter chapter = chapterService.getNoticiasChapter();
+ if(chapter == null)
+ return ResponseEntity.notFound().build();
+ return ResponseEntity.ok(chapter);
+ }
+
@GetMapping("getChapterByGrupoId/{grupoId}")
public ResponseEntity getChapterByGrupoId(@PathVariable Long grupoId) {
return grupoChapterService.getChapterByGrupoId(grupoId);
}
-}
+
+ @PostMapping
+ public ResponseEntity postChapter(@RequestBody Chapter chapter) {
+ return ResponseEntity.ok(chapterService.postChapter(chapter));
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/br/com/aprendizagem/api/controller/CurtidaController.java b/src/main/java/br/com/aprendizagem/api/controller/CurtidaController.java
new file mode 100644
index 0000000..ece028d
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/controller/CurtidaController.java
@@ -0,0 +1,40 @@
+package br.com.aprendizagem.api.controller;
+
+import br.com.aprendizagem.api.entity.Curtida;
+import br.com.aprendizagem.api.service.CurtidaService;
+import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/curtida")
+@AllArgsConstructor
+public class CurtidaController {
+
+ private final CurtidaService curtidaService;
+
+ @GetMapping
+ public ResponseEntity> getAllCurtidas() {
+ return ResponseEntity.ok().body(curtidaService.getAllCurtidas());
+ }
+
+ @GetMapping("/{id}")
+ public ResponseEntity getCurtidaById(@PathVariable Integer id) {
+ Curtida curtida = curtidaService.getCurtidaById(id);
+ if (curtida != null) {
+ return ResponseEntity.ok().body(curtida);
+ } else {
+ return ResponseEntity.notFound().build();
+ }
+ }
+
+ @PostMapping
+ public ResponseEntity postCurtida(@RequestBody Curtida curtida) {
+ return ResponseEntity.ok().body(curtidaService.postCurtida(curtida));
+ }
+
+
+
+}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/EncontroController.java b/src/main/java/br/com/aprendizagem/api/controller/EncontroController.java
index 0d7a624..d2c37ed 100644
--- a/src/main/java/br/com/aprendizagem/api/controller/EncontroController.java
+++ b/src/main/java/br/com/aprendizagem/api/controller/EncontroController.java
@@ -1,9 +1,8 @@
package br.com.aprendizagem.api.controller;
import br.com.aprendizagem.api.entity.Encontro;
-import br.com.aprendizagem.api.response.EncontroAlunoResponse;
+import br.com.aprendizagem.api.response.EncontroEstudanteResponse;
import br.com.aprendizagem.api.response.EncontroResponse;
-import br.com.aprendizagem.api.response.EncontroSituacaoResponse;
import br.com.aprendizagem.api.service.EncontroService;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
@@ -30,8 +29,8 @@ public ResponseEntity> getEncontrosByGrupoId(@PathVariabl
return encontroService.getEncontrosByGrupoId(grupoId);
}
- @GetMapping("filtrarByGrupoIdByEstudanteId/{grupoId}")
- public ResponseEntity> getEncontrosByGrupoIdByEstudanteId(@PathVariable Long grupoId, @PathVariable Long estudanteId){
+ @GetMapping("filtrarByGrupoIdByEstudanteId/{grupoId}/{estudanteId}")
+ public ResponseEntity> getEncontrosByGrupoIdByEstudanteId(@PathVariable Long grupoId, @PathVariable Long estudanteId){
return encontroService.getEncontrosByGrupoIdByEstudanteId(grupoId, estudanteId);
}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/ObjetoAprendizagemController.java b/src/main/java/br/com/aprendizagem/api/controller/ObjetoAprendizagemController.java
index 7d91544..05d1f29 100644
--- a/src/main/java/br/com/aprendizagem/api/controller/ObjetoAprendizagemController.java
+++ b/src/main/java/br/com/aprendizagem/api/controller/ObjetoAprendizagemController.java
@@ -9,10 +9,7 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -42,4 +39,14 @@ public ResponseEntity getArquivoObjetoById(@PathVariable Long objetoId){
return ResponseEntity.notFound().build();
}
}
+
+ @GetMapping(value = "obterObjetoComRecursosPorId/{objetoId}")
+ public ResponseEntity getObjetoWithRecursosByObjetoId(@PathVariable Long objetoId){
+ return objetoAprendizagemService.getObjetoWithRecursosByObjetoId(objetoId);
+ }
+
+ @PostMapping
+ public ResponseEntity postObjeto(@RequestBody ObjetoAprendizagem objeto) {
+ return objetoAprendizagemService.createObjeto(objeto);
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/ParticipanteController.java b/src/main/java/br/com/aprendizagem/api/controller/ParticipanteController.java
index 2e9b535..05250b5 100644
--- a/src/main/java/br/com/aprendizagem/api/controller/ParticipanteController.java
+++ b/src/main/java/br/com/aprendizagem/api/controller/ParticipanteController.java
@@ -33,6 +33,16 @@ public ResponseEntity> getParticipantesByEstudanteId(
}
return ResponseEntity.ok(ParticipanteResponse.of(participantes));
}
+
+ @GetMapping("filtrar-participantes-por-grupo-id/{grupoId}")
+ public ResponseEntity> getParticipantesByGrupoId(@PathVariable Long grupoId) {
+ return participanteService.getParticipantesByGrupoId(grupoId);
+ }
+
+ @GetMapping("filtrar-participante-por-estudante-id-por-grupo-id/{estudanteId}/{grupoId}")
+ public ResponseEntity getParticipanteByEstudanteIdByGrupoId(@PathVariable Long estudanteId, @PathVariable Long grupoId) {
+ return participanteService.getParticipanteByEstudanteIdByGrupoId(estudanteId, grupoId);
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/ProfessorController.java b/src/main/java/br/com/aprendizagem/api/controller/ProfessorController.java
index 70dcbbd..eccde8c 100644
--- a/src/main/java/br/com/aprendizagem/api/controller/ProfessorController.java
+++ b/src/main/java/br/com/aprendizagem/api/controller/ProfessorController.java
@@ -5,6 +5,7 @@
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -23,4 +24,9 @@ public ResponseEntity> getProfessoresAtivos() {
return ResponseEntity.notFound().build();
return ResponseEntity.ok(professores);
}
+
+ @GetMapping("filtrar-professor-por-usuario-id/{usuarioId}")
+ public ResponseEntity getProfessorByUsuarioId(@PathVariable String usuarioId){
+ return professorService.getProfessorByUsuarioId(usuarioId);
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/ProgressoController.java b/src/main/java/br/com/aprendizagem/api/controller/ProgressoController.java
new file mode 100644
index 0000000..423a8c1
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/controller/ProgressoController.java
@@ -0,0 +1,48 @@
+package br.com.aprendizagem.api.controller;
+
+import br.com.aprendizagem.api.entity.Encontro;
+import br.com.aprendizagem.api.entity.Participante;
+import br.com.aprendizagem.api.response.EncontroEstudanteResponse;
+import br.com.aprendizagem.api.response.ProgressoEstudanteResponse;
+import br.com.aprendizagem.api.service.AcompanhamentoService;
+import br.com.aprendizagem.api.service.EncontroService;
+import br.com.aprendizagem.api.service.ParticipanteService;
+import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("progresso")
+public class ProgressoController {
+ private final EncontroService encontroService;
+ private final ParticipanteService participanteService;
+ private final AcompanhamentoService acompanhamentoService;
+
+ @GetMapping("/{grupoId}/{estudanteId}")
+ public ResponseEntity getProgressoByGrupoIdByEstudanteId(@PathVariable Long grupoId, @PathVariable Long estudanteId){
+ List encontros = encontroService.getEncontrosListByGrupoId(grupoId);
+ Long participanteId = participanteService.getParcipanteIdByGrupoIdByEstudanteId(grupoId, estudanteId);
+ if(participanteId != null){
+ Integer totalObjetos = 0;
+ Integer totalAtividades = 0;
+ for (Encontro encontro : encontros) {
+ Map totalObjetosAtividades = encontroService.getNumeroObjetosAtividadesByEncontroId(encontro.getId());
+ totalAtividades += totalObjetosAtividades.get("totalAtividades");
+ totalObjetos += totalObjetosAtividades.get("totalObjetos");
+ }
+ Integer totalAcompanhados = acompanhamentoService.getTotalAcompanhamentosByParticipanteId(participanteId);
+
+ return ResponseEntity.ok(ProgressoEstudanteResponse.of(totalObjetos, totalAtividades, totalAcompanhados));
+ }
+ return ResponseEntity.notFound().build();
+ }
+
+
+}
diff --git a/src/main/java/br/com/aprendizagem/api/controller/SituacaoAprendizagemController.java b/src/main/java/br/com/aprendizagem/api/controller/SituacaoAprendizagemController.java
index 608589b..fc6893d 100644
--- a/src/main/java/br/com/aprendizagem/api/controller/SituacaoAprendizagemController.java
+++ b/src/main/java/br/com/aprendizagem/api/controller/SituacaoAprendizagemController.java
@@ -1,18 +1,14 @@
package br.com.aprendizagem.api.controller;
import br.com.aprendizagem.api.entity.SituacaoAprendizagem;
-import br.com.aprendizagem.api.entity.SituacaoEncontro;
+import br.com.aprendizagem.api.request.SituacaoAprendizagemRequest;
import br.com.aprendizagem.api.response.SituacaoAprendizagemResponse;
import br.com.aprendizagem.api.service.SituacaoAprendizagemService;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
-import java.util.Optional;
@RestController
@RequestMapping(value = "situacao-aprendizagem")
@@ -34,5 +30,20 @@ public ResponseEntity getSituacaoAprendizagemById(
public ResponseEntity> getSituacoesAprendizagemByEncontroId(@PathVariable Long encontroId) {
return situacaoAprendizagemService.getSituacoesAprendizagemByEncontroId(encontroId);
}
+
+ @GetMapping("filtrarSituacoesAprendizagemPorPlanejamentoUcId/{planejamentoUcId}")
+ public ResponseEntity> getSituacoesAprendizagemByPlanejamentoUcId(@PathVariable Long planejamentoUcId) {
+ return situacaoAprendizagemService.getSituacoesAprendizagemByPlanejamentoUcId(planejamentoUcId);
+ }
+
+ @PostMapping
+ public ResponseEntity createSituacaoAprendizagem(@RequestBody SituacaoAprendizagemRequest situacaoRequest) {
+ return situacaoAprendizagemService.createSituacaoAprendizagem(situacaoRequest);
+ }
+
+ @PutMapping("/{id}")
+ public ResponseEntity updateSituacaoAprendizagem(@PathVariable Long id,@RequestBody SituacaoAprendizagem situacaoAprendizagem) {
+ return situacaoAprendizagemService.updateSituacaoAprendizagem(id, situacaoAprendizagem);
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/entity/Acompanhamento.java b/src/main/java/br/com/aprendizagem/api/entity/Acompanhamento.java
index 5ecee72..cfb2d71 100644
--- a/src/main/java/br/com/aprendizagem/api/entity/Acompanhamento.java
+++ b/src/main/java/br/com/aprendizagem/api/entity/Acompanhamento.java
@@ -19,6 +19,7 @@
public class Acompanhamento {
@Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "acompanhamento_id")
private Long id;
diff --git a/src/main/java/br/com/aprendizagem/api/entity/ChapterAssunto.java b/src/main/java/br/com/aprendizagem/api/entity/ChapterAssunto.java
index 17cc9a5..1094b16 100644
--- a/src/main/java/br/com/aprendizagem/api/entity/ChapterAssunto.java
+++ b/src/main/java/br/com/aprendizagem/api/entity/ChapterAssunto.java
@@ -1,15 +1,14 @@
package br.com.aprendizagem.api.entity;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
@Entity
@AllArgsConstructor
@@ -63,17 +62,27 @@ public class ChapterAssunto {
inverseJoinColumns = @JoinColumn(name = "chapter_tag_id"))
private Set tags = new HashSet<>();
+ @JsonManagedReference
+ @OneToMany(mappedBy = "chapterAssunto", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+ private Set comentarios = new HashSet<>();
+
+ @Override
+ public String toString() {
+ return "ChapterAssunto{" +
+ "id=" + id +
+ ", dataCadastro=" + dataCadastro +
+ ", titulo='" + titulo + '\'' +
+ ", descricao='" + descricao + '\'' +
+ ", imagem=" + Arrays.toString(imagem) +
+ ", contadorVisualizacao=" + contadorVisualizacao +
+ ", status=" + status +
+ ", verificacao=" + verificacao +
+ ", chapter=" + chapter +
+ ", usuario=" + usuario +
+ ", usuarioVerificacao=" + usuarioVerificacao +
+ ", tags=" + tags +
+ ", comentarios=" + comentarios +
+ '}';
+ }
}
-//chapter_assunto_id
-//chapter_assunto_data_cadastro
-//chapter_assunto_titulo
-//chapter_assunto_descricao
-//chapter_assunto_imagem
-//chapter_assunto_contador_visualizacao
-//chapter_assunto_status
-//chapter_assunto_verificacao
-//chapter_id
-//usuario_id
-//usuario_id_verificacao
-//chapter_tag
diff --git a/src/main/java/br/com/aprendizagem/api/entity/ChapterAssuntoComentario.java b/src/main/java/br/com/aprendizagem/api/entity/ChapterAssuntoComentario.java
index 8af792a..8b28e97 100644
--- a/src/main/java/br/com/aprendizagem/api/entity/ChapterAssuntoComentario.java
+++ b/src/main/java/br/com/aprendizagem/api/entity/ChapterAssuntoComentario.java
@@ -1,11 +1,17 @@
package br.com.aprendizagem.api.entity;
+import br.com.aprendizagem.api.DTO.ChapterAssuntoComentarioDto;
+import com.fasterxml.jackson.annotation.JsonBackReference;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.time.LocalDateTime;
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
@Data
@Entity
@@ -14,17 +20,20 @@
@Table(name = "chapter_assunto_comentario")
public class ChapterAssuntoComentario {
@Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "chapter_assunto_comentario_id")
private Long id;
@Lob
@Column(name = "chapter_assunto_comentario_texto", columnDefinition = "TEXT")
private String texto;
- @Column(name = "chapter_assunto_comentario_pai")
- private Long pai;
+ @ManyToOne
+ @JoinColumn(name = "chapter_assunto_comentario_pai")
+ private ChapterAssuntoComentario comentarioPai;
@Column(name = "chapter_assunto_comentario_data")
private LocalDateTime data;
@Column(name = "chapter_assunto_comentario_verificacao")
private Integer verificacao;
+ @JsonBackReference
@ManyToOne
@JoinColumn(name = "chapter_assunto_id")
private ChapterAssunto chapterAssunto;
@@ -35,5 +44,23 @@ public class ChapterAssuntoComentario {
@JoinColumn(name = "usuario_id_verificacao")
private Usuario usuarioVerificacao;
+ @JsonManagedReference
+ @OneToMany(mappedBy = "chapterAssuntoComentario", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+ private Set curtidas = new HashSet<>();
+
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ ChapterAssuntoComentario that = (ChapterAssuntoComentario) o;
+ return Objects.equals(id, that.id);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id);
+ }
}
\ No newline at end of file
diff --git a/src/main/java/br/com/aprendizagem/api/entity/ChapterAssuntoTag.java b/src/main/java/br/com/aprendizagem/api/entity/ChapterAssuntoTag.java
deleted file mode 100644
index 236b1fe..0000000
--- a/src/main/java/br/com/aprendizagem/api/entity/ChapterAssuntoTag.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package br.com.aprendizagem.api.entity;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = "chapter_assunto_tag")
-@AllArgsConstructor
-@Data
-@NoArgsConstructor
-public class ChapterAssuntoTag {
-
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- @Column(name = "chapter_assunto_tag_id")
- private Integer id;
-
- @ManyToOne
- @JoinColumn(name = "chapter_assunto_id")
- private ChapterAssunto chapterAssunto;
-
- @ManyToOne
- @JoinColumn(name = "chapter_tag_id")
- private ChapterTag chapterTag;
-
-}
diff --git a/src/main/java/br/com/aprendizagem/api/entity/ControleExecucao.java b/src/main/java/br/com/aprendizagem/api/entity/ControleExecucao.java
new file mode 100644
index 0000000..73cf21b
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/entity/ControleExecucao.java
@@ -0,0 +1,36 @@
+package br.com.aprendizagem.api.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+import java.time.LocalDateTime;
+
+@Entity
+@Table(name = "controle_execucao")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ControleExecucao {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "controle_execucao_id")
+ private Long id;
+ @Column(name = "controle_execucao_data")
+ private LocalDateTime data;
+ @Column(name = "controle_execucao_status")
+ private Integer status;
+ @ManyToOne
+ @JoinColumn(name = "registro_encontro_tipo_id")
+ private EncontroTipo encontroTipo;
+ @ManyToOne
+ @JoinColumn(name = "encontro_id")
+ private Encontro encontro;
+ @ManyToOne
+ @JoinColumn(name = "participante_id")
+ private Participante participante;
+}
+
+//
\ No newline at end of file
diff --git a/src/main/java/br/com/aprendizagem/api/entity/Curtida.java b/src/main/java/br/com/aprendizagem/api/entity/Curtida.java
new file mode 100644
index 0000000..6725470
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/entity/Curtida.java
@@ -0,0 +1,35 @@
+package br.com.aprendizagem.api.entity;
+
+import com.fasterxml.jackson.annotation.JsonBackReference;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.persistence.*;
+
+@Entity
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class Curtida {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "curtida_id")
+ private Integer id;
+
+ @Column(name = "curtida_rank")
+ private Integer rank;
+
+ @ManyToOne
+ @JoinColumn(name = "usuario_id")
+ private Usuario usuario;
+
+ @ManyToOne
+ @JsonBackReference
+ @JoinColumn(name = "chapter_assunto_comentario_id")
+ private ChapterAssuntoComentario chapterAssuntoComentario;
+
+}
diff --git a/src/main/java/br/com/aprendizagem/api/entity/Modulo.java b/src/main/java/br/com/aprendizagem/api/entity/Modulo.java
index 82ca2b0..3f3cd03 100644
--- a/src/main/java/br/com/aprendizagem/api/entity/Modulo.java
+++ b/src/main/java/br/com/aprendizagem/api/entity/Modulo.java
@@ -38,7 +38,7 @@ public class Modulo {
@JoinColumn(name = "oferta_id", nullable = false)
@JsonIgnore
private Oferta oferta;
-
- @OneToMany(mappedBy = "modulo")
- private Set unidadeCurricular;
+
+// @OneToMany(mappedBy = "modulo")
+// private Set unidadeCurricular;
}
diff --git a/src/main/java/br/com/aprendizagem/api/entity/ObjetoAprendizagem.java b/src/main/java/br/com/aprendizagem/api/entity/ObjetoAprendizagem.java
index ddb49d5..495671b 100644
--- a/src/main/java/br/com/aprendizagem/api/entity/ObjetoAprendizagem.java
+++ b/src/main/java/br/com/aprendizagem/api/entity/ObjetoAprendizagem.java
@@ -9,7 +9,10 @@
import javax.persistence.*;
import java.sql.Blob;
+import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
@Data
@Entity
@@ -19,6 +22,7 @@
public class ObjetoAprendizagem {
@Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "objeto_aprendizagem_id")
private Long id;
@@ -43,11 +47,19 @@ public class ObjetoAprendizagem {
@JoinColumn(name ="grau_dificuldade_id")
private GrauDificuldade grauDificuldade;
-// @ManyToOne
-// @JoinColumn(name ="usuario_id")
-// private Usuario usuario;
+ @ManyToMany(fetch = FetchType.LAZY)
+ @JoinTable(
+ name = "objeto_aprendizagem_recurso",
+ joinColumns = @JoinColumn(name = "objeto_aprendizagem_id"),
+ inverseJoinColumns = @JoinColumn(name = "recurso_id")
+ )
+ private List recursos = new ArrayList<>();
+
+ @ManyToOne
+ @JoinColumn(name ="usuario_id")
+ private Usuario usuario;
// @JsonBackReference
// @ManyToMany(mappedBy = "objetosAprendizagem", fetch = FetchType.LAZY)
-// private List situacoesAprendizagem;
+// private Set situacoesAprendizagem = new HashSet<>();
}
diff --git a/src/main/java/br/com/aprendizagem/api/entity/SituacaoAprendizagem.java b/src/main/java/br/com/aprendizagem/api/entity/SituacaoAprendizagem.java
index 14952be..dbd2494 100644
--- a/src/main/java/br/com/aprendizagem/api/entity/SituacaoAprendizagem.java
+++ b/src/main/java/br/com/aprendizagem/api/entity/SituacaoAprendizagem.java
@@ -1,9 +1,6 @@
package br.com.aprendizagem.api.entity;
-import com.fasterxml.jackson.annotation.JsonBackReference;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonManagedReference;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -23,6 +20,7 @@
public class SituacaoAprendizagem {
@Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "situacao_aprendizagem_id")
private Long id;
@@ -42,6 +40,9 @@ public class SituacaoAprendizagem {
@Column(name = "situacao_aprendizagem_fim")
private LocalDateTime fim;
+ @Column(name = "situacao_aprendizagem_duracao")
+ private Integer duracao;
+
@Column(name = "situacao_aprendizagem_status")
private Integer status;
@@ -64,8 +65,7 @@ public class SituacaoAprendizagem {
private Set objetosAprendizagem = new HashSet<>();
@OneToMany(fetch = FetchType.EAGER, mappedBy = "situacaoAprendizagem")
- private List atividades;
-
+ private List atividades = new ArrayList<>();
}
diff --git a/src/main/java/br/com/aprendizagem/api/entity/UnidadeCurricular.java b/src/main/java/br/com/aprendizagem/api/entity/UnidadeCurricular.java
index fbe912c..37034cf 100644
--- a/src/main/java/br/com/aprendizagem/api/entity/UnidadeCurricular.java
+++ b/src/main/java/br/com/aprendizagem/api/entity/UnidadeCurricular.java
@@ -2,16 +2,7 @@
import java.util.Set;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
+import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -56,10 +47,9 @@ public class UnidadeCurricular {
@Column(name = "unidade_curricular_status", nullable = false)
private Integer status;
- @ManyToOne
+ @ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "modulo_id", nullable = false)
- @JsonIgnore
- private Modulo modulo;
+ private Modulo modulo;
//@OneToMany(mappedBy = "competencia")
//private Set competencia;
diff --git a/src/main/java/br/com/aprendizagem/api/repository/AcompanhamentoRepository.java b/src/main/java/br/com/aprendizagem/api/repository/AcompanhamentoRepository.java
index d44f1cd..3736941 100644
--- a/src/main/java/br/com/aprendizagem/api/repository/AcompanhamentoRepository.java
+++ b/src/main/java/br/com/aprendizagem/api/repository/AcompanhamentoRepository.java
@@ -3,6 +3,7 @@
import br.com.aprendizagem.api.entity.Acompanhamento;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
import java.util.List;
@@ -22,4 +23,10 @@ public interface AcompanhamentoRepository extends JpaRepository findByParticipante_Grupo_IdAndParticipante_Estudante_IdAndAtividade_Id(Long grupoId, Long estudanteId, Long atividadeId);
List findByParticipante_Grupo_IdAndParticipante_Estudante_IdAndObjetoAprendizagem_Id(Long grupoId, Long estudanteId, Long objetoId);
+
+ Integer countByParticipante_Id(Long participanteId);
+
+ @Query("SELECT COUNT(a) FROM Acompanhamento a " +
+ "WHERE a.participante.id = :participanteId AND a.status = 1")
+ Integer countActiveByParticipanteId(@Param("participanteId") Long participanteId);
}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoComentarioRepository.java b/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoComentarioRepository.java
new file mode 100644
index 0000000..a630530
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoComentarioRepository.java
@@ -0,0 +1,29 @@
+package br.com.aprendizagem.api.repository;
+
+import br.com.aprendizagem.api.DTO.ChapterAssuntoComentarioDto;
+import br.com.aprendizagem.api.entity.ChapterAssuntoComentario;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+public interface ChapterAssuntoComentarioRepository extends JpaRepository {
+
+ @Query("SELECT cac FROM ChapterAssuntoComentario cac WHERE cac.id = :id")
+ ChapterAssuntoComentario getChapterAssuntoComentarioById(Long id);
+
+ @Query("SELECT cac FROM ChapterAssuntoComentario cac WHERE cac.chapterAssunto.id = :chapterAssuntoId")
+ List findByChapterAssuntoId(Integer chapterAssuntoId);
+
+ @Query("SELECT cac FROM ChapterAssuntoComentario cac WHERE cac.chapterAssunto.id = :chapterAssuntoId and cac.comentarioPai is null")
+ List findByChapterAssuntoIdAndComentarioPaiNull(Integer chapterAssuntoId);
+
+// @Query("SELECT cac FROM ChapterAssuntoComentario cac WHERE cac.comentarioPai = null")
+// List findAllComentarioPai();
+//
+// @Query("SELECT cac FROM ChapterAssuntoComentario cac WHERE cac.comentarioPai = null and cac.chapterAssunto.id = :chapterAssuntoId")
+// List findAllComentarioPaiByChapterAssuntoId(Integer chapterAssuntoId);
+//
+ @Query("SELECT cac FROM ChapterAssuntoComentario cac WHERE cac.comentarioPai.id = :comentarioPaiId")
+ List getFilhosByPaiId(Long comentarioPaiId);
+}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoRepository.java b/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoRepository.java
index d8133b2..52cf9b9 100644
--- a/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoRepository.java
+++ b/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoRepository.java
@@ -10,4 +10,9 @@ public interface ChapterAssuntoRepository extends JpaRepository getAllChapterAssunto();
+
+ @Query("SELECT ca FROM ChapterAssunto ca WHERE ca.chapter.id = 7 and ca.status = 1")
+ List getAllNoticias();
+
+ List findByChapterId(Integer chapterId);
}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoTagRepository.java b/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoTagRepository.java
deleted file mode 100644
index 2ba1d9b..0000000
--- a/src/main/java/br/com/aprendizagem/api/repository/ChapterAssuntoTagRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package br.com.aprendizagem.api.repository;
-
-import br.com.aprendizagem.api.entity.ChapterAssuntoTag;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface ChapterAssuntoTagRepository extends JpaRepository {
-}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/ChapterRepository.java b/src/main/java/br/com/aprendizagem/api/repository/ChapterRepository.java
index b3ea29c..00b4d5a 100644
--- a/src/main/java/br/com/aprendizagem/api/repository/ChapterRepository.java
+++ b/src/main/java/br/com/aprendizagem/api/repository/ChapterRepository.java
@@ -2,6 +2,15 @@
import br.com.aprendizagem.api.entity.Chapter;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
public interface ChapterRepository extends JpaRepository {
-}
+
+ @Query("SELECT c FROM Chapter c WHERE c.status = 1")
+ List getActiveChapters();
+
+ @Query("SELECT c FROM Chapter c WHERE c.status = 2")
+ Chapter getNoticiasChapter();
+}
\ No newline at end of file
diff --git a/src/main/java/br/com/aprendizagem/api/repository/ControleExecucaoRepository.java b/src/main/java/br/com/aprendizagem/api/repository/ControleExecucaoRepository.java
new file mode 100644
index 0000000..4222a98
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/repository/ControleExecucaoRepository.java
@@ -0,0 +1,9 @@
+package br.com.aprendizagem.api.repository;
+
+import br.com.aprendizagem.api.entity.ControleExecucao;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface ControleExecucaoRepository extends JpaRepository {
+
+ ControleExecucao findByEncontroIdAndParticipante_Estudante_Id(Long encontroId, Long estudanteId);
+}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/CurtidaRepository.java b/src/main/java/br/com/aprendizagem/api/repository/CurtidaRepository.java
new file mode 100644
index 0000000..7b43d65
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/repository/CurtidaRepository.java
@@ -0,0 +1,16 @@
+package br.com.aprendizagem.api.repository;
+
+import br.com.aprendizagem.api.entity.Curtida;
+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 CurtidaRepository extends JpaRepository {
+
+
+ @Query("SELECT c FROM Curtida c WHERE c.chapterAssuntoComentario.id = :comentarioId")
+ List getCurtidasByComentarioId(Long comentarioId);
+
+}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/EncontroRepository.java b/src/main/java/br/com/aprendizagem/api/repository/EncontroRepository.java
index 92c1743..440afe1 100644
--- a/src/main/java/br/com/aprendizagem/api/repository/EncontroRepository.java
+++ b/src/main/java/br/com/aprendizagem/api/repository/EncontroRepository.java
@@ -2,10 +2,24 @@
import br.com.aprendizagem.api.entity.Encontro;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
public interface EncontroRepository extends JpaRepository {
Optional> findByGrupoId(Long id);
+
+ @Query("SELECT COUNT (sao) FROM Encontro e " +
+ "JOIN e.situacoesAprendizagem sa " +
+ "JOIN sa.objetosAprendizagem sao " +
+ "WHERE e.id = :encontroId")
+ Integer countObjetoAprendizagemByEncontroId(@Param("encontroId") Long encontroId);
+
+ @Query("SELECT COUNT (a) FROM Encontro e " +
+ "JOIN e.situacoesAprendizagem sa " +
+ "JOIN sa.atividades a " +
+ "WHERE e.id = :encontroId")
+ Integer countAtividadeByEncontroId(@Param("encontroId") Long encontroId);
}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/GrupoRepository.java b/src/main/java/br/com/aprendizagem/api/repository/GrupoRepository.java
index 8802a71..f8f153b 100644
--- a/src/main/java/br/com/aprendizagem/api/repository/GrupoRepository.java
+++ b/src/main/java/br/com/aprendizagem/api/repository/GrupoRepository.java
@@ -15,5 +15,6 @@ public interface GrupoRepository extends JpaRepository {
// @Query("SELECT g FROM Grupo g JOIN g.estudantes s WHERE s.id = :estudanteId AND g.periodo.status = 1")
// List getGruposByPeriodoAtivoEstudanteId(@Param("estudanteId") Long estudanteId);
- List getGruposByProfessorId(Long professorId);
+ @Query("SELECT g FROM Grupo g JOIN g.professor s WHERE s.id = :professorId AND g.periodo.status = 1")
+ List getGruposByPeriodoAtivoByProfessorId(Long professorId);
}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/ObjetoAprendizagemRepository.java b/src/main/java/br/com/aprendizagem/api/repository/ObjetoAprendizagemRepository.java
index 9516ec1..20f1337 100644
--- a/src/main/java/br/com/aprendizagem/api/repository/ObjetoAprendizagemRepository.java
+++ b/src/main/java/br/com/aprendizagem/api/repository/ObjetoAprendizagemRepository.java
@@ -2,6 +2,15 @@
import br.com.aprendizagem.api.entity.ObjetoAprendizagem;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
public interface ObjetoAprendizagemRepository extends JpaRepository {
+
+ @Query("SELECT DISTINCT o FROM ObjetoAprendizagem o LEFT JOIN FETCH o.recursos")
+ List findAllWithRecursos();
+
+ @Query("SELECT o FROM ObjetoAprendizagem o LEFT JOIN FETCH o.recursos WHERE o.id = :objetoId")
+ ObjetoAprendizagem findByIdWithRecursos(Long objetoId);
}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/ParticipanteRepository.java b/src/main/java/br/com/aprendizagem/api/repository/ParticipanteRepository.java
index 0a83d8b..0063930 100644
--- a/src/main/java/br/com/aprendizagem/api/repository/ParticipanteRepository.java
+++ b/src/main/java/br/com/aprendizagem/api/repository/ParticipanteRepository.java
@@ -9,4 +9,8 @@ public interface ParticipanteRepository extends JpaRepository findByEstudanteId(Long estudanteId);
+
+ Participante findByGrupo_IdAndEstudante_Id(Long grupoId, Long estudanteId);
+
+ List findByGrupo_Id(Long grupoId);
}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/PlanejamentoUcRepository.java b/src/main/java/br/com/aprendizagem/api/repository/PlanejamentoUcRepository.java
new file mode 100644
index 0000000..8448a85
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/repository/PlanejamentoUcRepository.java
@@ -0,0 +1,7 @@
+package br.com.aprendizagem.api.repository;
+
+import br.com.aprendizagem.api.entity.PlanejamentoUc;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface PlanejamentoUcRepository extends JpaRepository {
+}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/ProfessorRepository.java b/src/main/java/br/com/aprendizagem/api/repository/ProfessorRepository.java
index 8207ca0..ed08eda 100644
--- a/src/main/java/br/com/aprendizagem/api/repository/ProfessorRepository.java
+++ b/src/main/java/br/com/aprendizagem/api/repository/ProfessorRepository.java
@@ -4,4 +4,5 @@
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProfessorRepository extends JpaRepository {
+ Professor findByUsuarioId(String usuarioId);
}
diff --git a/src/main/java/br/com/aprendizagem/api/repository/SituacaoAprendizagemRepository.java b/src/main/java/br/com/aprendizagem/api/repository/SituacaoAprendizagemRepository.java
index 6f64462..973ce66 100644
--- a/src/main/java/br/com/aprendizagem/api/repository/SituacaoAprendizagemRepository.java
+++ b/src/main/java/br/com/aprendizagem/api/repository/SituacaoAprendizagemRepository.java
@@ -3,5 +3,9 @@
import br.com.aprendizagem.api.entity.SituacaoAprendizagem;
import org.springframework.data.jpa.repository.JpaRepository;
+import java.util.List;
+
public interface SituacaoAprendizagemRepository extends JpaRepository {
+
+ List findByPlanejamentoUc_Id (Long planejamentoUcId);
}
diff --git a/src/main/java/br/com/aprendizagem/api/request/AcompanhamentoRequest.java b/src/main/java/br/com/aprendizagem/api/request/AcompanhamentoRequest.java
new file mode 100644
index 0000000..c67c22d
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/request/AcompanhamentoRequest.java
@@ -0,0 +1,33 @@
+package br.com.aprendizagem.api.request;
+
+import br.com.aprendizagem.api.entity.Atividade;
+import br.com.aprendizagem.api.entity.ObjetoAprendizagem;
+import br.com.aprendizagem.api.entity.Participante;
+import br.com.aprendizagem.api.entity.SituacaoAprendizagem;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import java.time.LocalDateTime;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class AcompanhamentoRequest {
+ private String entrega;
+ private byte[] entregaArquivo;
+ private LocalDateTime inicio;
+ private LocalDateTime finalizacao;
+ private Integer status;
+ private Participante participante;
+ private Integer avaliacaoConceitoId;
+ private Atividade atividade;
+ private Long objetoAprendizagemId;
+ private Long situacaoAprendizagemId;
+ private Integer badgeId;
+ private LocalDateTime dataBadge;
+ private Long atividadePerguntaRespostaId;
+}
diff --git a/src/main/java/br/com/aprendizagem/api/request/SituacaoAprendizagemRequest.java b/src/main/java/br/com/aprendizagem/api/request/SituacaoAprendizagemRequest.java
new file mode 100644
index 0000000..af8c622
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/request/SituacaoAprendizagemRequest.java
@@ -0,0 +1,22 @@
+package br.com.aprendizagem.api.request;
+
+import br.com.aprendizagem.api.entity.SituacaoAprendizagem;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class SituacaoAprendizagemRequest {
+ private String titulo;
+ private String descricao;
+ private Integer ordem;
+ private Integer duracao;
+ private Integer status;
+ private Long planejamentoUcId;
+ private Integer grauDificuldadeId;
+ private Integer badgeId;
+}
diff --git a/src/main/java/br/com/aprendizagem/api/response/EncontroAlunoResponse.java b/src/main/java/br/com/aprendizagem/api/response/EncontroAlunoResponse.java
deleted file mode 100644
index 2be5a5b..0000000
--- a/src/main/java/br/com/aprendizagem/api/response/EncontroAlunoResponse.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package br.com.aprendizagem.api.response;
-
-public class EncontroAlunoResponse {
-}
diff --git a/src/main/java/br/com/aprendizagem/api/response/EncontroEstudanteResponse.java b/src/main/java/br/com/aprendizagem/api/response/EncontroEstudanteResponse.java
new file mode 100644
index 0000000..2e0b9b8
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/response/EncontroEstudanteResponse.java
@@ -0,0 +1,55 @@
+package br.com.aprendizagem.api.response;
+
+import br.com.aprendizagem.api.entity.DiaLetivo;
+import br.com.aprendizagem.api.entity.Encontro;
+import br.com.aprendizagem.api.entity.EncontroTipo;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class EncontroEstudanteResponse {
+
+ private Long id;
+ private String observacao;
+ private DiaLetivo diaLetivo;
+ private Long grupoId;
+ private LocalDateTime horaInicio;
+ private LocalDateTime horaFim;
+ private String local;
+ private Integer status;
+ private EncontroTipo encontroTipo;
+ private List situacoesAprendizagem;
+ private Integer presenca;
+
+ public static EncontroEstudanteResponse of (Encontro encontro, Integer presenca) {
+ return EncontroEstudanteResponse.builder()
+ .id(encontro.getId())
+ .observacao(encontro.getObservacao())
+ .diaLetivo(encontro.getDiaLetivo())
+ .grupoId(encontro.getGrupo().getId())
+ .horaInicio(encontro.getHoraInicio())
+ .horaFim(encontro.getHoraFim())
+ .local(encontro.getLocal())
+ .status(encontro.getStatus())
+ .encontroTipo(encontro.getEncontroTipo())
+ .situacoesAprendizagem(SituacaoAprendizagemResponse.of(encontro.getSituacoesAprendizagem()))
+ .presenca(presenca)
+ .build();
+ }
+
+// public static List of (List encontros) {
+// List encontroEstudanteResponses = new ArrayList<>();
+// for( Encontro encontro : encontros) {
+// encontroEstudanteResponses.add(of(encontro));
+// }
+// return encontroEstudanteResponses;
+// }
+}
diff --git a/src/main/java/br/com/aprendizagem/api/response/ModuloResponse.java b/src/main/java/br/com/aprendizagem/api/response/ModuloResponse.java
index dea21ec..f16e5f2 100644
--- a/src/main/java/br/com/aprendizagem/api/response/ModuloResponse.java
+++ b/src/main/java/br/com/aprendizagem/api/response/ModuloResponse.java
@@ -26,7 +26,7 @@ public class ModuloResponse {
private String descricao;
private int cargaHoraria;
private Oferta oferta;
- private Set unidadeCurricular;
+// private Set unidadeCurricular;
public static ModuloResponse of(Modulo modulo) {
return ModuloResponse.builder()
@@ -34,7 +34,7 @@ public static ModuloResponse of(Modulo modulo) {
.descricao(modulo.getDescricao())
.cargaHoraria(modulo.getCargaHoraria())
.oferta(modulo.getOferta())
- .unidadeCurricular(modulo.getUnidadeCurricular())
+// .unidadeCurricular(modulo.getUnidadeCurricular())
.build();
}
diff --git a/src/main/java/br/com/aprendizagem/api/response/ObjetoAprendizagemResponse.java b/src/main/java/br/com/aprendizagem/api/response/ObjetoAprendizagemResponse.java
index 0b4a407..1d00d39 100644
--- a/src/main/java/br/com/aprendizagem/api/response/ObjetoAprendizagemResponse.java
+++ b/src/main/java/br/com/aprendizagem/api/response/ObjetoAprendizagemResponse.java
@@ -1,9 +1,6 @@
package br.com.aprendizagem.api.response;
-import br.com.aprendizagem.api.entity.GrauDificuldade;
-import br.com.aprendizagem.api.entity.ObjetoAprendizagem;
-import br.com.aprendizagem.api.entity.SituacaoAprendizagem;
-import br.com.aprendizagem.api.entity.Usuario;
+import br.com.aprendizagem.api.entity.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -28,6 +25,7 @@ public class ObjetoAprendizagemResponse {
private Integer ordem;
private Integer status;
private GrauDificuldade grauDificuldade;
+ private List recursos;
public static ObjetoAprendizagemResponse of (ObjetoAprendizagem objetoAprendizagem){
return ObjetoAprendizagemResponse.builder()
diff --git a/src/main/java/br/com/aprendizagem/api/response/ParticipanteResponse.java b/src/main/java/br/com/aprendizagem/api/response/ParticipanteResponse.java
index 6bcb2f9..d9b043c 100644
--- a/src/main/java/br/com/aprendizagem/api/response/ParticipanteResponse.java
+++ b/src/main/java/br/com/aprendizagem/api/response/ParticipanteResponse.java
@@ -1,6 +1,8 @@
package br.com.aprendizagem.api.response;
+import br.com.aprendizagem.api.entity.Estudante;
import br.com.aprendizagem.api.entity.Participante;
+import br.com.aprendizagem.api.entity.Usuario;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -20,6 +22,7 @@ public class ParticipanteResponse {
private Integer status;
private Long grupoId;
private String usuarioId;
+ private Estudante estudante;
public static ParticipanteResponse of(Participante participante){
@@ -29,6 +32,7 @@ public static ParticipanteResponse of(Participante participante){
.status(participante.getStatus())
.grupoId(participante.getGrupo().getId())
.usuarioId(participante.getEstudante().getUsuario().getId())
+ .estudante(participante.getEstudante())
.build();
}
diff --git a/src/main/java/br/com/aprendizagem/api/response/ProgressoEstudanteResponse.java b/src/main/java/br/com/aprendizagem/api/response/ProgressoEstudanteResponse.java
new file mode 100644
index 0000000..f01f008
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/response/ProgressoEstudanteResponse.java
@@ -0,0 +1,34 @@
+package br.com.aprendizagem.api.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.text.DecimalFormat;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProgressoEstudanteResponse {
+ private String progressoEstudante;
+ private String progressoUc;
+ private int totalObjetos;
+ private int totalAtividades;
+ private int totalAcompanhados;
+
+ private static final DecimalFormat df = new DecimalFormat("0.00");
+
+ public static ProgressoEstudanteResponse of (int totalObjetos, int totalAtividades, int totalAcompanhados){
+ float progressoEstu = (float) totalAcompanhados/(totalObjetos + totalAtividades) * 100;
+
+ return ProgressoEstudanteResponse.builder()
+ .progressoEstudante(df.format(progressoEstu))
+ .progressoUc("100")
+ .totalObjetos(totalObjetos)
+ .totalAtividades(totalAtividades)
+ .totalAcompanhados(totalAcompanhados)
+ .build();
+ }
+}
diff --git a/src/main/java/br/com/aprendizagem/api/response/SituacaoAprendizagemResponse.java b/src/main/java/br/com/aprendizagem/api/response/SituacaoAprendizagemResponse.java
index 46f140c..1091f03 100644
--- a/src/main/java/br/com/aprendizagem/api/response/SituacaoAprendizagemResponse.java
+++ b/src/main/java/br/com/aprendizagem/api/response/SituacaoAprendizagemResponse.java
@@ -5,6 +5,8 @@
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
+
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@@ -19,6 +21,9 @@ public class SituacaoAprendizagemResponse {
private String titulo;
private String descricao;
private Integer ordem;
+ private LocalDateTime inicio;
+ private LocalDateTime fim;
+ private Integer duracao;
private Integer status;
private PlanejamentoUc planejamentoUc;
private GrauDificuldade grauDificuldade;
@@ -31,6 +36,9 @@ public static SituacaoAprendizagemResponse of (SituacaoAprendizagem situacaoApre
.titulo(situacaoAprendizagem.getTitulo())
.descricao(situacaoAprendizagem.getDescricao())
.ordem(situacaoAprendizagem.getOrdem())
+ .inicio(situacaoAprendizagem.getInicio())
+ .fim(situacaoAprendizagem.getFim())
+ .duracao(situacaoAprendizagem.getDuracao())
.status(situacaoAprendizagem.getStatus())
.planejamentoUc(situacaoAprendizagem.getPlanejamentoUc())
.grauDificuldade(situacaoAprendizagem.getGrauDificuldade())
diff --git a/src/main/java/br/com/aprendizagem/api/response/UsuarioResponse.java b/src/main/java/br/com/aprendizagem/api/response/UsuarioResponse.java
index 414e91d..98526da 100644
--- a/src/main/java/br/com/aprendizagem/api/response/UsuarioResponse.java
+++ b/src/main/java/br/com/aprendizagem/api/response/UsuarioResponse.java
@@ -21,6 +21,9 @@ public class UsuarioResponse {
private String apelido;
private String email;
private LocalDateTime dataNascimento;
+ private String telefone;
+ private LocalDateTime dataCadastro;
+ private byte[] foto;
private Integer status;
public static UsuarioResponse of(Usuario usuario) {
@@ -31,6 +34,9 @@ public static UsuarioResponse of(Usuario usuario) {
.apelido(usuario.getApelido())
.email(usuario.getEmail())
.dataNascimento(usuario.getDataNascimento())
+ .telefone(usuario.getTelefone())
+ .dataCadastro(usuario.getDataCadastro())
+ .foto(usuario.getFoto())
.status(usuario.getStatus())
.build();
}
diff --git a/src/main/java/br/com/aprendizagem/api/service/AcompanhamentoService.java b/src/main/java/br/com/aprendizagem/api/service/AcompanhamentoService.java
index 091ee19..c21a697 100644
--- a/src/main/java/br/com/aprendizagem/api/service/AcompanhamentoService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/AcompanhamentoService.java
@@ -1,7 +1,11 @@
package br.com.aprendizagem.api.service;
import br.com.aprendizagem.api.entity.Acompanhamento;
+import br.com.aprendizagem.api.entity.Atividade;
+import br.com.aprendizagem.api.entity.ObjetoAprendizagem;
+import br.com.aprendizagem.api.entity.Participante;
import br.com.aprendizagem.api.repository.AcompanhamentoRepository;
+import br.com.aprendizagem.api.request.AcompanhamentoRequest;
import br.com.aprendizagem.api.response.AcompanhamentoResponse;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
@@ -10,13 +14,15 @@
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
@Service
@AllArgsConstructor
public class AcompanhamentoService {
private final AcompanhamentoRepository acompanhamentoRepository;
-
+ private final ObjetoAprendizagemService objetoAprendizagemService;
@Transactional
public ResponseEntity> getAcompanhamentosResponse() {
@@ -85,6 +91,7 @@ public ResponseEntity> getAcompanhamentosResponseBy
return ResponseEntity.ok(AcompanhamentoResponse.of(acompanhamentos));
}
+ @Transactional
public ResponseEntity> getAcompanhamentosResponseByGrupoIdByEstudanteIdByAtividadeId(Long grupoId, Long estudanteId, Long atividadeId) {
List acompanhamentos = acompanhamentoRepository.findByParticipante_Grupo_IdAndParticipante_Estudante_IdAndAtividade_Id(grupoId, estudanteId, atividadeId);
if(acompanhamentos.isEmpty()) {
@@ -93,11 +100,59 @@ public ResponseEntity> getAcompanhamentosResponseBy
return ResponseEntity.ok(AcompanhamentoResponse.of(acompanhamentos));
}
+ @Transactional
public ResponseEntity> getAcompanhamentosResponseByGrupoIdByEstudanteIdByObjetoId(Long grupoId, Long estudanteId, Long objetoId) {
List acompanhamentos = acompanhamentoRepository.findByParticipante_Grupo_IdAndParticipante_Estudante_IdAndObjetoAprendizagem_Id(grupoId, estudanteId, objetoId);
if(acompanhamentos.isEmpty()) {
- return ResponseEntity.noContent().build();
+ return ResponseEntity.notFound().build();
}
+ acompanhamentos = acompanhamentos.stream().filter(acompanhamento -> acompanhamento.getStatus() != -1).collect(Collectors.toList());
return ResponseEntity.ok(AcompanhamentoResponse.of(acompanhamentos));
}
+
+ @Transactional
+ public Integer getTotalAcompanhamentosByParticipanteId(Long participanteId) {
+ return acompanhamentoRepository.countActiveByParticipanteId(participanteId);
+ }
+
+ @Transactional
+ public ResponseEntity createAcompanhamento(AcompanhamentoRequest acompanhamentoRequest) {
+
+ Optional optAcompanhamentoExistente = acompanhamentoRepository.findByObjetoAprendizagem_IdAndParticipante_Estudante_Id(
+ acompanhamentoRequest.getObjetoAprendizagemId(),
+ acompanhamentoRequest.getParticipante().getEstudante().getId())
+ .stream().filter(acompanhamento -> acompanhamento.getStatus() != -1).findFirst();
+ if(optAcompanhamentoExistente.isEmpty()){
+ Acompanhamento acompanhamento = new Acompanhamento();
+ acompanhamento.setEntrega(acompanhamentoRequest.getEntrega());
+ if(acompanhamento.getEntrega() == null) {
+ acompanhamento.setEntrega("0");
+ }
+ acompanhamento.setEntregaArquivo(acompanhamentoRequest.getEntregaArquivo());
+ acompanhamento.setInicio(acompanhamentoRequest.getInicio());
+ acompanhamento.setFinalizacao(acompanhamentoRequest.getFinalizacao());
+ acompanhamento.setStatus(acompanhamentoRequest.getStatus());
+ acompanhamento.setParticipante(acompanhamentoRequest.getParticipante());
+ acompanhamento.setAvaliacaoConceitoId(acompanhamentoRequest.getAvaliacaoConceitoId());
+// Atividade atividade = atividadeService.getAtividadeById(acompanhamentoRequest.getAtividade().getId());
+ acompanhamento.setAtividade(acompanhamentoRequest.getAtividade());
+ ObjetoAprendizagem objetoAprendizagem = objetoAprendizagemService.getObjetoAprendizagemById(acompanhamentoRequest.getObjetoAprendizagemId());
+ acompanhamento.setObjetoAprendizagem(objetoAprendizagem);
+ acompanhamento.setSituacaoAprendizagemId(acompanhamentoRequest.getSituacaoAprendizagemId());
+ acompanhamento.setBadgeId(acompanhamentoRequest.getBadgeId());
+ acompanhamento.setDataBadge(acompanhamentoRequest.getDataBadge());
+ acompanhamento.setAtividadePerguntaRespostaId(acompanhamentoRequest.getAtividadePerguntaRespostaId());
+ return ResponseEntity.ok(acompanhamentoRepository.save(acompanhamento));
+ }
+ else {
+ Acompanhamento acompanhamento = optAcompanhamentoExistente.get();
+ if(acompanhamento.getStatus() == 1) {
+ acompanhamento.setStatus(0);
+ }
+ else {
+ acompanhamento.setStatus(1);
+ }
+ return ResponseEntity.ok(acompanhamentoRepository.save(acompanhamento));
+ }
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoComentarioService.java b/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoComentarioService.java
new file mode 100644
index 0000000..aa12a38
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoComentarioService.java
@@ -0,0 +1,99 @@
+package br.com.aprendizagem.api.service;
+
+import br.com.aprendizagem.api.DTO.ChapterAssuntoComentarioDto;
+import br.com.aprendizagem.api.entity.ChapterAssuntoComentario;
+import br.com.aprendizagem.api.repository.ChapterAssuntoComentarioRepository;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class ChapterAssuntoComentarioService {
+
+ private final ChapterAssuntoComentarioRepository chapterAssuntoComentarioRepository;
+
+ private final ChapterAssuntoService chapterAssuntoService;
+
+ private final UsuarioService usuarioService;
+
+ public List getAllChapterAssuntoComentario() {
+ return chapterAssuntoComentarioRepository.findAll();
+ }
+
+ public ChapterAssuntoComentario getChapterAssuntoComentarioById(Long id) {
+ ChapterAssuntoComentario chapterAssuntoComentario = chapterAssuntoComentarioRepository.getChapterAssuntoComentarioById(id);
+ if (chapterAssuntoComentario != null) {
+ return chapterAssuntoComentario;
+ } else {
+ return null;
+ }
+ }
+
+ public ChapterAssuntoComentario postChapterAssuntoComentario(ChapterAssuntoComentarioDto chapterAssuntoComentarioDto) {
+ ChapterAssuntoComentario chapterAssuntoComentario = new ChapterAssuntoComentario();
+ chapterAssuntoComentario.setTexto(chapterAssuntoComentarioDto.getTexto());
+ chapterAssuntoComentario.setData(chapterAssuntoComentarioDto.getData());
+ chapterAssuntoComentario.setChapterAssunto(chapterAssuntoService.getChapterAssuntoById(chapterAssuntoComentarioDto.getChapterAssuntoId()));
+ chapterAssuntoComentario.setUsuario(usuarioService.getUsuarioById(chapterAssuntoComentarioDto.getUsuarioId()));
+ chapterAssuntoComentario.setCurtidas(chapterAssuntoComentarioDto.getCurtidas());
+ if (chapterAssuntoComentarioDto.getPaiId() != null) {
+ chapterAssuntoComentario.setComentarioPai(getChapterAssuntoComentarioById(chapterAssuntoComentarioDto.getPaiId()));
+ }
+ return chapterAssuntoComentarioRepository.save(chapterAssuntoComentario);
+ }
+
+ public void deleteChapterAssuntoComentarioById(Integer id) {
+ chapterAssuntoComentarioRepository.deleteById(id);
+ }
+
+ public List filterByChapterAssuntoId(Integer chapterAssuntoId) {
+ return chapterAssuntoComentarioRepository.findByChapterAssuntoId(chapterAssuntoId);
+ }
+
+// public List findAllComentarioPai() {
+// return chapterAssuntoComentarioRepository.findAllComentarioPai();
+// }
+//
+// public List findAllComentarioPaiByChapterAssuntoId(Integer chapterAssuntoId) {
+// return chapterAssuntoComentarioRepository.findAllComentarioPaiByChapterAssuntoId(chapterAssuntoId);
+// }
+
+ public List getAllChapterAssuntoComentarioDto() {
+ List chapterAssuntoComentarios = chapterAssuntoComentarioRepository.findAll();
+ List chapterAssuntoComentarioDtos = new ArrayList<>();
+ for (ChapterAssuntoComentario chapterAssuntoComentario : chapterAssuntoComentarios) {
+ ChapterAssuntoComentarioDto chapterAssuntoComentarioDto = new ChapterAssuntoComentarioDto();
+ chapterAssuntoComentarioDtos.add(buildDto(chapterAssuntoComentario, chapterAssuntoComentarioDto));
+ }
+ return chapterAssuntoComentarioDtos;
+ }
+
+ public List getAllChapterAssuntoComentarioDtoByChapterAssuntoId(Integer chapterAssuntoId) {
+ List chapterAssuntoComentarios = chapterAssuntoComentarioRepository.findByChapterAssuntoId(chapterAssuntoId);
+ List chapterAssuntoComentarioDtos = new ArrayList<>();
+ for (ChapterAssuntoComentario chapterAssuntoComentario : chapterAssuntoComentarios) {
+ ChapterAssuntoComentarioDto chapterAssuntoComentarioDto = new ChapterAssuntoComentarioDto();
+ chapterAssuntoComentarioDtos.add(buildDto(chapterAssuntoComentario, chapterAssuntoComentarioDto));
+ }
+ return chapterAssuntoComentarioDtos;
+ }
+
+ public ChapterAssuntoComentarioDto buildDto(ChapterAssuntoComentario chapterAssuntoComentario, ChapterAssuntoComentarioDto chapterAssuntoComentarioDto) {
+ chapterAssuntoComentarioDto.setId(chapterAssuntoComentario.getId());
+ chapterAssuntoComentarioDto.setTexto(chapterAssuntoComentario.getTexto());
+ chapterAssuntoComentarioDto.setData(chapterAssuntoComentario.getData());
+ if (chapterAssuntoComentario.getComentarioPai() != null) {
+ chapterAssuntoComentarioDto.setPaiId(chapterAssuntoComentario.getComentarioPai().getId());
+ }
+ chapterAssuntoComentarioDto.setChapterAssuntoId(chapterAssuntoComentario.getChapterAssunto().getId());
+ chapterAssuntoComentarioDto.setUsuario(chapterAssuntoComentario.getUsuario());
+ chapterAssuntoComentarioDto.setCurtidas(chapterAssuntoComentario.getCurtidas());
+ return chapterAssuntoComentarioDto;
+ }
+
+}
+
+
diff --git a/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoService.java b/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoService.java
index 2efa2dd..a5f7f46 100644
--- a/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoService.java
@@ -1,16 +1,14 @@
package br.com.aprendizagem.api.service;
+import br.com.aprendizagem.api.DTO.ChapterAssuntoDto;
import br.com.aprendizagem.api.entity.ChapterAssunto;
-import br.com.aprendizagem.api.entity.ChapterAssuntoTag;
-import br.com.aprendizagem.api.entity.ChapterTag;
import br.com.aprendizagem.api.repository.ChapterAssuntoRepository;
-import br.com.aprendizagem.api.repository.ChapterAssuntoTagRepository;
-import br.com.aprendizagem.api.repository.ChapterTagRepository;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -18,38 +16,100 @@
public class ChapterAssuntoService {
private final ChapterAssuntoRepository chapterAssuntoRepository;
- private final ChapterTagRepository chapterTagRepository;
- private final ChapterAssuntoTagRepository chapterAssuntoTagRepository;
+
@Transactional
- public ResponseEntity> getAllChapterAssunto() {
- List assuntos = chapterAssuntoRepository.getAllChapterAssunto();
- if (assuntos.isEmpty()) {
- return ResponseEntity.notFound().build();
+ public ChapterAssuntoDto getChapterAssuntoDtoById(Integer id) {
+ ChapterAssunto chapterAssunto = chapterAssuntoRepository.findById(id).orElse(null);
+ ChapterAssuntoDto chapterAssuntoDTO = new ChapterAssuntoDto();
+ if (chapterAssunto != null) {
+ buildDto(chapterAssunto, chapterAssuntoDTO);
}
- return ResponseEntity.ok(assuntos);
+ return chapterAssuntoDTO;
}
@Transactional
- public ChapterAssunto getChapterAssuntoWithTags(Integer id) {
+ public ChapterAssunto getChapterAssuntoById(Integer id) {
return chapterAssuntoRepository.findById(id).orElse(null);
}
@Transactional
- public void associarTagAAssunto(ChapterAssunto chapterAssunto, List chapterTagIds) {
- for (Integer chapterTagId : chapterTagIds) {
- ChapterTag chapterTag = chapterTagRepository.findById(chapterTagId.longValue()).orElse(null);
- if (chapterTag != null) {
- ChapterAssuntoTag chapterAssuntoTag = new ChapterAssuntoTag();
- chapterAssuntoTag.setChapterAssunto(chapterAssunto);
- chapterAssuntoTag.setChapterTag(chapterTag);
- chapterAssuntoTagRepository.save(chapterAssuntoTag);
- }
- }
+ public List getAllNoticias() {
+ return chapterAssuntoRepository.getAllNoticias();
}
+
@Transactional
public ChapterAssunto postChapterAssunto(ChapterAssunto chapterAssunto) {
return chapterAssuntoRepository.save(chapterAssunto);
}
+
+ @Transactional
+ public ResponseEntity> filterChapterAssuntosByChapterId(Integer chapterId) {
+ List chapterAssuntos = chapterAssuntoRepository.findByChapterId(chapterId);
+ if (!chapterAssuntos.isEmpty()) {
+ return ResponseEntity.ok(chapterAssuntos);
+ } else {
+ return ResponseEntity.notFound().build();
+ }
+ }
+
+ @Transactional
+ public ResponseEntity> getAllChapterAssuntoDto() {
+ List chapterAssuntos = chapterAssuntoRepository.getAllChapterAssunto();
+ List chapterAssuntoDtos = new ArrayList<>();
+ for (ChapterAssunto chapterAssunto : chapterAssuntos) {
+ ChapterAssuntoDto chapterAssuntoDto = new ChapterAssuntoDto();
+ buildDto(chapterAssunto, chapterAssuntoDto);
+ chapterAssuntoDto.setTotalComentarios(chapterAssunto.getComentarios().size());
+ chapterAssuntoDtos.add(chapterAssuntoDto);
+ }
+ return ResponseEntity.ok().body(chapterAssuntoDtos);
+ }
+
+ public void deleteChapterAssunto(Integer id) {
+ chapterAssuntoRepository.deleteById(id);
+ }
+
+
+ private void buildDto(ChapterAssunto chapterAssunto, ChapterAssuntoDto chapterAssuntoDto) {
+ chapterAssuntoDto.setId(chapterAssunto.getId());
+ chapterAssuntoDto.setDataCadastro(chapterAssunto.getDataCadastro());
+ chapterAssuntoDto.setTitulo(chapterAssunto.getTitulo());
+ chapterAssuntoDto.setDescricao(chapterAssunto.getDescricao());
+ chapterAssuntoDto.setImagem(chapterAssunto.getImagem());
+ chapterAssuntoDto.setContadorVisualizacao(chapterAssunto.getContadorVisualizacao());
+ chapterAssuntoDto.setStatus(chapterAssunto.getStatus());
+ chapterAssuntoDto.setVerificacao(chapterAssunto.getVerificacao());
+ chapterAssuntoDto.setChapterId(chapterAssunto.getChapter().getId());
+ chapterAssuntoDto.setUsuario(chapterAssunto.getUsuario());
+ chapterAssuntoDto.setChapterNome(chapterAssunto.getChapter().getNome());
+ if (chapterAssunto.getUsuarioVerificacao() != null) {
+ chapterAssuntoDto.setUsuarioVerificacaoId(chapterAssunto.getUsuarioVerificacao().getId());
+ }
+ chapterAssuntoDto.setTags(chapterAssunto.getTags());
+ chapterAssuntoDto.setTotalComentarios(chapterAssunto.getComentarios().size());
+ }
}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoTagService.java b/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoTagService.java
deleted file mode 100644
index 4d6ec9e..0000000
--- a/src/main/java/br/com/aprendizagem/api/service/ChapterAssuntoTagService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package br.com.aprendizagem.api.service;
-
-import br.com.aprendizagem.api.entity.ChapterAssunto;
-import br.com.aprendizagem.api.entity.ChapterAssuntoTag;
-import br.com.aprendizagem.api.entity.ChapterTag;
-import br.com.aprendizagem.api.repository.ChapterAssuntoTagRepository;
-import lombok.AllArgsConstructor;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Service;
-
-import javax.transaction.Transactional;
-import java.util.List;
-
-@Service
-@AllArgsConstructor
-public class ChapterAssuntoTagService {
- private final ChapterAssuntoTagRepository chapterAssuntoTagRepository;
-
- public List getAllChapterAssuntoTag(){
- return chapterAssuntoTagRepository.findAll();
- }
-
- @Transactional
- public ChapterAssuntoTag getChapterAssuntoTagById(Integer id){
- return chapterAssuntoTagRepository.findById(id).orElse(null);
- }
-
- @Transactional
- public ChapterAssuntoTag postChapterAssuntoTag(ChapterAssunto chapterAssunto, ChapterTag chapterTag){
- ChapterAssuntoTag chapterAssuntoTag = new ChapterAssuntoTag(null, chapterAssunto, chapterTag);
- return chapterAssuntoTagRepository.save(chapterAssuntoTag);
- }
-
-
-}
diff --git a/src/main/java/br/com/aprendizagem/api/service/ChapterService.java b/src/main/java/br/com/aprendizagem/api/service/ChapterService.java
index 003c949..4799f70 100644
--- a/src/main/java/br/com/aprendizagem/api/service/ChapterService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/ChapterService.java
@@ -3,12 +3,10 @@
import br.com.aprendizagem.api.entity.Chapter;
import br.com.aprendizagem.api.repository.ChapterRepository;
import lombok.AllArgsConstructor;
-import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
-import java.util.stream.Collectors;
@Service
@AllArgsConstructor
@@ -16,12 +14,17 @@ public class ChapterService {
private final ChapterRepository chapterRepository;
@Transactional
- public List getAllChapters() {
- List chapters = chapterRepository.findAll();
- return getActiveChapters(chapters);
+ public List getActiveChapters() {
+ return chapterRepository.getActiveChapters();
}
- public List getActiveChapters(List chapters){
- return chapters.stream().filter(c -> c.getStatus() == 1).collect(Collectors.toList());
+ @Transactional
+ public Chapter getNoticiasChapter() {
+ return chapterRepository.getNoticiasChapter();
+ }
+
+ @Transactional
+ public Chapter postChapter(Chapter chapter) {
+ return chapterRepository.save(chapter);
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/br/com/aprendizagem/api/service/ControleExecucaoService.java b/src/main/java/br/com/aprendizagem/api/service/ControleExecucaoService.java
new file mode 100644
index 0000000..df8ed83
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/service/ControleExecucaoService.java
@@ -0,0 +1,20 @@
+package br.com.aprendizagem.api.service;
+
+import br.com.aprendizagem.api.entity.ControleExecucao;
+import br.com.aprendizagem.api.repository.ControleExecucaoRepository;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class ControleExecucaoService {
+ private final ControleExecucaoRepository controleExecucaoRepository;
+
+ public Integer getPresencaByEncontroIdByEstudanteId(Long encontroId, Long estudanteId){
+ ControleExecucao controleExecucao = controleExecucaoRepository.findByEncontroIdAndParticipante_Estudante_Id(encontroId, estudanteId);
+ if(controleExecucao == null) {
+ return 0;
+ }
+ return controleExecucao.getStatus();
+ }
+}
diff --git a/src/main/java/br/com/aprendizagem/api/service/CurtidaService.java b/src/main/java/br/com/aprendizagem/api/service/CurtidaService.java
new file mode 100644
index 0000000..2b5a8e8
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/service/CurtidaService.java
@@ -0,0 +1,38 @@
+package br.com.aprendizagem.api.service;
+
+import br.com.aprendizagem.api.entity.Curtida;
+import br.com.aprendizagem.api.repository.CurtidaRepository;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.transaction.Transactional;
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class CurtidaService {
+
+ private final CurtidaRepository curtidaRepository;
+
+ @Transactional
+ public List getAllCurtidas() {
+ return curtidaRepository.findAll();
+ }
+
+ @Transactional
+ public Curtida getCurtidaById(Integer id) {
+ return curtidaRepository.findById(id).orElse(null);
+ }
+
+ @Transactional
+ public List getCurtidasByComentarioId(Long comentarioId) {
+ return curtidaRepository.getCurtidasByComentarioId(comentarioId);
+ }
+
+ @Transactional
+ public Curtida postCurtida(Curtida curtida) {
+ return curtidaRepository.save(curtida);
+ }
+
+
+}
diff --git a/src/main/java/br/com/aprendizagem/api/service/EncontroService.java b/src/main/java/br/com/aprendizagem/api/service/EncontroService.java
index 1ac0c33..37a9f83 100644
--- a/src/main/java/br/com/aprendizagem/api/service/EncontroService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/EncontroService.java
@@ -2,23 +2,22 @@
import br.com.aprendizagem.api.entity.Encontro;
import br.com.aprendizagem.api.repository.EncontroRepository;
-import br.com.aprendizagem.api.response.EncontroAlunoResponse;
+import br.com.aprendizagem.api.response.EncontroEstudanteResponse;
import br.com.aprendizagem.api.response.EncontroResponse;
-import br.com.aprendizagem.api.response.EncontroSituacaoResponse;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
@AllArgsConstructor
@Service
public class EncontroService {
- public final EncontroRepository encontroRepository;
+ private final EncontroRepository encontroRepository;
private final SituacaoAprendizagemService situacaoAprendizagemService;
+ private final ControleExecucaoService controleExecucaoService;
@Transactional
public ResponseEntity> getAllEncontros() {
List encontros = encontroRepository.findAll();
@@ -38,8 +37,33 @@ public ResponseEntity> getEncontrosByGrupoId(Long id) {
}
@Transactional
- public ResponseEntity> getEncontrosByGrupoIdByEstudanteId(Long grupoId, Long estudanteId) {
- return ResponseEntity.notFound().build();
+ public ResponseEntity> getEncontrosByGrupoIdByEstudanteId(Long grupoId, Long estudanteId) {
+ List encontros = encontroRepository.findByGrupoId(grupoId).orElse(null);
+ if(encontros == null){
+ return ResponseEntity.notFound().build();
+ }
+ List encontroEstudanteResponses = new ArrayList<>();
+ for(Encontro encontro: encontros){
+ Integer presenca = controleExecucaoService.getPresencaByEncontroIdByEstudanteId(encontro.getId(), estudanteId);
+ encontroEstudanteResponses.add(EncontroEstudanteResponse.of(encontro, presenca));
+ }
+ return ResponseEntity.ok(encontroEstudanteResponses);
+
+ }
+
+ @Transactional
+ public Map getNumeroObjetosAtividadesByEncontroId(Long encontroId){
+ Integer totalAtividades = encontroRepository.countAtividadeByEncontroId(encontroId);
+ Integer totalObjetos = encontroRepository.countObjetoAprendizagemByEncontroId(encontroId);
+ Map totalObjetosAtividades = new HashMap<>();
+ totalObjetosAtividades.put("totalAtividades", totalAtividades);
+ totalObjetosAtividades.put("totalObjetos", totalObjetos);
+ return totalObjetosAtividades;
+ }
+
+ @Transactional
+ public List getEncontrosListByGrupoId(Long grupoId){
+ return encontroRepository.findByGrupoId(grupoId).orElse(null);
}
// @Transactional
diff --git a/src/main/java/br/com/aprendizagem/api/service/GrupoService.java b/src/main/java/br/com/aprendizagem/api/service/GrupoService.java
index e29f751..4d3fe39 100644
--- a/src/main/java/br/com/aprendizagem/api/service/GrupoService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/GrupoService.java
@@ -51,7 +51,7 @@ public List getGruposByEstudanteId(Long estudante_id) {
@Transactional
public List getGruposByPeriodoAtivoByProfessorId(Long professorId) {
- return filterActive(grupoRepository.getGruposByProfessorId(professorId));
+ return filterActive(grupoRepository.getGruposByPeriodoAtivoByProfessorId(professorId));
}
public List filterActive(List grupos) {
diff --git a/src/main/java/br/com/aprendizagem/api/service/ObjetoAprendizagemService.java b/src/main/java/br/com/aprendizagem/api/service/ObjetoAprendizagemService.java
index fe61ce4..9245b2f 100644
--- a/src/main/java/br/com/aprendizagem/api/service/ObjetoAprendizagemService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/ObjetoAprendizagemService.java
@@ -1,6 +1,8 @@
package br.com.aprendizagem.api.service;
import br.com.aprendizagem.api.entity.ObjetoAprendizagem;
+import br.com.aprendizagem.api.entity.Recurso;
+import br.com.aprendizagem.api.entity.Usuario;
import br.com.aprendizagem.api.repository.ObjetoAprendizagemRepository;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
@@ -16,7 +18,7 @@ public class ObjetoAprendizagemService {
@Transactional
public ResponseEntity> getAllObjetosAprendizagem() {
- List objetos = objetoAprendizagemRepository.findAll();
+ List objetos = objetoAprendizagemRepository.findAllWithRecursos();
if (objetos.isEmpty()){
return ResponseEntity.notFound().build();
}
@@ -27,4 +29,21 @@ public ResponseEntity> getAllObjetosAprendizagem() {
public ObjetoAprendizagem getArquivoObjetoById(Long id) {
return objetoAprendizagemRepository.findById(id).orElse(null);
}
+
+ @Transactional
+ public ObjetoAprendizagem getObjetoAprendizagemById(Long objetoAprendizagemId) {
+ return objetoAprendizagemRepository.findById(objetoAprendizagemId).orElse(null);
+ }
+ @Transactional
+ public ResponseEntity getObjetoWithRecursosByObjetoId(Long objetoId) {
+ ObjetoAprendizagem objetoAprendizagem = objetoAprendizagemRepository.findByIdWithRecursos(objetoId);
+ if (objetoAprendizagem != null) {
+ return ResponseEntity.ok(objetoAprendizagem);
+ }
+ return ResponseEntity.notFound().build();
+ }
+ @Transactional
+ public ResponseEntity createObjeto(ObjetoAprendizagem objeto) {
+ return ResponseEntity.ok(objetoAprendizagemRepository.save(objeto));
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/service/ParticipanteService.java b/src/main/java/br/com/aprendizagem/api/service/ParticipanteService.java
index a2df83a..9df60f9 100644
--- a/src/main/java/br/com/aprendizagem/api/service/ParticipanteService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/ParticipanteService.java
@@ -2,6 +2,8 @@
import br.com.aprendizagem.api.entity.Participante;
import br.com.aprendizagem.api.repository.ParticipanteRepository;
+import br.com.aprendizagem.api.response.ParticipanteResponse;
+import io.swagger.models.Response;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@@ -24,8 +26,37 @@ public ResponseEntity> getAllParticipantes(){
return ResponseEntity.ok(participantes);
}
+ @Transactional
+ public Participante getParticipanteById(Long participanteId) {
+ return participanteRepository.findById(participanteId).orElse(null);
+ }
+
@Transactional
public List getParcipantesByEstudanteId(Long estudanteId){
return participanteRepository.findByEstudanteId(estudanteId);
}
+
+ @Transactional
+ public Long getParcipanteIdByGrupoIdByEstudanteId(Long grupoId, Long estudanteId){
+ Participante participante = participanteRepository.findByGrupo_IdAndEstudante_Id(grupoId, estudanteId);
+ if( participante != null ){
+ return participante.getId();
+ }
+ return null;
+ }
+
+ @Transactional
+ public ResponseEntity> getParticipantesByGrupoId(Long grupoId) {
+ List participantes = participanteRepository.findByGrupo_Id(grupoId);
+ if (participantes.isEmpty()){
+ return ResponseEntity.notFound().build();
+ }
+ return ResponseEntity.ok(ParticipanteResponse.of(participantes));
+ }
+
+ @Transactional
+ public ResponseEntity getParticipanteByEstudanteIdByGrupoId(Long estudanteId, Long grupoId) {
+ Participante participante = participanteRepository.findByGrupo_IdAndEstudante_Id(grupoId,estudanteId);
+ return ResponseEntity.ok(ParticipanteResponse.of(participante));
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/service/PlanejamentoUcService.java b/src/main/java/br/com/aprendizagem/api/service/PlanejamentoUcService.java
new file mode 100644
index 0000000..918bfda
--- /dev/null
+++ b/src/main/java/br/com/aprendizagem/api/service/PlanejamentoUcService.java
@@ -0,0 +1,12 @@
+package br.com.aprendizagem.api.service;
+
+import br.com.aprendizagem.api.entity.PlanejamentoUc;
+import br.com.aprendizagem.api.repository.PlanejamentoUcRepository;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class PlanejamentoUcService {
+ private final PlanejamentoUcRepository planejamentoUcRepository;
+}
diff --git a/src/main/java/br/com/aprendizagem/api/service/ProfessorService.java b/src/main/java/br/com/aprendizagem/api/service/ProfessorService.java
index ff6a626..0952327 100644
--- a/src/main/java/br/com/aprendizagem/api/service/ProfessorService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/ProfessorService.java
@@ -3,10 +3,12 @@
import br.com.aprendizagem.api.entity.Professor;
import br.com.aprendizagem.api.repository.ProfessorRepository;
import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
+import java.util.Optional;
@Service
@AllArgsConstructor
@@ -17,4 +19,13 @@ public class ProfessorService {
public List getProfessoresAtivos(){
return professorRepository.findAll();
}
+
+ @Transactional
+ public ResponseEntity getProfessorByUsuarioId(String usuarioId) {
+ Professor professor = professorRepository.findByUsuarioId(usuarioId);
+ if (professor == null) {
+ return ResponseEntity.notFound().build();
+ }
+ return ResponseEntity.ok(professor);
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/service/RecursoService.java b/src/main/java/br/com/aprendizagem/api/service/RecursoService.java
index 3a25b1c..689cd55 100644
--- a/src/main/java/br/com/aprendizagem/api/service/RecursoService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/RecursoService.java
@@ -31,12 +31,10 @@ public ResponseEntity> getAllRecursos() {
}
return ResponseEntity.ok(RecursoResponse.of(recursos));
}
-
@Transactional
public Recurso getArquivoRecursoById(Long id) {
return recursoRepository.findById(id).orElse(null);
}
-
@Transactional
public ResponseEntity getRecursoById(Long id) {
Recurso recurso = recursoRepository.findById(id).orElse(null);
@@ -44,7 +42,6 @@ public ResponseEntity getRecursoById(Long id) {
return ResponseEntity.ok(recurso);
return ResponseEntity.notFound().build();
}
-
@Transactional
public ResponseEntity> getActiveRecursos() {
List recursos = recursoRepository.getActiveRecursos();
@@ -53,7 +50,6 @@ public ResponseEntity> getActiveRecursos() {
}
return ResponseEntity.ok(RecursoResponse.of(recursos));
}
-
@Transactional
public ResponseEntity> getActiveRecursosSemArquivo() {
List recursos = recursoRepository.getActiveRecursosSemArquivo();
@@ -64,7 +60,6 @@ public ResponseEntity> getActiveRecursosSemArquivo() {
return ResponseEntity.ok(recursos);
}
-
@Transactional
public ResponseEntity> getActiveRecursosByUsuarioIdSemArquivo(String usuarioId) {
@@ -74,7 +69,6 @@ public ResponseEntity> getActiveRecursosByUsuarioIdSemArqu
}
return ResponseEntity.ok(recursos);
}
-
@Transactional
public ResponseEntity> getPublicRecursosSemArquivo() {
List recursos = recursoRepository.getPublicRecursosSemArquivo();
@@ -85,7 +79,6 @@ public ResponseEntity> getPublicRecursosSemArquivo() {
return ResponseEntity.ok(recursos);
}
-
@Transactional
public ResponseEntity atualizarRecursoStatus(Long id, Integer status) {
Optional optionalRecurso = recursoRepository.findById(id);
@@ -99,7 +92,6 @@ public ResponseEntity atualizarRecursoStatus(Long id, Integer s
return ResponseEntity.notFound().build();
}
}
-
@Transactional
public ResponseEntity updateRecursoNomeById(Long id, String nomeAtualizado) {
Optional optionalRecurso = recursoRepository.findById(id);
@@ -113,7 +105,6 @@ public ResponseEntity updateRecursoNomeById(Long id, String nomeAtualiz
return ResponseEntity.notFound().build();
}
}
-
@Transactional
public ResponseEntity createRecurso(RecursoRequest recursoRequest) {
Recurso recurso = new Recurso();
diff --git a/src/main/java/br/com/aprendizagem/api/service/SituacaoAprendizagemService.java b/src/main/java/br/com/aprendizagem/api/service/SituacaoAprendizagemService.java
index 1273543..458aa14 100644
--- a/src/main/java/br/com/aprendizagem/api/service/SituacaoAprendizagemService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/SituacaoAprendizagemService.java
@@ -1,16 +1,18 @@
package br.com.aprendizagem.api.service;
-import br.com.aprendizagem.api.entity.SituacaoAprendizagem;
-import br.com.aprendizagem.api.entity.SituacaoEncontro;
-import br.com.aprendizagem.api.repository.SituacaoAprendizagemRepository;
-import br.com.aprendizagem.api.repository.SituacaoEncontroRepository;
+import br.com.aprendizagem.api.entity.*;
+import br.com.aprendizagem.api.repository.*;
+import br.com.aprendizagem.api.request.SituacaoAprendizagemRequest;
import br.com.aprendizagem.api.response.SituacaoAprendizagemResponse;
import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
+import java.time.ZoneId;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Optional;
@@ -19,6 +21,9 @@
public class SituacaoAprendizagemService {
private final SituacaoAprendizagemRepository situacaoAprendizagemRepository;
private final SituacaoEncontroService situacaoEncontroService;
+ private final PlanejamentoUcRepository planejamentoUcRepository;
+ private final GrauDificuldadeRepository grauDificuldadeRepository;
+ private final BadgeRepository badgeRepository;
@Transactional
public ResponseEntity> getAllSituacoesAprendizagem() {
@@ -42,4 +47,42 @@ public ResponseEntity getSituacaoAprendizagemById(
public ResponseEntity> getSituacoesAprendizagemByEncontroId(Long encontroId) {
return situacaoEncontroService.getSituacoesAprendizagemByEncontroId(encontroId);
}
+
+ @Transactional
+ public ResponseEntity> getSituacoesAprendizagemByPlanejamentoUcId(Long planejamentoUcId) {
+ List situacoes = situacaoAprendizagemRepository.findByPlanejamentoUc_Id(planejamentoUcId);
+ if(situacoes.isEmpty()){
+ return ResponseEntity.noContent().build();
+ }
+ return ResponseEntity.ok(SituacaoAprendizagemResponse.of(situacoes));
+ }
+
+ @Transactional
+ public ResponseEntity createSituacaoAprendizagem(SituacaoAprendizagemRequest situacaoRequest) {
+ SituacaoAprendizagem novaSituacao = new SituacaoAprendizagem();
+ novaSituacao.setTitulo(situacaoRequest.getTitulo());
+ novaSituacao.setDescricao(situacaoRequest.getDescricao());
+ novaSituacao.setOrdem(situacaoRequest.getOrdem());
+ novaSituacao.setDuracao(situacaoRequest.getDuracao());
+ novaSituacao.setStatus(1);
+ novaSituacao.setInicio(new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
+ novaSituacao.setFim(new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
+ PlanejamentoUc planejamentoUc = planejamentoUcRepository.findById(situacaoRequest.getPlanejamentoUcId()).orElse(null);
+ novaSituacao.setPlanejamentoUc(planejamentoUc);
+ GrauDificuldade grauDificuldade = grauDificuldadeRepository.findById(situacaoRequest.getGrauDificuldadeId()).orElse(null);
+ novaSituacao.setGrauDificuldade(grauDificuldade);
+ Badge badge = badgeRepository.findById(situacaoRequest.getBadgeId()).orElse(null);
+ novaSituacao.setBadge(badge);
+
+ return ResponseEntity.ok(situacaoAprendizagemRepository.save(novaSituacao));
+ }
+@Transactional
+ public ResponseEntity updateSituacaoAprendizagem(Long id, SituacaoAprendizagem situacaoAprendizagem) {
+ SituacaoAprendizagem situacaoAprendizagemExistente = situacaoAprendizagemRepository.findById(id).orElse(null);
+ if(situacaoAprendizagemExistente != null) {
+ BeanUtils.copyProperties(situacaoAprendizagem, situacaoAprendizagemExistente);
+ return ResponseEntity.ok(situacaoAprendizagemRepository.save(situacaoAprendizagem));
+ }
+ return ResponseEntity.notFound().build();
+ }
}
diff --git a/src/main/java/br/com/aprendizagem/api/service/UsuarioService.java b/src/main/java/br/com/aprendizagem/api/service/UsuarioService.java
index de2eb06..af954e0 100644
--- a/src/main/java/br/com/aprendizagem/api/service/UsuarioService.java
+++ b/src/main/java/br/com/aprendizagem/api/service/UsuarioService.java
@@ -36,6 +36,12 @@ public ResponseEntity buscarUsuarioPorId(String id) {
return ResponseEntity.ok(UsuarioResponse.of(usuarioOpt.get()));
}
+ @Transactional
+ public Usuario getUsuarioById(String id) {
+ return usuarioRepository.findById(id).orElse(null);
+
+ }
+
@Transactional
public ResponseEntity> listarUsuarios() {
List usuarios = usuarioRepository.findAll();
diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..fe6ba4e
--- /dev/null
+++ b/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: br.com.aprendizagem.api.ApiApplication
+
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 5fa0ffe..4ad5c68 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -5,7 +5,7 @@ auth0:
spring:
datasource:
password: adsads
- url: jdbc:mysql://jira.senacrio.com.br:3306/bdacompanhamento?useTimezone=true&serverTimezone=America/Sao_Paulo
+ url: jdbc:mysql://jiraedu.rj.senac.br:3306/bdacompanhamento?useTimezone=true&serverTimezone=America/Sao_Paulo
username: ads
jpa:
hibernate:
diff --git a/src/test/java/br/com/empresa/api/ApiApplicationTests.java b/src/test/java/br/com/aprendizagem/api/ApiApplicationTests.java
similarity index 84%
rename from src/test/java/br/com/empresa/api/ApiApplicationTests.java
rename to src/test/java/br/com/aprendizagem/api/ApiApplicationTests.java
index 71ba98e..1994ecd 100644
--- a/src/test/java/br/com/empresa/api/ApiApplicationTests.java
+++ b/src/test/java/br/com/aprendizagem/api/ApiApplicationTests.java
@@ -1,4 +1,4 @@
-package br.com.empresa.api;
+package br.com.aprendizagem.api;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;