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.dto.SimpleTestDTO;
|
||||
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.TestRepository;
|
||||
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.user.User;
|
||||
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.userBadge.UserBadge;
|
||||
import studycave.studycaverestservice.model.userBadge.UserBadgeRepository;
|
||||
|
@ -74,6 +78,8 @@ public class TestController {
|
|||
TestResultRepository testResultRepository;
|
||||
@Autowired
|
||||
UserActivityService userActivityService;
|
||||
@Autowired
|
||||
private UserActivityRepository userActivityRepository;
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public Optional<Test> getTest(@PathVariable(required = true) Long id) {
|
||||
|
@ -93,6 +99,9 @@ public class TestController {
|
|||
@GetMapping("/{id}/solve")
|
||||
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);
|
||||
|
||||
for (Question question : test.get().getQuestions()) {
|
||||
|
@ -143,10 +152,37 @@ public class TestController {
|
|||
((QuestionPairs) question).setAnswers(answersDTOs);
|
||||
}
|
||||
}
|
||||
|
||||
User user = userRepository.findById(test.get().getIdOwner()).get();
|
||||
TestOwnerDTO testDTO = modelMapper.map(test.get(), TestOwnerDTO.class);
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@ public class TestOwnerDTO {
|
|||
private String permission;
|
||||
private int grade;
|
||||
|
||||
private Boolean attempted = null;
|
||||
|
||||
@JsonProperty("body")
|
||||
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.Query;
|
||||
import studycave.studycaverestservice.model.test.Test;
|
||||
import studycave.studycaverestservice.model.user.User;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.sql.Timestamp;
|
||||
|
@ -14,4 +16,5 @@ public interface UserActivityRepository extends JpaRepository<UserActivity, Long
|
|||
List<UserActivity> findAllByToUserOrFromUserAndGroupAndTime(Long userId, Long groupId,
|
||||
Date start, Timestamp end);
|
||||
|
||||
List<UserActivity> findAllByTestAndToUser(Test test, User userAuth);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue