PUNKT-54 ogranczenia rozwiązywania testu w grupie
This commit is contained in:
parent
72a4570253
commit
28c5bbfabb
@ -31,6 +31,8 @@ import studycave.studycaverestservice.model.simpleTest.SimpleTest;
|
|||||||
import studycave.studycaverestservice.model.simpleTest.SimpleTestRepository;
|
import studycave.studycaverestservice.model.simpleTest.SimpleTestRepository;
|
||||||
import studycave.studycaverestservice.model.simpleTest.dto.SimpleTestDTO;
|
import studycave.studycaverestservice.model.simpleTest.dto.SimpleTestDTO;
|
||||||
import studycave.studycaverestservice.model.studyGroup.GroupRepository;
|
import studycave.studycaverestservice.model.studyGroup.GroupRepository;
|
||||||
|
import studycave.studycaverestservice.model.studyGroup.StudyGroup;
|
||||||
|
import studycave.studycaverestservice.model.studyGroupMember.StudyGroupMember;
|
||||||
import studycave.studycaverestservice.model.test.Test;
|
import studycave.studycaverestservice.model.test.Test;
|
||||||
import studycave.studycaverestservice.model.test.TestRepository;
|
import studycave.studycaverestservice.model.test.TestRepository;
|
||||||
import studycave.studycaverestservice.model.test.dto.*;
|
import studycave.studycaverestservice.model.test.dto.*;
|
||||||
@ -40,6 +42,8 @@ import studycave.studycaverestservice.model.test.result.TestResultRepository;
|
|||||||
import studycave.studycaverestservice.model.test.verifier.QuestionVerifier;
|
import studycave.studycaverestservice.model.test.verifier.QuestionVerifier;
|
||||||
import studycave.studycaverestservice.model.user.User;
|
import studycave.studycaverestservice.model.user.User;
|
||||||
import studycave.studycaverestservice.model.user.UserRepository;
|
import studycave.studycaverestservice.model.user.UserRepository;
|
||||||
|
import studycave.studycaverestservice.model.userActivity.UserActivity;
|
||||||
|
import studycave.studycaverestservice.model.userActivity.UserActivityRepository;
|
||||||
import studycave.studycaverestservice.model.userActivity.UserActivityService;
|
import studycave.studycaverestservice.model.userActivity.UserActivityService;
|
||||||
import studycave.studycaverestservice.model.userBadge.UserBadge;
|
import studycave.studycaverestservice.model.userBadge.UserBadge;
|
||||||
import studycave.studycaverestservice.model.userBadge.UserBadgeRepository;
|
import studycave.studycaverestservice.model.userBadge.UserBadgeRepository;
|
||||||
@ -74,6 +78,8 @@ public class TestController {
|
|||||||
TestResultRepository testResultRepository;
|
TestResultRepository testResultRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
UserActivityService userActivityService;
|
UserActivityService userActivityService;
|
||||||
|
@Autowired
|
||||||
|
private UserActivityRepository userActivityRepository;
|
||||||
|
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public Optional<Test> getTest(@PathVariable(required = true) Long id) {
|
public Optional<Test> getTest(@PathVariable(required = true) Long id) {
|
||||||
@ -93,6 +99,9 @@ public class TestController {
|
|||||||
@GetMapping("/{id}/solve")
|
@GetMapping("/{id}/solve")
|
||||||
public TestOwnerDTO getTestToSolve(@PathVariable(required = true) Long id) {
|
public TestOwnerDTO getTestToSolve(@PathVariable(required = true) Long id) {
|
||||||
|
|
||||||
|
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
||||||
|
User userAuth = userRepository.findByUsername(authentication.getName()).get();
|
||||||
|
|
||||||
Optional<Test> test = testRepository.findById(id);
|
Optional<Test> test = testRepository.findById(id);
|
||||||
|
|
||||||
for (Question question : test.get().getQuestions()) {
|
for (Question question : test.get().getQuestions()) {
|
||||||
@ -143,10 +152,37 @@ public class TestController {
|
|||||||
((QuestionPairs) question).setAnswers(answersDTOs);
|
((QuestionPairs) question).setAnswers(answersDTOs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
User user = userRepository.findById(test.get().getIdOwner()).get();
|
User user = userRepository.findById(test.get().getIdOwner()).get();
|
||||||
TestOwnerDTO testDTO = modelMapper.map(test.get(), TestOwnerDTO.class);
|
TestOwnerDTO testDTO = modelMapper.map(test.get(), TestOwnerDTO.class);
|
||||||
testDTO.setOwner(user.getUsername());
|
testDTO.setOwner(user.getUsername());
|
||||||
|
if (test.get().getPermission().equals("GROUP")) {
|
||||||
|
List<StudyGroupMember> groupUsers = test.get().getGroup().getMembers();
|
||||||
|
for (StudyGroupMember studyGroupMember : groupUsers) {
|
||||||
|
if (studyGroupMember.getIsGroupLeader()) {
|
||||||
|
if (studyGroupMember.getUser().equals(userAuth)) {
|
||||||
|
testDTO.setAttempted(false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (testDTO.getAttempted() == null) {
|
||||||
|
for (StudyGroupMember studyGroupMember : groupUsers) {
|
||||||
|
if (studyGroupMember.getUser().equals(userAuth)){
|
||||||
|
List<UserActivity> userActivities = userActivityRepository.findAllByTestAndToUser(test.get(), userAuth);
|
||||||
|
for (UserActivity userActivity : userActivities){
|
||||||
|
if (userActivity.getType().equals("solvedTest")){
|
||||||
|
testDTO.setAttempted(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (testDTO.getAttempted() == null){
|
||||||
|
testDTO.setAttempted(false);
|
||||||
|
}
|
||||||
return testDTO;
|
return testDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +32,8 @@ public class TestOwnerDTO {
|
|||||||
private String permission;
|
private String permission;
|
||||||
private int grade;
|
private int grade;
|
||||||
|
|
||||||
|
private Boolean attempted = null;
|
||||||
|
|
||||||
@JsonProperty("body")
|
@JsonProperty("body")
|
||||||
List<Question> questions = new ArrayList<>();
|
List<Question> questions = new ArrayList<>();
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@ package studycave.studycaverestservice.model.userActivity;
|
|||||||
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import studycave.studycaverestservice.model.test.Test;
|
||||||
|
import studycave.studycaverestservice.model.user.User;
|
||||||
|
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
@ -14,4 +16,5 @@ public interface UserActivityRepository extends JpaRepository<UserActivity, Long
|
|||||||
List<UserActivity> findAllByToUserOrFromUserAndGroupAndTime(Long userId, Long groupId,
|
List<UserActivity> findAllByToUserOrFromUserAndGroupAndTime(Long userId, Long groupId,
|
||||||
Date start, Timestamp end);
|
Date start, Timestamp end);
|
||||||
|
|
||||||
|
List<UserActivity> findAllByTestAndToUser(Test test, User userAuth);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user